Sha256: 5ec95cc870e5cdece2cae0747aee880168ef7baf71a17a62d6f3ba2c114e209e
Contents?: true
Size: 836 Bytes
Versions: 4
Compression:
Stored size: 836 Bytes
Contents
class Typero::ArrayType < Typero::Type def default [] end def set unless @value.class.to_s.index('Array') @value = @value.to_s.sub(/^\{/,'').sub(/\}$/,'').split(/\s*,\s*/) end @value.uniq! @value.compact! if type = @opts[:array_type] @value.map! { |el| Typero.validate(el, type) { |msg| raise TypeError.new "'%s' %s (value in list)" % [el, msg] } } end # this converts Sequel::Postgres::PGArray to Array and fixes many problems @value = @value.to_a if @value.class != Array end def validate raise TypeError, 'Min array lenght is %s elements' % @opts[:min] if @opts[:min] && @value.length < @opts[:min] raise TypeError, 'Max array lenght is %s elements' % @opts[:max] if @opts[:max] && @value.length > @opts[:max] true end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
typero-0.3.6 | ./lib/typero/type/array.rb |
typero-0.3.4 | ./lib/typero/type/array.rb |
typero-0.3.2 | ./lib/typero/type/array.rb |
typero-0.3.0 | ./lib/typero/type/array.rb |