lib/representable/coercion.rb in representable-2.0.0.rc1 vs lib/representable/coercion.rb in representable-2.0.0.rc2

- old
+ new

@@ -1,14 +1,18 @@ require "virtus" module Representable module Coercion class Coercer + def initialize(type) + @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(options.binding[:type]).coerce(value) + Virtus::Attribute.build(@type).coerce(value) end end def self.included(base) @@ -21,12 +25,10 @@ module ClassMethods def build_definition(name, options, &block) # Representable::Declarative return super unless type = options[:type] - options[:pass_options] = true # TODO: remove, standard. - - options[:render_filter] << coercer = Coercer.new + options[:render_filter] << coercer = Coercer.new(type) options[:parse_filter] << coercer super end end \ No newline at end of file