lib/representable/coercion.rb in representable-2.3.0 vs lib/representable/coercion.rb in representable-2.4.0.rc1

- old
+ new

@@ -7,12 +7,12 @@ @type = type end # This gets called when the :render_filter or :parse_filter option is evaluated. # Usually the Coercer instance is an element in a Pipeline to allow >1 filters per property. - def call(value, doc, options) - Virtus::Attribute.build(@type).coerce(value) + def call(input, options) + Virtus::Attribute.build(@type).coerce(input) end end def self.included(base) @@ -22,16 +22,16 @@ end end module ClassMethods - def build_definition(name, options, &block) # Representable::Declarative - return super unless type = options[:type] + def property(name, options={}, &block) + super.tap do |definition| + return definition unless type = options[:type] - options[:render_filter] << coercer = Coercer.new(type) - options[:parse_filter] << coercer - - super + definition.merge!(render_filter: coercer = Coercer.new(type)) + definition.merge!(parse_filter: coercer) + end end end end end \ No newline at end of file