class Duckface

Constants

VERSION

Public Class Methods

new(&block) click to toggle source
# File lib/duckface.rb, line 5
def initialize(&block)
      @conditions = []
      instance_eval(&block) if block_given?
end

Public Instance Methods

describes?(obj) click to toggle source
# File lib/duckface.rb, line 10
def describes?(obj)
  @conditions.each do |condition|
    return false unless condition.first ^ obj.send(condition[1], *condition.last)
  end
  return true
end

Protected Instance Methods

is_a(name) click to toggle source
# File lib/duckface.rb, line 27
def is_a(name)
  @conditions << [false, :is_a?, [name]]
end
not_a(name) click to toggle source
# File lib/duckface.rb, line 31
def not_a(name)
  @conditions << [true, :is_a?, [name]]
end
not_respond_to(name) click to toggle source
# File lib/duckface.rb, line 23
def not_respond_to(name)
  @conditions << [true, :respond_to?, [name]]
end
respond_to(name) click to toggle source
# File lib/duckface.rb, line 19
def respond_to(name)
  @conditions << [false, :respond_to?, [name]]
end