Module: Brigadier::Commands::Base

Includes:
Helper
Included in:
Command, SubCommand
Defined in:
lib/brigadier/commands/base.rb

Instance Method Summary collapse

Methods included from Helper

#available_params_for, #display_help_for, #display_help_if_requested, #help, #help_requested?, #inverse_toggle_arg?, #option_or_toggle?

Instance Method Details

#assign_arguments_from(parameters) ⇒ Object



41
42
43
# File 'lib/brigadier/commands/base.rb', line 41

def assign_arguments_from(parameters)
  create_variable_and_method_from(parameters)
end

#assign_options_from(parameters) ⇒ Object



37
38
39
# File 'lib/brigadier/commands/base.rb', line 37

def assign_options_from(parameters)
  create_variable_and_method_from(parameters)
end

#assign_toggles_from(toggles) ⇒ Object



27
28
29
30
31
32
33
34
35
# File 'lib/brigadier/commands/base.rb', line 27

def assign_toggles_from(toggles)
  toggles.each do |toggle|
    name = toggle.normalised_attribute_name.to_sym
    method_name = "#{name}?"
    instance.instance_variable_set(:"@#{name}", toggle.value)
    $stderr.puts "WARN: Overwrting existing method '#{name}'.." if instance.respond_to?(name)
    instance.define_singleton_method(method_name) { toggle.value }
  end
end

#create_variable_and_method_from(parameters) ⇒ Object



45
46
47
48
49
50
51
52
# File 'lib/brigadier/commands/base.rb', line 45

def create_variable_and_method_from(parameters)
  parameters.each do |param|
    name = param.normalised_attribute_name.to_sym
    instance.instance_variable_set(:"@#{name}", param.value)
    $stderr.puts "WARN: Overwrting existing method '#{name}'.." if instance.respond_to?(name)
    instance.define_singleton_method(name) { param.value }
  end
end

#ensure_parameters_defined!(*parameters) ⇒ Object



54
55
56
57
58
59
60
# File 'lib/brigadier/commands/base.rb', line 54

def ensure_parameters_defined!(*parameters)
  captured_errors = validate_parameters!(parameters)
  unless captured_errors.empty?
    captured_errors.each { |e| $stderr.puts "ERROR: #{e}" }
    exit(Exceptions::ERROR_EXIT_CODE)
  end
end

#hidden?Boolean

Returns:

  • (Boolean)


23
24
25
# File 'lib/brigadier/commands/base.rb', line 23

def hidden?
  false
end

#process_args(args, obj) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
# File 'lib/brigadier/commands/base.rb', line 6

def process_args(args, obj)
  args_to_keep = []
  until args.empty?
    arg = args.shift
    if option_or_toggle?(arg)
      next if set_options_for(arg, args, obj.options) || set_toggles_for(arg, obj.toggles)
    elsif set_argument_for(arg, obj.arguments)
      next
    end
  end
  args = args_to_keep
end

#sub_command?Boolean

Returns:

  • (Boolean)


19
20
21
# File 'lib/brigadier/commands/base.rb', line 19

def sub_command?
  false
end