Sha256: 05432d33919f9d06945d56ec6524021d6527a9a6fdee803f75d733d303e8f9ad

Contents?: true

Size: 438 Bytes

Versions: 2

Compression:

Stored size: 438 Bytes

Contents

module TypeConstraints
  class Meta

    attr_accessor :name, :parent
    def initialize(args={})
      @name       = args[:name]
      @parent     = args[:parent]
      @constraint = args[:constraint]
    end

    def constraint(v=nil)
      @constraint = v if !v.nil?
      @constraint
    end

    def check?(val)
      if !parent.nil? && !parent.check?(val)
        return false
      end
      constraint.call(val)
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
type_constraints-0.1.0 lib/type_constraints/meta.rb
type_constraints-0.0.1 lib/type_constraints/meta.rb