Sha256: c019902926cf7061208d125855f1ab81b927ff9cdea8bbffc336018e4acb4fcb

Contents?: true

Size: 665 Bytes

Versions: 1

Compression:

Stored size: 665 Bytes

Contents

require 'myrrha'

PosInt = Myrrha::Domain.sbyc(Integer){|i| i>0}

###
  
PosInt.class
PosInt.superclass
PosInt.ancestors
PosInt === 10
PosInt === -1
PosInt.new(10)
begin
  PosInt.new(-10)
  raise "Unexpected case: PosInt.new(-10) succeeds"
rescue ArgumentError => ex
  puts ex.message
end

###

10.is_a?(PosInt)
10.kind_of?(PosInt)

###

rules = Myrrha.coercions do |r|
  r.coercion String, Integer, lambda{|s,t| Integer(s)}  
end 
rules.coerce("12", Integer)
rules.coerce("12", PosInt)
rules.coerce("-12", Integer)
begin
  rules.coerce("-12", PosInt)
  raise "Unexpected case: rules.coerce('-12', PosInt) succeeds"
rescue Myrrha::Error => ex
  puts ex.message
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
myrrha-2.0.0 examples/sbyc_domain.rb