Skip to content

Instantly share code, notes, and snippets.

@phlco
Created June 24, 2013 16:21
Show Gist options
  • Save phlco/5851339 to your computer and use it in GitHub Desktop.
Save phlco/5851339 to your computer and use it in GitHub Desktop.
hashes
$ pry
[1] pry(main)> room = {}
=> {}
[2] pry(main)> room[:kitchen] = "to the left"
=> "to the left"
[3] pry(main)> room[:bedroom] = "to the right"
=> "to the right"
[4] pry(main)> room.keys
=> [:kitchen, :bedroom]
[5] pry(main)> room.values
=> ["to the left", "to the right"]
[6] pry(main)> room.has_key? :den
=> false
[7] pry(main)> room[:den] = "down the stairs"
=> "down the stairs"
[8] pry(main)> class Client
[8] pry(main)* attr_accessor :portfolios
[8] pry(main)* def initialize
[8] pry(main)* @portfolios = {}
[8] pry(main)* end
[8] pry(main)* end
=> nil
[9] pry(main)> c1 = Client.new
=> #<Client:0x007f8203086538 @portfolios={}>
[10] pry(main)> class Stock
[10] pry(main)* attr_accessor :name
[10] pry(main)* def initialize(name)
[10] pry(main)* @name = name
[10] pry(main)* end
[10] pry(main)* end
=> nil
[11] pry(main)> s1 = Stock.new("AAPL")
=> #<Stock:0x007f82018414c8 @name="AAPL">
[12] pry(main)> s2 = Stock.new("GM")
=> #<Stock:0x007f8201a14f48 @name="GM">
[13] pry(main)> c1.portfolios
=> {}
[14] pry(main)> c1.portfolios[:tech] = []
=> []
[15] pry(main)> c1.portfolios[:tech]
=> []
[16] pry(main)> c1.portfolios[:tech] << s1
=> [#<Stock:0x007f82018414c8 @name="AAPL">]
[17] pry(main)> c1.portfolios[:tech] << s2
=> [#<Stock:0x007f82018414c8 @name="AAPL">, #<Stock:0x007f8201a14f48 @name="GM">]
[18] pry(main)> c1.class
=> Client
[19] pry(main)> c1.porfolios
NoMethodError: undefined method `porfolios' for #<Client:0x007f8203086538>
from (pry):29:in `__pry__'
[20] pry(main)> c1.portfolios
=> {:tech=>
[#<Stock:0x007f82018414c8 @name="AAPL">,
#<Stock:0x007f8201a14f48 @name="GM">]}
[21] pry(main)> c1.portfolios.class
=> Hash
[22] pry(main)> c1.portfolios.keys
=> [:tech]
[23] pry(main)> c1.portfolios.values
=> [[#<Stock:0x007f82018414c8 @name="AAPL">,
#<Stock:0x007f8201a14f48 @name="GM">]]
[24] pry(main)> c1.portfolios[:tech] << s2
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment