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



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

def arg_name(d,options=[])
  parent.arg_name(d,options) if parent.kind_of?(Command) && send_declarations_to_parent?
  super(d,options)
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:



111
112
113
# File 'lib/gli/command_support.rb', line 111

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



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

def default_description
  @default_desc
end

#default_value(d) ⇒ Object



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

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

#desc(d) ⇒ Object



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

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

#execute(global_options, options, arguments) ⇒ Object

Executes the command



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

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

#flag(*names) ⇒ Object



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

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



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

def flags 
  @flags ||= {}
end

#get_default_commandObject



138
139
140
# File 'lib/gli/command_support.rb', line 138

def get_default_command
  @default_command
end

#has_action?Boolean

Returns:

  • (Boolean)


134
135
136
# File 'lib/gli/command_support.rb', line 134

def has_action?
  !!@action
end

#long_desc(d) ⇒ Object



87
88
89
90
# File 'lib/gli/command_support.rb', line 87

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



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



67
68
69
70
71
72
73
74
75
76
77
78
79
80
# File 'lib/gli/command_support.rb', line 67

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



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

def switches 
  @switches ||= {}
end

#topmost_ancestorObject



124
125
126
127
128
129
130
131
132
# File 'lib/gli/command_support.rb', line 124

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