Module: PropertyBagged::ClassMethods
- Defined in:
- lib/property_bagged.rb
Instance Method Summary collapse
- #bagged_property(property_name, options = {}) ⇒ Object
- #property_bag_with_name(property_bag_name) ⇒ Object
Instance Method Details
#bagged_property(property_name, options = {}) ⇒ Object
24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/property_bagged.rb', line 24 def bagged_property(property_name, = {}) default = [:default] class_eval <<-END def #{property_name} self.property_bag['#{property_name.to_s}'] ||= #{default.inspect} end def #{property_name}=(val) self.property_bag ||= {} self.property_bag = self.property_bag.merge('#{property_name}' => val) end END end |
#property_bag_with_name(property_bag_name) ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/property_bagged.rb', line 7 def property_bag_with_name(property_bag_name) class_eval <<-END def property_bag r = read_attribute #{property_bag_name.to_sym.inspect} if String === r YAML.load(r) else r || {} end end def property_bag=(val) write_attribute(#{property_bag_name.to_sym.inspect}, val) end END end |