ClassMethods¶
Constants¶
Methods¶
#default_properties
def default_properties @default_property ||= {} end
#default_properties_keys
def default_properties_keys @default_properties_keys ||= default_properties.keys end
- #default_property
TODO: Move this to the DeclaredProperties
def default_property(name, &block) reset_default_properties(name) if default_properties.respond_to?(:size) default_properties[name] = block end
#default_property_key
def default_property_key @default_property_key ||= default_properties_keys.first end
#default_property_values
def default_property_values(instance) default_properties.each_with_object({}) do |(key, block), result| result[key] = block.call(instance) end end
#reset_default_properties
def reset_default_properties(name_to_keep) default_properties.each_key do |property| @default_properties_keys = nil undef_method(property) unless property == name_to_keep end @default_properties_keys = nil @default_property = {} end