module Riveter::Attributes::Converters
Public Class Methods
converter_for(data_type, options={})
click to toggle source
supply a built-in converter for the given type
# File lib/riveter/attributes.rb, line 431 def self.converter_for(data_type, options={}) case data_type when :string lambda {|v, opt| v.to_s } when :boolean lambda {|v, opt| v.to_b } when :integer lambda {|v, opt| Integer(v) rescue v } when :decimal, :float lambda {|v, opt| Float(v) rescue v } when :date lambda {|v, opt| Date.parse(v) rescue v } when :time lambda {|v, opt| Time.parse(v) rescue v } when :enum lambda {|enum, v, opt| enum.values.include?(v) ? v : enum.value_for(v) }.curry[options[:enum]] when :class lambda {|models, v, opt| models[v] || v }.curry[options[:classes].inject({}) {|list, klass| list[klass.name] = klass; list }] else # object etc... lambda {|v, opt| v } end end