Shortcuts for help.
Thor methods that should not be overwritten by the user.
Extend check unknown options to accept a hash of conditions.
options
# File lib/thor.rb, line 195
195: def check_unknown_options!(options={})
196: @check_unknown_options ||= Hash.new
197: options.each do |key, value|
198: if value
199: @check_unknown_options[key] = Array(value)
200: else
201: @check_unknown_options.delete(key)
202: end
203: end
204: @check_unknown_options
205: end
Sets the default task when thor is executed without an explicit task to be called.
| meth | name of the defaut task |
# File lib/thor.rb, line 10
10: def default_task(meth=nil)
11: case meth
12: when :none
13: @default_task = 'help'
14: when nil
15: @default_task ||= from_superclass(:default_task, 'help')
16: else
17: @default_task = meth.to_s
18: end
19: end
Defines the usage and the description of the next task.
usage
# File lib/thor.rb, line 28
28: def desc(usage, description, options={})
29: if options[:for]
30: task = find_and_refresh_task(options[:for])
31: task.usage = usage if usage
32: task.description = description if description
33: else
34: @usage, @desc, @hide = usage, description, options[:hide] || false
35: end
36: end
Prints help information for this class.
shell
# File lib/thor.rb, line 157
157: def help(shell, subcommand = false)
158: list = printable_tasks(true, subcommand)
159: Thor::Util.thor_classes_in(self).each do |klass|
160: list += klass.printable_tasks(false)
161: end
162: list.sort!{ |a,b| a[0] <=> b[0] }
163:
164: shell.say "Tasks:"
165: shell.print_table(list, :ident => 2, :truncate => true)
166: shell.say
167: class_options_help(shell)
168: end
Defines the long description of the next task.
long description
# File lib/thor.rb, line 43
43: def long_desc(long_description, options={})
44: if options[:for]
45: task = find_and_refresh_task(options[:for])
46: task.long_description = long_description if long_description
47: else
48: @long_desc = long_description
49: end
50: end
Maps an input to a task. If you define:
map "-T" => "list"
Running:
thor -T
Will invoke the list task.
| Hash[String|Array => Symbol] | Maps the string or the strings in the array to the given task. |
# File lib/thor.rb, line 65
65: def map(mappings=nil)
66: @map ||= from_superclass(:map, {})
67:
68: if mappings
69: mappings.each do |key, value|
70: if key.respond_to?(:each)
71: key.each {|subkey| @map[subkey] = value}
72: else
73: @map[key] = value
74: end
75: end
76: end
77:
78: @map
79: end
Adds an option to the set of method options. If :for is given as option, it allows you to change the options from a previous defined task.
def previous_task
# magic
end
method_option :foo => :bar, :for => :previous_task
def next_task
# magic
end
| name | The name of the argument. |
| options | Described below. |
:desc - Description for the argument. :required - If the argument is required or not. :default - Default value for this argument. It cannot be required and have default values. :aliases - Aliases for this option. :type - The type of the argument, can be :string, :hash, :array, :numeric or :boolean. :banner - String to show on usage notes.
# File lib/thor.rb, line 119
119: def method_option(name, options={})
120: scope = if options[:for]
121: find_and_refresh_task(options[:for]).options
122: else
123: method_options
124: end
125:
126: build_option(name, options, scope)
127: end
Declares the options for the next task to be declared.
| Hash[Symbol => Object] | The hash key is the name of the option and the value |
is the type of the option. Can be :string, :array, :hash, :boolean, :numeric or :required (string). If you give a value, the type of the value is used.
# File lib/thor.rb, line 88
88: def method_options(options=nil)
89: @method_options ||= {}
90: build_options(options, @method_options) if options
91: @method_options
92: end
Returns tasks ready to be printed.
# File lib/thor.rb, line 171
171: def printable_tasks(all = true, subcommand = false)
172: (all ? all_tasks : tasks).map do |_, task|
173: next if task.hidden?
174: item = []
175: item << banner(task, false, subcommand)
176: item << (task.description ? "# #{task.description.gsub(/\s+/m,' ')}" : "")
177: item
178: end.compact
179: end
# File lib/thor.rb, line 185
185: def subcommand(subcommand, subcommand_class)
186: self.subcommands << subcommand.to_s
187: subcommand_class.subcommand_help subcommand
188: define_method(subcommand) { |*args| invoke subcommand_class, args }
189: end
# File lib/thor.rb, line 181
181: def subcommands
182: @subcommands ||= from_superclass(:subcommands, [])
183: end
Prints help information for the given task.
shell
# File lib/thor.rb, line 135
135: def task_help(shell, task_name)
136: meth = normalize_task_name(task_name)
137: task = all_tasks[meth]
138: handle_no_task_error(meth) unless task
139:
140: shell.say "Usage:"
141: shell.say " #{banner(task)}"
142: shell.say
143: class_options_help(shell, nil => task.options.map { |_, o| o })
144: if task.long_description
145: shell.say "Description:"
146: shell.print_wrapped(task.long_description, :ident => 2)
147: else
148: shell.say task.description
149: end
150: end
Disabled; run with --debug to generate this.
Generated with the Darkfish Rdoc Generator 1.1.6.