class Referral::ParsesOptions
Public Instance Methods
call(argv)
click to toggle source
# File lib/referral/parses_options.rb, line 6 def call(argv) options = snake_case(run_optparse(argv)) Value::Options.default.merge( merge_files(options, argv) ).freeze end
Private Instance Methods
help!(op)
click to toggle source
# File lib/referral/parses_options.rb, line 59 def help!(op) op.on("-h", "--help", "Prints this help") do puts op exit 0 end end
merge_files(options, argv)
click to toggle source
# File lib/referral/parses_options.rb, line 46 def merge_files(options, argv) options.merge( files: argv.empty? ? Dir["**/*.rb"] : argv.dup ) end
run_optparse(argv)
click to toggle source
# File lib/referral/parses_options.rb, line 15 def run_optparse(argv) {}.tap do |options| op = OptionParser.new op.banner += " files" op.version = Referral::VERSION version!(op) help!(op) op.on("-n", "--name [NAME]", Array, "Partial or complete name(s) to filter") op.on("--exact-name [NAME]", Array, "Exact name(s) to filter") op.on("--full-name [NAME]", Array, "Exact, fully-qualified name(s) to filter") op.on("--scope [SCOPE]", Array, "Scope(s) in which to filter (e.g. Hastack#hide)") op.on("-p", "--pattern [PATTERN]", Regexp, "Regex pattern to filter") op.on("-t", "--type [TYPES]", Array, "Include only certain types. See Referral::TOKEN_TYPES.") op.on("--arity [ARITY]", "Number of arguments to a method call. (e.g. 2+)") op.on("--include-unnamed", TrueClass, "Include reference without identifiers (default: false)") op.on("-s", "--sort {file,scope}", "(default: file). See Referral::SORT_FUNCTIONS") op.on("--print-headers", TrueClass, "Print header names (default: false)") op.on("-c", "--columns [COL1,COL2,COL3]", Array, "(default: location,type,scope,name). See Referral::COLUMN_FUNCTIONS") op.on("-d", "--delimiter [DELIM]", "String separating columns (default: ' ')") do |v| "\"#{v}\"".undump end op.parse!(argv, into: options) end end
snake_case(options)
click to toggle source
# File lib/referral/parses_options.rb, line 40 def snake_case(options) options.transform_keys { |k| k.to_s.tr("-", "_").to_sym } end
version!(op)
click to toggle source
# File lib/referral/parses_options.rb, line 52 def version!(op) op.on("-v", "--version", "Prints the version") do puts VERSION exit 0 end end