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