class ActiveScripts::Preparations::Base

Constants

COMMANDS

INFO: ActiveScripts::Preparations::Base contains code that is

shared between all preparation files.
OPTIONS

Attributes

command[RW]
options[RW]

Public Class Methods

execute(command, options={}) click to toggle source
# File lib/active_scripts/preparations/base.rb, line 18
def self.execute(command, options={})
  new(command, options).execute
end
new(command, options={}) click to toggle source
# File lib/active_scripts/preparations/base.rb, line 13
def initialize(command, options={})
  @command = command
  @options = options
end

Public Instance Methods

execute() click to toggle source
# File lib/active_scripts/preparations/base.rb, line 22
def execute
  assert_valid_command!
  assert_valid_options!
  send(@command)
end

Private Instance Methods

assert_valid_command!() click to toggle source
# File lib/active_scripts/preparations/base.rb, line 30
def assert_valid_command!
  unless COMMANDS.include?(@command)
    raise ArgumentError,
      "Unknown package command: #{@command.inspect}. Valid package commands are: #{COMMANDS.map(&:inspect).join(', ')}"
  end
end
assert_valid_options!() click to toggle source
# File lib/active_scripts/preparations/base.rb, line 37
def assert_valid_options!
  @options.each_key do |option|
    unless OPTIONS.include?(option)
      raise ArgumentError,
        "Unknown package option: #{option.inspect}. Valid package options are: #{OPTIONS.map(&:inspect).join(', ')}"
    end
  end
end
execute_command!(command) click to toggle source
# File lib/active_scripts/preparations/base.rb, line 54
def execute_command!(command)
  say("   Executing: '#{command}'") if option_dry_run? || option_verbose?
  option_dry_run? ? (output = error = "") : (output, error, status = Open3.capture3("#{command}"))
  return(error.blank? ? output : error)
end
notify_preparation_missing!() click to toggle source
# File lib/active_scripts/preparations/base.rb, line 69
def notify_preparation_missing!
  say_error("   [!] PreparationError")
  say_error("     - The preparation is not installed.")
end
notify_preparation_unavailable!() click to toggle source
# File lib/active_scripts/preparations/base.rb, line 74
def notify_preparation_unavailable!
  say_warning("   [!] PreparationError")
  say_warning("     - The preparation is not available for your operating system.")
end
option_dry_run?() click to toggle source
# File lib/active_scripts/preparations/base.rb, line 46
def option_dry_run?
  @options.fetch(:dry_run, false)
end
option_verbose?() click to toggle source
# File lib/active_scripts/preparations/base.rb, line 50
def option_verbose?
  @options.fetch(:verbose, false)
end
preparation_output?(output, excludes: nil, includes: nil) click to toggle source
# File lib/active_scripts/preparations/base.rb, line 60
def preparation_output?(output, excludes: nil, includes: nil)
  output = output.squish
  if includes.nil? && excludes.nil?
    output.blank?
  else
    includes.nil? ? [excludes].flatten.any? { |str| output.exclude?(str) } : [includes].flatten.any? { |str| output.include?(str) }
  end
end