class Object
Public Instance Methods
__properties__()
click to toggle source
# File lib/properties.rb, line 39 def __properties__ @__properties__ end
collection(name, kind)
click to toggle source
# File lib/properties.rb, line 84 def collection name, kind property name, kind, true end
property(name, kind, is_collection = false)
click to toggle source
# File lib/properties.rb, line 32 def property name, kind, is_collection = false classname = eval kind.to_s.camelcase @__properties__ ||= {} @__properties__[name] = Properties::Property.new(name, kind, is_collection) @is_collection = is_collection def __properties__ @__properties__ end if is_collection code = " def #{name} @#{name} ||= [] @#{name} end " eval code code = " def #{name}=(values) values ||= [] values.each do |value| raise Properties::PropertyError.new(\"Can't set value (\#{value.inspect}) to property #{name} since not all elements are a #{classname}\") if not value.kind_of?(#{classname}) end @#{name} = values end " eval code else code = " def #{name} @#{name} end " eval code code = " def #{name}=(value) raise Properties::PropertyError.new(\"Can't set value (\#{value}.inspect) to property #{name} since it's not a #{classname}\") if not value.kind_of?(#{classname}) @#{name} = value end " eval code end end