Sha256: 16019b270128fe6625c438b50481f1571da354c0bd9a4bfff9974ac08a975a31

Contents?: true

Size: 499 Bytes

Versions: 3

Compression:

Stored size: 499 Bytes

Contents

module Domain
  module CoercionMethods

    def coercions(&bl)
      @coercions ||= ::Myrrha::Coercions.new{|c|
        c.main_target_domain = self
        c.error_handler = lambda{|v,t,c|
          raise c if TypeError===c
          domain_error!(v)
        }
      }
      @coercions.append(&bl) if bl
      @coercions
    end

    def coerce(arg)
      coercions.coerce(arg, self)
    end
    alias_method :[], :coerce

  end # module CoercionMethods
  include CoercionMethods
end # module Domain

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
myrrha-3.1.0 lib/myrrha/ext/domain.rb
myrrha-3.0.0 lib/myrrha/ext/domain.rb
myrrha-3.0.0.rc7 lib/myrrha/ext/domain.rb