lib/representable/definition.rb in representable-1.3.5 vs lib/representable/definition.rb in representable-1.4.0

- old
+ new

@@ -1,66 +1,66 @@ module Representable # Created at class compile time. Keeps configuration options for one property. class Definition attr_reader :name, :options alias_method :getter, :name - + def initialize(sym, options={}) @name = sym.to_s @options = options - + @options[:default] ||= [] if array? # FIXME: move to CollectionBinding! end - + def clone self.class.new(name, options.clone) # DISCUSS: make generic Definition.cloned_attribute that passes list to constructor. end def setter :"#{name}=" end - + def typed? sought_type.is_a?(Class) or representer_module or options[:instance] # also true if only :extend is set, for people who want solely rendering. end - + def array? options[:collection] end - + def hash? options[:hash] end - + def sought_type options[:class] end - + def from (options[:from] || options[:as] || name).to_s end - + def default_for(value) return default if skipable_nil_value?(value) value end - + def has_default? options.has_key?(:default) end - + def representer_module - options[:extend] + options[:extend] or options[:decorator] end - + def attribute options[:attribute] end - + def skipable_nil_value?(value) value.nil? and not options[:render_nil] end - + def default options[:default] end def binding