Sha256: 5bb95037e78e782223c711892cfac35fcd1772067acf05ea5e32e0383026d018

Contents?: true

Size: 565 Bytes

Versions: 3

Compression:

Stored size: 565 Bytes

Contents

# encoding: utf-8

module Mixture
  module Coerce
    # Handles coercion of the Set class.
    class Set < Base
      type Types::Set

      coerce_to(Types::Object, Itself)
      coerce_to(Types::Boolean, :any?)

      coerce_to(Types::Set) do |value, type|
        member = type.options.fetch(:members).first
        value.map { |e| Coerce.perform(member, e) }.to_set
      end

      coerce_to(Types::Array) do |value, type|
        member = type.options.fetch(:members).first
        value.map { |e| Coerce.perform(member, e) }.to_a
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
mixture-0.6.2 lib/mixture/coerce/set.rb
mixture-0.6.1 lib/mixture/coerce/set.rb
mixture-0.6.0 lib/mixture/coerce/set.rb