class Action

represents one action to be performed in the shell can assemble a command line from a command and args

Attributes

name[R]

Public Class Methods

new(name, config, args) click to toggle source
# File lib/action.rb, line 10
def initialize(name, config, args)
        @name = name
        @config = config
        @args = args
end

Public Instance Methods

alias() click to toggle source
# File lib/action.rb, line 28
def alias
        @config["alias"]
end
allowed_in_env?(env) click to toggle source
# File lib/action.rb, line 66
def allowed_in_env?(env)
        return false if not_in_envs.include?(env)

        return false if in_envs.any? && !in_envs.include?(env)

        true
end
command() click to toggle source
# File lib/action.rb, line 32
def command
        @config["command"]
end
config_errors() click to toggle source
# File lib/action.rb, line 48
def config_errors
        @config_errors ||= begin
                errors = []

                errors << "No 'command' specified in 'action'." unless @config['command']

                errors
        end
end
config_valid?() click to toggle source
# File lib/action.rb, line 44
def config_valid?
        config_errors.empty?
end
description() click to toggle source
# File lib/action.rb, line 36
def description
        @config["description"]
end
execute_in_env?(env) click to toggle source
# File lib/action.rb, line 62
def execute_in_env?(env)
        !skip_in_envs.include?(env)
end
load_secrets?() click to toggle source
# File lib/action.rb, line 58
def load_secrets?
        @config["load_secrets"].nil? ? false : @config["load_secrets"]
end
run() click to toggle source
# File lib/action.rb, line 16
def run
        if perform_shell_expansion?
                Kernel.exec(to_s)
        else
                Kernel.exec(*to_a)
        end
end
skip_hooks?(name) click to toggle source
# File lib/action.rb, line 40
def skip_hooks?(name)
        @config["skip_#{name}_hooks"]
end
to_s() click to toggle source
# File lib/action.rb, line 24
def to_s
        "#{command} #{@args.join(' ')}".strip
end

Private Instance Methods

in_envs() click to toggle source
# File lib/action.rb, line 84
def in_envs
        @config["in_envs"] || []
end
not_in_envs() click to toggle source
# File lib/action.rb, line 80
def not_in_envs
        @config["not_in_envs"] || []
end
perform_shell_expansion?() click to toggle source
# File lib/action.rb, line 92
def perform_shell_expansion?
        @config["shell_expansion"].nil? ? true : @config["shell_expansion"]
end
skip_in_envs() click to toggle source
# File lib/action.rb, line 88
def skip_in_envs
        @config["skip_in_envs"] || []
end
to_a() click to toggle source
# File lib/action.rb, line 76
def to_a
        command.split(" ").reject(&:nil?) | @args
end