module Runbook::Run

Public Class Methods

_register_additional_step_whitespace_hook(base) click to toggle source
# File lib/runbook/run.rb, line 275
def self._register_additional_step_whitespace_hook(base)
  base.register_hook(
    :add_additional_step_whitespace_hook,
    :after,
    Runbook::Statement,
  ) do |object, metadata|
    if object.parent.is_a?(Runbook::Entities::Step) ||
        object.parent.is_a?(Runbook::Entities::Setup)
      if object.parent.items.last == object
        metadata[:toolbox].output("\n")
      end
    end
  end
end
_register_kill_all_panes_hook(base) click to toggle source
# File lib/runbook/run.rb, line 255
def self._register_kill_all_panes_hook(base)
  base.register_hook(
    :kill_all_panes_after_book,
    :after,
    Runbook::Entities::Book,
  ) do |object, metadata|
    next if metadata[:noop] || metadata[:layout_panes].none? || metadata[:keep_panes]
    if metadata[:auto]
      metadata[:toolbox].output("Killing all opened tmux panes...")
      kill_all_panes(metadata[:layout_panes])
    else
      prompt = "Kill all opened panes?"
      result = metadata[:toolbox].yes?(prompt)
      if result
        kill_all_panes(metadata[:layout_panes])
      end
    end
  end
end
included(base) click to toggle source
# File lib/runbook/run.rb, line 3
def self.included(base)
  base.extend(ClassMethods)
  _register_kill_all_panes_hook(base)
  _register_additional_step_whitespace_hook(base)
  ::Runbook::Util::Repo.register_save_repo_hook(base)
  ::Runbook::Util::Repo.register_delete_stored_repo_hook(base)
  ::Runbook::Util::StoredPose.register_save_pose_hook(base)
  ::Runbook::Util::StoredPose.register_delete_stored_pose_hook(base)
end