Module: Assay

Defined in:
lib/assay.rb,
lib/assay/matcher.rb,
lib/assay/assertion.rb,
lib/assay/assertions/nil_failure.rb,
lib/assay/assertions/kind_failure.rb,
lib/assay/assertions/same_failure.rb,
lib/assay/assertions/true_failure.rb,
lib/assay/assertions/delta_failure.rb,
lib/assay/assertions/empty_failure.rb,
lib/assay/assertions/false_failure.rb,
lib/assay/assertions/match_failure.rb,
lib/assay/assertions/raise_failure.rb,
lib/assay/assertions/throw_failure.rb,
lib/assay/assertions/compare_failure.rb,
lib/assay/assertions/equality_failure.rb,
lib/assay/assertions/identity_failure.rb,
lib/assay/assertions/instance_failure.rb,
lib/assay/assertions/response_failure.rb,
lib/assay/assertions/execution_failure.rb

Defined Under Namespace

Modules: Assertives, Matchers Classes: Assertion, CompareFailure, DeltaFailure, EmptyFailure, EqualityFailure, ExecutionFailure, FalseFailure, IdentityFailure, InstanceFailure, KindFailure, MatchFailure, Matcher, NilFailure, RaiseFailure, ResponseFailure, SameFailure, ThrowFailure, TrueFailure

Class Method Summary collapse

Class Method Details

.const_missing(name) ⇒ Object

Check metadata for missing constants.



33
34
35
# File 'lib/assay.rb', line 33

def self.const_missing(name)
  meta[name.to_s.downcase] || super(name)
end

.failure_classes_by_operatorObject

Returns a Hash table of failure classes indexed by asserton operator.



6
7
8
9
10
11
12
13
14
15
16
17
# File 'lib/assay.rb', line 6

def self.failure_classes_by_operator
  @_failure_classes_by_operator ||= (
    c = {}
    ObjectSpace.each_object(Class) do |fc|
      next unless fc < Assay::Assertion
      if fc.respond_to?(:assertion_operator)
        c[fc.assertion_operator.to_sym] = fc
      end
    end
    c
  )
end

.lookup(operator) ⇒ Object

Lookup failure class by operator.



20
21
22
# File 'lib/assay.rb', line 20

def self.lookup(operator)
  failure_classes_by_operator[operator.to_sym]
end

.metaObject

Returns Hash table of project metadata.



25
26
27
28
29
30
# File 'lib/assay.rb', line 25

def self.meta
  @spec ||= (
    require 'yaml'
    YAML.load(File.new(File.dirname(__FILE__) + '/assay.yml'))
  )
end