Sha256: 3027214c9bde83f8ae086e828d5fee3e7cf32ba963409c640ea55fbc0faa8cd9
Contents?: true
Size: 1.52 KB
Versions: 2
Compression:
Stored size: 1.52 KB
Contents
module Compel module Builder module CommonValue def in(value) options[:in] = coerce_values_ary!(value, :in) self end def range(value) options[:range] = coerce_values_ary!(value, :range) self end def min(value) options[:min] = coerce_value!(value, :min) self end def max(value) options[:max] = coerce_value!(value, :max) self end def coerce_values_ary!(values, method) begin fail if values.nil? Coercion.coerce!(values, Coercion::Array) rescue raise_array_error(method) end values.map{ |value| Coercion.coerce!(value, self.type) } rescue raise_array_values_error(method) end def coerce_value!(value, method) begin fail if value.nil? Coercion.coerce!(value, self.type) rescue raise_value_error(method) end end def raise_array_error(method) raise TypeError, "#{self.class.human_name} ##{method} " \ "value must an Array" end def raise_array_values_error(method) raise TypeError, "All #{self.class.human_name} ##{method} values " \ "must be a valid #{self.type.human_name}" end def raise_value_error(method) raise TypeError, "#{self.class.human_name} ##{method} value " \ "must be a valid #{self.type.human_name}" end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
compel-0.4.0 | lib/compel/builder/common_value.rb |
compel-0.3.7 | lib/compel/builder/common_value.rb |