# When this class is initialized, it takes in a Hash and uses the key/value
# pairs to create instance variables. The problem here is that each key needs to
# be verified to make sure it conforms to the naming rules.
#
# This is like converting a Hash to an object (a Hash.to_o method, if you will).
# Great for when you're hacking up a script to parse some text/XML/YAML as a
# once-off. I wouldn't recommend this be used in a production environment.
#
class HashToAttributes
attr_reader :attr1, :attr2, :attr3
attr_writer :attr3
def initialize(hash)
# Each key becomes an instance variable
# TODO: check that key conforms to naming rules
hash.each do |key, value|
instance_variable_set(("@" + key).to_sym, value);
end
end
end
hsh = { 'attr1' => "Oh Vey", 'attr2' => "Virtua Cop 2", 'attr3' => true }
obj = HashToAttributes.new(hsh)
puts obj.attr1 # => "Oh Vey"
puts obj.attr2 # => "Virtua Cop 2"
obj.attr3 = false
puts obj.attr3 # => false
Saturday, May 26, 2007
HashToAttributes.rb
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment