module Subroutine::TypeCaster
Public Class Methods
cast(value, options = {})
click to toggle source
# File lib/subroutine/type_caster.rb, line 32 def self.cast(value, options = {}) type = options[:type] return value if value.nil? || type.nil? caster = casters[type] return value unless caster caster.call(value, options) rescue StandardError => e raise ::Subroutine::TypeCaster::TypeCastError, e.to_s, e.backtrace end
casters()
click to toggle source
# File lib/subroutine/type_caster.rb, line 22 def self.casters @casters ||= {} end
register(*names, &block)
click to toggle source
# File lib/subroutine/type_caster.rb, line 26 def self.register(*names, &block) names.each do |n| casters[n] = block end end