Module: Lax

Defined in:
lib/lax.rb,
lib/lax/case.rb,
lib/lax/hook.rb,
lib/lax/task.rb,
lib/lax/tree.rb,
lib/lax/version.rb

Defined Under Namespace

Classes: Case, Hook, Task, Tree

Constant Summary collapse

VERSION =
'0.0.3'
@@cases =
[]

Class Method Summary collapse

Class Method Details

.call(p, *as) ⇒ Object



27
28
29
# File 'lib/lax.rb', line 27

def call(p, *as)
  p[*as] if p
end

.preproc(p) ⇒ Object



31
32
33
# File 'lib/lax.rb', line 31

def preproc(p)
  p.parameters.any?? p : ->(o) { o.instance_exec &p }
end

.test(c = {}, &b) ⇒ Object



10
11
12
13
# File 'lib/lax.rb', line 10

def test(c={},&b)
  preproc(b)[t=Tree.new(c)]
  t.leaves.tap {|cs|@@cases+=cs}
end

.test!(opts = {}) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
# File 'lib/lax.rb', line 15

def test!(opts={})
  cases = opts[:cases] || @@cases
  call opts[:start], cases
  cases.each do |c|
    call opts[:before], c
    c.test
    call opts[:after], c
  end
  call opts[:finish], cases
  cases
end