Module: GLI::CommandSupport

Included in:
Command
Defined in:
lib/gli/command_support.rb

Overview

Things unrelated to the true public interface of Command that are needed for bookkeeping and help support. Generally, you shouldn’t be calling these methods; they are technically public but are essentially part of GLI’s internal implementation and subject to change

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#parentObject

The parent of this command, either the GLI app, or another command



7
8
9
# File 'lib/gli/command_support.rb', line 7

def parent
  @parent
end

Instance Method Details

#arg_name(d, options = []) ⇒ Object



102
103
104
105
# File 'lib/gli/command_support.rb', line 102

def arg_name(d,options=[])
  parent.arg_name(d,options) if parent.kind_of?(Command) && send_declarations_to_parent?
  super(d,options)
end

#argumentsObject



28
29
30
# File 'lib/gli/command_support.rb', line 28

def arguments
  @arguments
end

#arguments_descriptionObject

Return the arguments description



20
21
22
# File 'lib/gli/command_support.rb', line 20

def arguments_description 
  @arguments_description
end

#arguments_optionsObject



24
25
26
# File 'lib/gli/command_support.rb', line 24

def arguments_options
  @arguments_options
end

#commandsObject

:nodoc:



121
122
123
# File 'lib/gli/command_support.rb', line 121

def commands # :nodoc:
  @commands ||= {}
end

#commands_declaration_orderObject

Get an array of commands, ordered by when they were declared



58
59
60
# File 'lib/gli/command_support.rb', line 58

def commands_declaration_order # :nodoc:
  @commands_declaration_order
end

#context_descriptionObject



9
10
11
# File 'lib/gli/command_support.rb', line 9

def context_description
  "in the command #{name}"
end

#default_descriptionObject



125
126
127
# File 'lib/gli/command_support.rb', line 125

def default_description
  @default_desc
end

#default_value(d) ⇒ Object



107
108
109
110
# File 'lib/gli/command_support.rb', line 107

def default_value(d)
  parent.default_value(d) if parent.kind_of?(Command) && send_declarations_to_parent?
  super(d)
end

#desc(d) ⇒ Object



92
93
94
95
# File 'lib/gli/command_support.rb', line 92

def desc(d)
  parent.desc(d) if parent.kind_of?(Command) && send_declarations_to_parent?
  super(d)
end

#examplesObject

Returns the array of examples



53
54
55
# File 'lib/gli/command_support.rb', line 53

def examples
  @examples
end

#execute(global_options, options, arguments) ⇒ Object

Executes the command



130
131
132
# File 'lib/gli/command_support.rb', line 130

def execute(global_options,options,arguments) 
  get_action(arguments).call(global_options,options,arguments)
end

#flag(*names) ⇒ Object



62
63
64
65
66
67
68
69
70
71
72
73
74
75
# File 'lib/gli/command_support.rb', line 62

def flag(*names)
  if send_declarations_to_parent?
    new_flag = if parent.kind_of? Command
                 super(*names)
                 parent.flag(*names)
               else
                 super(*names)
               end
    new_flag.associated_command = self
    new_flag
  else
    super(*names)
  end
end

#flagsObject

Return the flags as a Hash



113
114
115
# File 'lib/gli/command_support.rb', line 113

def flags 
  @flags ||= {}
end

#get_default_commandObject



148
149
150
# File 'lib/gli/command_support.rb', line 148

def get_default_command
  @default_command
end

#has_action?Boolean

Returns:

  • (Boolean)


144
145
146
# File 'lib/gli/command_support.rb', line 144

def has_action?
  !!@action
end

#long_desc(d) ⇒ Object



97
98
99
100
# File 'lib/gli/command_support.rb', line 97

def long_desc(d)
  parent.long_desc(d) if parent.kind_of?(Command) && send_declarations_to_parent?
  super(d)
end

#namesObject

Return the Array of the command’s names



48
49
50
# File 'lib/gli/command_support.rb', line 48

def names 
  all_forms
end

#nodocObject

Return true to avoid including this command in your help strings Will honor the hide_commands_without_desc flag



15
16
17
# File 'lib/gli/command_support.rb', line 15

def nodoc
  @hide_commands_without_desc and description.nil?
end

#skips_aroundObject

If true, this command doesn’t want the around block called



43
44
45
# File 'lib/gli/command_support.rb', line 43

def skips_around
  @skips_around
end

#skips_postObject

If true, this command doesn’t want the post block run before it executes



38
39
40
# File 'lib/gli/command_support.rb', line 38

def skips_post 
  @skips_post
end

#skips_preObject

If true, this command doesn’t want the pre block run before it executes



33
34
35
# File 'lib/gli/command_support.rb', line 33

def skips_pre 
  @skips_pre
end

#switch(*names) ⇒ Object



77
78
79
80
81
82
83
84
85
86
87
88
89
90
# File 'lib/gli/command_support.rb', line 77

def switch(*names)
  if send_declarations_to_parent?
    new_switch = if parent.kind_of? Command
                   super(*names)
                   parent.switch(*names)
                 else
                   super(*names)
                 end
    new_switch.associated_command = self
    new_switch
  else
    super(*names)
  end
end

#switchesObject

Return the switches as a Hash



117
118
119
# File 'lib/gli/command_support.rb', line 117

def switches 
  @switches ||= {}
end

#topmost_ancestorObject



134
135
136
137
138
139
140
141
142
# File 'lib/gli/command_support.rb', line 134

def topmost_ancestor
  some_command = self
  top = some_command
  while some_command.kind_of? self.class
    top = some_command
    some_command = some_command.parent
  end
  top
end