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



88
89
90
91
92
93
94
# File 'lib/gli/command_support.rb', line 88

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

#arguments_descriptionObject

Return the arguments description



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

def arguments_description 
  @arguments_description
end

#arguments_optionsObject



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

def arguments_options
  @arguments_options
end

#commandsObject

:nodoc:



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

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

#commands_declaration_orderObject

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



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

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



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

def default_description
  @default_desc
end

#default_value(d) ⇒ Object



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

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

#desc(d) ⇒ Object



72
73
74
75
76
77
78
# File 'lib/gli/command_support.rb', line 72

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

#execute(global_options, options, arguments) ⇒ Object

Executes the command



131
132
133
134
135
136
137
138
# File 'lib/gli/command_support.rb', line 131

def execute(global_options,options,arguments) 
  subcommand,arguments = find_subcommand(arguments)
  if subcommand
    subcommand.execute(global_options,options,arguments)
  else
    get_action(arguments).call(global_options,options,arguments)
  end
end

#flag(*names) ⇒ Object



52
53
54
55
56
57
58
59
60
# File 'lib/gli/command_support.rb', line 52

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

#flagsObject

Return the flags as a Hash



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

def flags 
  @flags ||= {}
end

#get_default_commandObject



154
155
156
# File 'lib/gli/command_support.rb', line 154

def get_default_command
  @default_command
end

#has_action?Boolean

Returns:

  • (Boolean)


150
151
152
# File 'lib/gli/command_support.rb', line 150

def has_action?
  !!@action
end

#long_desc(d) ⇒ Object



80
81
82
83
84
85
86
# File 'lib/gli/command_support.rb', line 80

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

#namesObject

Return the Array of the command’s names



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

def names 
  all_forms
end

#nodocObject

Return true to avoid including this command in your help strings



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

def nodoc
  false
end

#skips_aroundObject

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



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

def skips_around
  @skips_around
end

#skips_postObject

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



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

def skips_post 
  @skips_post
end

#skips_preObject

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



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

def skips_pre 
  @skips_pre
end

#switch(*names) ⇒ Object



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

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

#switchesObject

Return the switches as a Hash



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

def switches 
  @switches ||= {}
end

#topmost_ancestorObject



140
141
142
143
144
145
146
147
148
# File 'lib/gli/command_support.rb', line 140

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

#usageObject

Get the usage string CR: This should probably not be here



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

def usage 
  usage = name.to_s
  usage += ' [command options]' if !flags.empty? || !switches.empty?
  usage += ' ' + @arguments_description if @arguments_description
  usage
end