From: Jeremy Bopp Date: 2010-10-31T00:40:04+09:00 Subject: Re: Dynamically reference instance vars On 10/30/2010 07:28 AM, Andrew Wagner wrote: > C'mon, this is ruby! Revel in it! > > class Shape > attr_reader :details > def self.keys > [:size, :fill_color, :line_color, :line_color] > end > > def initialize > @details = {} > self.class.keys.each {|key| @details[key] = "" } > end > > keys.each do |key| > define_method key do > @details[key] > end > > define_method "#{key}=" do |input| > @details[key] = input > end > end > end > > my_shape = Shape.new > > shape_details = { > :size => 'small', > :fill_color => 'red', > :line_color => 'black', > :line_width => '2' > } > > my_shape.details.merge!(shape_details) Excellent point! Thanks! -Jeremy