Sha256: 33a68705acafbd4b8dcd15c907b399dd67db55a05773c2f4c064a2bffea88a5c

Contents?: true

Size: 906 Bytes

Versions: 5

Compression:

Stored size: 906 Bytes

Contents

require "yaml"

class ContactList
 attr_accessor :contacts          
                                  
 def initialize(file)
   @file = file
   @contacts = []
 end                      
                          
 def <<(contact)
   @contacts << contact
 end                      
                          
 def delete(name)
   @contacts.delete_if {|c| c.name == name }
 end
 
 def empty?
   @contacts.empty?
 end
 
 def size
   @contacts.size
 end
 
 def [](name)
   @contacts.find {|c| c.name == name }
 end
 
 def save
   File.open(@file, "w") do |fh|
     fh.puts(@contacts.to_yaml)
   end
 end

 def self.load(file)
   list = new(file)
   list.contacts = YAML.load(File.read(file))
   list
 end
 
end


class Contact
  attr_reader :name, :email, :home, :work, :extras
  attr_writer :name, :email
  
  def initialize(name)
    @name = name
    @home = {}
    @work = {}
    @extras = {}
  end
  
end

Version data entries

5 entries across 5 versions & 2 rubygems

Version Path
wbzyl-datamapper-tutorial-0.0.10 lib/public/doc/plain-text-files/contacts_y.rb
wbzyl-datamapper-tutorial-0.0.11 lib/public/doc/plain-text-files/contacts_y.rb
wbzyl-datamapper-tutorial-0.0.9 lib/public/doc/plain-text-files/contacts_y.rb
nosql-tutorial-0.1.1 lib/public/doc/plain-text-files/contacts_y.rb
nosql-tutorial-0.1.0 lib/public/doc/plain-text-files/contacts_y.rb