class GitCompound::Command::Procedure::Procedure

Abstract Procedure class

Debug cases for Procedure

Attributes

steps[R]

Public Class Methods

new(_opts) click to toggle source
# File lib/git_compound/command/procedure/procedure.rb, line 7
def initialize(_opts)
end
options() click to toggle source

Valid options available for this procedure see Element::Option

# File lib/git_compound/command/procedure/procedure.rb, line 35
def options
  {}
end
to_s() click to toggle source

Name of procedure

# File lib/git_compound/command/procedure/procedure.rb, line 41
def to_s
  name.split('::').last
    .gsub(/::/, '/')
    .gsub(/([A-Z]+)([A-Z][a-z])/, '\1_\2')
    .gsub(/([a-z\d])([A-Z])/, '\1_\2')
    .tr('-', '_')
    .downcase
end

Private Class Methods

step(name, &block) click to toggle source
# File lib/git_compound/command/procedure/procedure.rb, line 52
def step(name, &block)
  raise GitCompoundError, 'No block given !' unless block

  @steps = {} unless @steps
  @steps.store(name, block)
end

Public Instance Methods

execute() click to toggle source

Main procedure entry point

# File lib/git_compound/command/procedure/procedure.rb, line 18
def execute
  self.class.steps.to_h.keys.each do |name|
    execute_step(name)
  end
end
execute!() click to toggle source

Method with additional messages etc.

# File lib/git_compound/command/procedure/procedure.rb, line 12
def execute!
  execute
end
execute_step(name) click to toggle source
# File lib/git_compound/command/procedure/procedure.rb, line 24
def execute_step(name)
  step_proc = self.class.steps.to_h[name]
  instance_eval(&step_proc) if step_proc
end