class BigFiles::OptionParser

Parse options passed to bigfiles command

Public Class Methods

new(source_finder_option_parser:, option_parser_class: ::OptionParser, io_class: Kernel, exiter: Kernel) click to toggle source
# File lib/bigfiles/option_parser.rb, line 8
def initialize(source_finder_option_parser:, option_parser_class: ::OptionParser,
               io_class: Kernel,
               exiter: Kernel)
  @option_parser_class = option_parser_class
  @io_class = io_class
  @exiter = exiter
  @source_finder_option_parser = source_finder_option_parser
end

Public Instance Methods

add_help_option(opts, options) click to toggle source
# File lib/bigfiles/option_parser.rb, line 35
def add_help_option(opts, options)
  opts.on('-h', '--help', 'This message') { |_| options[:help] = true }
end
add_num_files_option(opts, options) click to toggle source
# File lib/bigfiles/option_parser.rb, line 26
def add_num_files_option(opts, options)
  opts.on('-n', '--num-files number-here',
          Integer,
          "Top number of files to show--" \
          "default #{Config::NUM_FILES_DEFAULT}") do |n|
    options[:num_files] = n
  end
end
parse_options(args) click to toggle source
# File lib/bigfiles/option_parser.rb, line 39
def parse_options(args)
  options = nil
  @option_parser_class.new do |opts|
    options = setup_options(opts)
    @option_parser = opts
  end.parse!(args)
  options
end
setup_options(opts) click to toggle source
# File lib/bigfiles/option_parser.rb, line 17
def setup_options(opts)
  options = {}
  opts.banner = 'Usage: bigfiles [options]'
  @source_finder_option_parser.add_options(opts, options)
  add_help_option(opts, options)
  add_num_files_option(opts, options)
  options
end
usage() click to toggle source
# File lib/bigfiles/option_parser.rb, line 48
def usage
  @io_class.puts @option_parser
  @exiter.exit(1)
end