class Kids
Attributes
birth_date[R]
name[R]
quotes[RW]
Public Class Methods
new(name, birth_date)
click to toggle source
# File lib/quotejar/kids.rb, line 6 def initialize(name, birth_date) @name = name @birth_date = birth_date @quotes ||= Hash.new end
Public Instance Methods
good_bye()
click to toggle source
# File lib/quotejar/kids.rb, line 63 def good_bye puts "See you soon!" end
new_entry()
click to toggle source
# File lib/quotejar/kids.rb, line 22 def new_entry puts "What did #{@name} say?" prompt quote = gets.chomp date = quote_date # retrieves quote_date from Age module, to get date from user age = quote_age(date, @birth_date) # calculates age of kid when quoted entry_hash = {date => [quote, age]} @quotes.merge!(entry_hash) save_kid options end
options()
click to toggle source
# File lib/quotejar/kids.rb, line 46 def options puts "Do you want to enter a new quote, or see a list of all quotes for #{@name}?" puts "Type 'N' for new entry, 'L' for a list of all quotes, or 'Q' to quit." prompt answer = gets.chomp.downcase if answer == 'n' new_entry elsif answer == 'l' retrieve_entries elsif answer == 'q' good_bye else puts "Sorry, that wasn't an option." options end end
prompt()
click to toggle source
# File lib/quotejar/kids.rb, line 12 def prompt print ">> " end
retrieve_entries()
click to toggle source
# File lib/quotejar/kids.rb, line 34 def retrieve_entries if @quotes.empty? puts "Sorry, no quotes yet for this child." else @quotes.each_pair do |date, quote| date_shorten = date.strftime("%m/%d/%y") puts "On #{date_shorten} when #{@name} was #{quote[1].to_i} years-old, #{@name} said: #{quote[0]}" end end options end
save_kid()
click to toggle source
# File lib/quotejar/kids.rb, line 16 def save_kid # creates kid.file if the kid is new, or saves to the existing file if the kid exists File.open("./#{@name}.yaml", 'w+') do |file| file.puts YAML::dump(self) end end