Sha256: a78761db70a926fdf5bc73c3792bfbd13e9b8938f836e3a5a526362406004229

Contents?: true

Size: 419 Bytes

Versions: 6

Compression:

Stored size: 419 Bytes

Contents

# encoding: utf-8

module Mixture
  module Coerce
    # A class coercion.
    class Class < Base
      type Types::Class

      coerce_to(Types::Object, Itself)
      coerce_to(Types::Class) do |value, type|
        member = type.options.fetch(:members).first
        fail CoercionError, "Cannot coerce #{value.class} =>" \
             " #{member}" unless value.is_a?(member)
        value
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
mixture-0.6.2 lib/mixture/coerce/class.rb
mixture-0.6.1 lib/mixture/coerce/class.rb
mixture-0.6.0 lib/mixture/coerce/class.rb
mixture-0.5.1 lib/mixture/coerce/class.rb
mixture-0.5.0 lib/mixture/coerce/class.rb
mixture-0.4.0 lib/mixture/coerce/class.rb