class Convoy::Setup::Dsl::Command

Public Class Methods

new(name, options = {}, &block) click to toggle source
# File lib/convoy/setup/dsl/command.rb, line 5
def initialize(name, options = {}, &block)
    reset(name)
    @description        = options[:description] || options[:desc] || ""
    @aliases            = [options[:aliases] || []].flatten
    @requires_arguments ||= options[:requires_arguments]
    block.call(self) if block_given?
rescue => e
    raise Convoy::ClientError.new("Problem with syntax of command '#{@name}' configuration", e)
end

Public Instance Methods

action(&block) click to toggle source
# File lib/convoy/setup/dsl/command.rb, line 19
def action(&block)
    Action.action(@name, @action, &block)
end
command(name, options = {}, &block) click to toggle source
# File lib/convoy/setup/dsl/command.rb, line 23
def command(name, options = {}, &block)
    options[:requires_arguments] = @requires_arguments
    command                      = Command.new(name.to_sym, options, &block)
    aliases                      = [options[:aliases] || []].flatten + [name]
    aliases.each do |name|
        @commands[name.to_sym] = command
    end
end
description(description) click to toggle source
# File lib/convoy/setup/dsl/command.rb, line 44
def description(description)
    @description = description
end
options(&block) click to toggle source
# File lib/convoy/setup/dsl/command.rb, line 15
def options(&block)
    Options.options(@name, @options, &block)
end
requires_arguments(boolean = true) click to toggle source
# File lib/convoy/setup/dsl/command.rb, line 32
def requires_arguments(boolean = true)
    raise Convoy::ClientError.new("Parameter to 'requires_arguments' must be a boolean") unless [true, false].include?(boolean)
    @requires_arguments = boolean
    @commands.each do |command|
        command.requires_arguments(boolean)
    end
end
summary(summary) click to toggle source
# File lib/convoy/setup/dsl/command.rb, line 40
def summary(summary)
    @summary = summary
end

Private Instance Methods

custom_reset() click to toggle source
# File lib/convoy/setup/dsl/command.rb, line 61
def custom_reset
    @aliases = []
end
reset(name) click to toggle source
# File lib/convoy/setup/dsl/command.rb, line 50
def reset(name)
    @name               = name
    @summary            = nil
    @description        = nil
    @requires_arguments = false
    @commands           = {}
    @options            = Options.new(name)
    @action             = Action.new(name)
    custom_reset
end