Module: Rspec::DoAction::InstanceMethods

Defined in:
lib/rspec-do_action.rb

Instance Method Summary collapse

Instance Method Details

#action_procObject



22
23
24
# File 'lib/rspec-do_action.rb', line 22

def action_proc
  find_variable("@action_proc")
end

#do_action(*args) ⇒ Object



8
9
10
11
# File 'lib/rspec-do_action.rb', line 8

def do_action(*args)
  expect(action_proc).to_not be_nil, "need define action block"
  instance_exec *args, &action_proc
end

#find_variable(name) ⇒ Object



30
31
32
33
# File 'lib/rspec-do_action.rb', line 30

def find_variable(name)
  group = self.class.parent_groups.find { |group| group.instance_variable_defined?(name) }
  group.instance_variable_get(name) if group
end

#invoke_do_action_once(example, force: false) ⇒ Object



13
14
15
16
17
18
19
20
# File 'lib/rspec-do_action.rb', line 13

def invoke_do_action_once(example, force: false)
  return if !action_proc
  return if !force && skip_do_action?
  return if @do_action_once_invoked

  do_action(example)
  @do_action_once_invoked = true
end

#skip_do_action?Boolean

Returns:

  • (Boolean)


26
27
28
# File 'lib/rspec-do_action.rb', line 26

def skip_do_action?
  !!find_variable("@skip_do_action")
end