Sha256: 428da3a03d1a95e8c7342098a491aeb3f07dccdc55fb33cff630aa15e745a519

Contents?: true

Size: 919 Bytes

Versions: 1

Compression:

Stored size: 919 Bytes

Contents

module Beambridge
  class Condition
    def self.for(a)
      case a
        when Condition then a
        when Class then TypeCondition.new(a)
        else StaticCondition.new(a)
      end
    end

    def initialize
    end

    def binding_for(arg)
      nil
    end

    def satisfies?(arg)
      false
    end

    alias === satisfies?
  end

  module Conditions
    def atom
      TypeCondition.new(Symbol)
    end

    def any
      TypeCondition.new(Object)
    end

    def number
      TypeCondition.new(Fixnum)
    end

    def pid
      TypeCondition.new(Beambridge::Pid)
    end

    def ref
      TypeCondition.new(Beambridge::NewReference)
    end

    def string
      TypeCondition.new(String)
    end

    def list
      TypeCondition.new(Array)
    end

    def hash
      HashCondition.new()
    end

    def boolean
      BooleanCondition.new()
    end
  end

  extend Conditions
end

Any = Object

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
beambridge-0.9.0 lib/beambridge/condition.rb