Module: Bdd::RSpec::ExampleGroup

Defined in:
lib/bdd/rspec/example_group.rb

Defined Under Namespace

Modules: ClassMethods

Instance Method Summary collapse

Instance Method Details

#And(msg, &block) ⇒ Object



44
45
46
# File 'lib/bdd/rspec/example_group.rb', line 44

def And(msg, &block)
  step(["  And", msg], &block)
end

#But(msg, &block) ⇒ Object



48
49
50
# File 'lib/bdd/rspec/example_group.rb', line 48

def But(msg, &block)
  step(["  But", msg], &block)
end

#Given(msg, &block) ⇒ Object



32
33
34
# File 'lib/bdd/rspec/example_group.rb', line 32

def Given(msg, &block)
  step(["Given", msg], &block)
end

#step(array, &block) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/bdd/rspec/example_group.rb', line 5

def step(array, &block)
  unless using_bdd_formatter?
    yield if block_given?
    return
  end

  if block_given?
    if @is_during_rspec_step
      yield
    else
      step_messages << hash = {msg: array}
      @is_during_rspec_step = true
      yield
      # apply green color if example passes
      hash[:color] = :green
      @is_during_rspec_step = false
    end

  elsif array.last == :bdd
    a = step_messages.last[:msg]
    a[0] = array[0]
  else
    step_messages << {msg: "SKIPPED #{array}"}
  end
  return :bdd
end

#Then(msg, &block) ⇒ Object



40
41
42
# File 'lib/bdd/rspec/example_group.rb', line 40

def Then(msg, &block)
  step([" Then", msg], &block)
end

#When(msg, &block) ⇒ Object



36
37
38
# File 'lib/bdd/rspec/example_group.rb', line 36

def When(msg, &block)
  step([" When", msg], &block)
end