module Rootage::ScenarioInterface

ScenarioInterface provides basic methods for Scenario.

Public Instance Methods

define(*args) click to toggle source
# File lib/rootage/scenario.rb, line 73
def define(*args)
  @info.define(*args)
end
define_phase(name, &block) click to toggle source

Define a phase.

@raise [ArgumentError]

if there is same name phase already

@param name [String]

phase name

@yieldparam phase [Phase]

phase object

@return [void]

# File lib/rootage/scenario.rb, line 107
def define_phase(name, &block)
  if @__phase__.has_key?(name)
    raise ArgumentError.new('Phase "%{name}" has been defined already.' % {name: name})
  end

  @__phase__[name] = phase_class.new(name)

  if block_given?
    block.call(@__phase__[name])
  end
end
desc() click to toggle source
# File lib/rootage/scenario.rb, line 81
def desc
  @info.desc
end
phase(name, &block) click to toggle source

Find a phase object by the name.

@param name [Symbol]

the phase name

@return [Command::Phase]

a phase object
# File lib/rootage/scenario.rb, line 125
def phase(name, &block)
  unless @__phase__.has_key?(name)
    raise ArgumentError.new('Unknown phase name: "%s"' % name)
  end

  if block_given?
    block.call(@__phase__[name])
  end

  @__phase__[name]
end
phase_class() click to toggle source

Return a phase class used for this scnario.

# File lib/rootage/scenario.rb, line 94
def phase_class
  @info[:phase_class]
end
process_context_class() click to toggle source

Return a process context class.

@return [Class]

process context class
# File lib/rootage/scenario.rb, line 89
def process_context_class
  @info[:process_context_class]
end
scenario_name() click to toggle source
# File lib/rootage/scenario.rb, line 77
def scenario_name
  @info.scenario_name
end