class Sfn::Callback

Interface for injecting custom functionality

Attributes

api[R]

@return [Miasma::Models::Orchestration] remote API

arguments[R]

@return [Array<String>] CLI arguments

config[R]

@return [Smash]

ui[R]

@return [Bogo::Ui]

Public Class Methods

new(ui, config, arguments, api) click to toggle source

Create a new callback instance

@param ui [Bogo::Ui] @param config [Smash] configuration hash @param arguments [Array<String>] arguments from the CLI @param api [Provider] API connection

@return [self]

# File lib/sfn/callback.rb, line 27
def initialize(ui, config, arguments, api)
  @ui = ui
  @config = config
  @arguments = arguments
  @api = api
end

Public Instance Methods

run_action(msg) { || ... } click to toggle source

Wrap action within status text

@param msg [String] action text @yieldblock action to perform @return [Object] result of yield

# File lib/sfn/callback.rb, line 39
def run_action(msg)
  ui.info("#{msg}... ", :nonewline)
  begin
    result = yield
    ui.puts ui.color("complete!", :green, :bold)
    result
  rescue => e
    ui.puts ui.color("error!", :red, :bold)
    ui.error "Reason - #{e}"
    raise
  end
end