Last active
August 29, 2015 14:20
-
-
Save spenserhuang/d625e87df6053a28cd34 to your computer and use it in GitHub Desktop.
CSV and MVC Notes 05/07/2015
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# There may be a few typos here and there and I also did not put up the Twilio Portion. | |
# ------------------------------------------------------------ | |
# CSV | |
# ------------------------------------------------------------ | |
require 'csv' | |
class Person | |
def initialize(args = {}) | |
@first_name = args.fetch(:first_name) | |
@last_name = args.fetch(:last_name) | |
@email = args.fetch(:email) | |
end | |
end | |
CSV.foreach('sample.csv', :headers => true, :header_converters => :symbol) do |row| | |
p Person.new(row) | |
end | |
# CSV.open('sample.csv') do |line| | |
# p line | |
# end | |
# p CSV.read('sample.csv') | |
# CSV.foreach('sample.csv') do |line| | |
# p line | |
# end | |
# CSV.foreach('sample.csv', :headers => true, :header_converters => :symbol) do |row| | |
# p row[:first_name] | |
# p row[:last_name] | |
# p row[:email] | |
# end | |
# CSV.foreach('sample.csv', :headers => true) do |row| | |
# p row['first_name'] | |
# p row['last_name'] | |
# p row['email'] | |
# end | |
# ------------------------------------------------------------ | |
# MVC | |
# ------------------------------------------------------------ | |
# p File.readlines('jokes.txt') | |
# require 'open-uri' | |
# class Joker | |
# def initialize | |
# @jokes = default_jokes | |
# end | |
# def joke | |
# @jokes.sample.capitalize | |
# end | |
# private | |
# def default_jokes | |
# # v1 where we use a literal array | |
# # [ | |
# # 'knock knock...', | |
# # 'there once was a man from...', | |
# # 'guy walks into a bar', | |
# # 'you know when people...' | |
# # ] | |
# # v2 where we grab a resource from the interwebs | |
# # contents = open("http://www.textfiles.com/humor/JOKES/100.txt").each_line.to_a | |
# # contents.shift(5) | |
# # p contents.map(&:chomp).map{|line| line[7..-1]}.compact | |
# # v3 where we open a text file | |
# clean_contents = clean_file(File.readlines('jokes.txt')) | |
# end | |
# def clean_file(contents) | |
# contents.shift(5) | |
# contents.map(&:chomp).map{|line| line[7..-1]}.compact | |
# end | |
# end | |
# class Viewer | |
# def render(text) #, mode = :console | |
# # case mode | |
# # when :console | |
# puts header | |
# puts text | |
# puts footer | |
# # when :sms | |
# # insert twilio code | |
# # end | |
# end | |
# def prompt(text) | |
# render(text) | |
# gets.chomp | |
# end | |
# private | |
# def header | |
# "welcome, to my funny joker system thingamajig\n" + "-" * 30 | |
# end | |
# def footer | |
# "-" * 30 | |
# end | |
# end | |
# class JokeMachine | |
# def self.run | |
# view = Viewer.new | |
# joker = Joker.new | |
# view.render(joker.joke) | |
# end | |
# end | |
# JokeMachine.run | |
# ------------------------------------------------------------ | |
# MVC | |
# ------------------------------------------------------------ | |
# class Joker | |
# def initialize | |
# @jokes = default_jokes | |
# end | |
# def joke | |
# @jokes.sample.capitalize | |
# end | |
# private | |
# def default_jokes | |
# [ | |
# 'knock knock...', | |
# 'there once was a man from...', | |
# 'guy walks into a bar', | |
# 'you know when people...' | |
# ] | |
# end | |
# end | |
# class Viewer | |
# def render(text), mode = :console | |
# case mode | |
# when :console | |
# puts header | |
# puts text | |
# puts footer | |
# when :sms | |
# # insert twilio code | |
# end | |
# end | |
# def prompt(text) | |
# render(text) | |
# gets.chomp | |
# end | |
# private | |
# def header | |
# "welcome, to my funny joker system thingamajig\n" + "-" * 30 | |
# end | |
# def footer | |
# "-" * 30 | |
# end | |
# end | |
# class JokeMachine | |
# def self.run | |
# view = Viewer.new | |
# joker = Joker.new | |
# view.render(joker.joke) | |
# end | |
# end | |
# JokeMachine.run |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment