Sha256: d659721025b96f9c3d865ee87d9b21883ba6a76e62a945ad11db65f5dcbadc53
Contents?: true
Size: 613 Bytes
Versions: 1
Compression:
Stored size: 613 Bytes
Contents
module Compel module Coercion def valid?(value, type, options = {}) !!coerce!(value, type, options) rescue false end def coerce!(value, type, options = {}) return nil if value.nil? begin coercion_klass(type).new(value, options).coerce! rescue Compel::TypeError => exception raise exception rescue type_split = "#{type}".split('::') raise Compel::TypeError, "'#{value}' is not a valid #{type_split[-1]}" end end def coercion_klass(type) Compel::Coercion.const_get("#{type}") end extend self end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
compel-0.2.0 | lib/compel/coercion.rb |