lib/yard/cli/command.rb in yard-0.6.8 vs lib/yard/cli/command.rb in yard-0.7.0

- old
+ new

@@ -2,68 +2,69 @@ module YARD module CLI # Abstract base class for CLI utilities. Provides some helper methods for # the option parser - # + # # @abstract # @since 0.6.0 class Command # Helper method to run the utility on an instance. # @see #run def self.run(*args) new.run(*args) end - + def description; '' end - + protected # Adds a set of common options to the tail of the OptionParser - # + # # @param [OptionParser] opts the option parser object # @return [void] def common_options(opts) opts.separator "" opts.separator "Other options:" - opts.on('-e', '--load FILE', 'A Ruby script to load before the source tree is parsed.') do |file| + opts.on('-e', '--load FILE', 'A Ruby script to load before running command.') do |file| load_script(file) end opts.on('--plugin PLUGIN', 'Load a YARD plugin (gem with `yard-\' prefix)') do |name| # Not actually necessary to load here, this is done at boot in YARD::Config.load_plugins # YARD::Config.load_plugin(name) end - opts.on('--legacy', 'Use old style Ruby parser and handlers. Always on in 1.8.x.') do + opts.on('--legacy', 'Use old style Ruby parser and handlers. ', + ' Always on in 1.8.x.') do YARD::Parser::SourceParser.parser_type = :ruby18 end opts.on_tail('-q', '--quiet', 'Show no warnings.') { log.level = Logger::ERROR } opts.on_tail('--verbose', 'Show more information.') { log.level = Logger::INFO } opts.on_tail('--debug', 'Show debugging information.') { log.level = Logger::DEBUG } opts.on_tail('--backtrace', 'Show stack traces') { log.show_backtraces = true } opts.on_tail('-v', '--version', 'Show version.') { puts "yard #{YARD::VERSION}"; exit } opts.on_tail('-h', '--help', 'Show this help.') { puts opts; exit } end - + # Parses the option and gracefully handles invalid switches - # + # # @param [OptionParser] opts the option parser object # @param [Array<String>] args the arguments passed from input. This # array will be modified. # @return [void] def parse_options(opts, args) opts.parse!(args) rescue OptionParser::InvalidOption => e log.warn "Unrecognized/#{e.message}" end - + # Loads a Ruby script. If +Config.options[:safe_mode]+ is enabled, # this method will do nothing. - # + # # @param [String] file the path to the script to load # @since 0.6.2 def load_script(file) return if YARD::Config.options[:safe_mode] require(file.gsub(/\.rb$/, '')) - rescue LoadError - log.error "The file `#{file}' could not be loaded, check the path and try again." + rescue LoadError => load_exception + log.error "The file `#{file}' could not be loaded:\n#{load_exception}" exit end end end end \ No newline at end of file