class YARD::CLI::YardoptsCommand
Abstract base class for command that reads .yardopts file
@abstract @since 0.8.3
Constants
- DEFAULT_YARDOPTS_FILE
The configuration filename to load extra options from
Attributes
The options file name (defaults to {DEFAULT_YARDOPTS_FILE}) @return [String] the filename to load extra options from
@return [Boolean] whether to parse options from .document
@return [Boolean] whether to parse options from .yardopts
Public Class Methods
Creates a new command that reads .yardopts
# File lib/yard/cli/yardopts_command.rb, line 25 def initialize super @options_file = DEFAULT_YARDOPTS_FILE @use_yardopts_file = true @use_document_file = true end
Public Instance Methods
Parses commandline arguments @param [Array<String>] args the list of arguments @return [Boolean] whether or not arguments are valid @since 0.5.6
# File lib/yard/cli/yardopts_command.rb, line 36 def parse_arguments(*args) parse_yardopts_options(*args) # Parse files and then command line arguments parse_rdoc_document_file parse_yardopts optparse(*args) end
Protected Instance Methods
Adds –[no-]yardopts / –[no-]document
# File lib/yard/cli/yardopts_command.rb, line 48 def yardopts_options(opts) opts.on('--[no-]yardopts [FILE]', "If arguments should be read from FILE", " (defaults to yes, FILE defaults to .yardopts)") do |use_yardopts| if use_yardopts.is_a?(String) self.options_file = use_yardopts self.use_yardopts_file = true else self.use_yardopts_file = (use_yardopts != false) end end opts.on('--[no-]document', "If arguments should be read from .document file. ", " (defaults to yes)") do |use_document| self.use_document_file = use_document end end
Private Instance Methods
# File lib/yard/cli/yardopts_command.rb, line 92 def parse_rdoc_document_file(file = '.document') optparse(*support_rdoc_document_file!(file)) if use_document_file end
# File lib/yard/cli/yardopts_command.rb, line 96 def parse_yardopts(file = options_file) optparse(*yardopts(file)) if use_yardopts_file end
Parses out the yardopts/document options
# File lib/yard/cli/yardopts_command.rb, line 78 def parse_yardopts_options(*args) opts = OptionParser.new opts.base.long.clear # HACK: why are --help and --version defined? yardopts_options(opts) begin opts.parse(args) rescue OptionParser::ParseError => err idx = args.index(err.args.first) args = args[(idx + 1)..-1] args.shift while args.first && args.first[0, 1] != '-' retry end end
Reads a .document file in the directory to get source file globs @return [Array<String>] an array of files parsed from .document
# File lib/yard/cli/yardopts_command.rb, line 102 def support_rdoc_document_file!(file = '.document') return [] unless use_document_file File.read(file).gsub(/^[ \t]*#.+/m, '').split(/\s+/) rescue Errno::ENOENT [] end
Parses the .yardopts file for default yard options @return [Array<String>] an array of options parsed from .yardopts
# File lib/yard/cli/yardopts_command.rb, line 70 def yardopts(file = options_file) return [] unless use_yardopts_file File.read_binary(file).shell_split rescue Errno::ENOENT [] end