Sha256: becce4c54acbdeb5a6ded042dba02d9b0a953bb17b3ec362cdc751620bf6f1c9
Contents?: true
Size: 813 Bytes
Versions: 3
Compression:
Stored size: 813 Bytes
Contents
# encoding: utf-8 module Mixture module Coerce # Handles coercion of the Array class. class Array < Base type Types::Array coerce_to(Types::Object, Itself) coerce_to(Types::Boolean, :any?) coerce_to(Types::Array) do |value, type| member = type.options.fetch(:members).first value.map { |e| Coerce.perform(member, e) } end coerce_to(Types::Set) do |value, type| member = type.options.fetch(:members).first value.map { |e| Coerce.perform(member, e) } end coerce_to(Types::Hash) do |value, type| member = type.options.fetch(:members) ::Hash[value.map do |element| [Coerce.perform(member[0], element[0]), Coerce.perform(member[1], element[1])] end] end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
mixture-0.6.2 | lib/mixture/coerce/array.rb |
mixture-0.6.1 | lib/mixture/coerce/array.rb |
mixture-0.6.0 | lib/mixture/coerce/array.rb |