module Yuba::Form::Coercion::ClassMethods

Public Instance Methods

coercing_setter!(name, type) click to toggle source
Calls superclass method
# File lib/yuba/form/coercion.rb, line 18
def coercing_setter!(name, type)
  class_name = type.to_s.classify
  type_class = "Yuba::Form::Coercion::Types::Form::#{class_name}".constantize

  mod = Module.new do
    define_method("#{name}=") do |value|
      super type_class.(value)
    end
  end
  include mod
end
property(name, options={}, &block) click to toggle source
Calls superclass method
# File lib/yuba/form/coercion.rb, line 11
def property(name, options={}, &block)
  super(name, options, &block).tap do
    break unless options[:type]
    coercing_setter!(name, options[:type])
  end
end