Class: Riot::Gear::OnceRunnable

Inherits:
RunnableBlock
  • Object
show all
Defined in:
lib/riot/gear/context/once.rb

Instance Method Summary collapse

Constructor Details

#initialize(description, &definition) ⇒ OnceRunnable

Returns a new instance of OnceRunnable.



2
3
4
5
# File 'lib/riot/gear/context/once.rb', line 2

def initialize(description, &definition)
  super("[once] #{description}", &definition)
  @ran = false
end

Instance Method Details

#run(situation) ⇒ Array<Symbol>

Applies the provided &definition to the situation. But, it only does so once.

Parameters:

  • situation (Riot::Situation)

    An instance of a Situation

Returns:

  • (Array<Symbol>)


12
13
14
15
16
17
18
19
20
# File 'lib/riot/gear/context/once.rb', line 12

def run(situation)
  if @ran
    [:once_ignored]
  else
    @ran = true
    situation.evaluate(&definition)
    [:once]
  end
end