Object
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/bundler/vendor/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/bundler/vendor/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/bundler/vendor/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/bundler/vendor/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/bundler/vendor/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/bundler/vendor/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/bundler/vendor/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/bundler/vendor/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/bundler/vendor/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/bundler/vendor/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/bundler/vendor/thor.rb, line 181 181: def subcommands 182: @subcommands ||= from_superclass(:subcommands, []) 183: end
Prints help information for the given task.
shell
# File lib/bundler/vendor/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.