class Bkmrq::Cli

Cli

Public Class Methods

new(args) click to toggle source
# File lib/bkmrq/cli.rb, line 12
def initialize(args)
  @opts = {}
  option_parser.parse!(default_args(sanitize_args(args)), into: @opts)
  init_app if opts_valid?
end

Private Instance Methods

default_args(args) click to toggle source
# File lib/bkmrq/cli.rb, line 44
def default_args(args)
  args.empty? ? ['-H'] : args
end
init_app() click to toggle source
# File lib/bkmrq/cli.rb, line 20
def init_app
  Bkmrq::App.new(
    **@opts.slice(*Bkmrq::Manual.options_specs.map(&:last))
  ).export!
end
option_parser() click to toggle source
# File lib/bkmrq/cli.rb, line 26
def option_parser
  @option_parser ||= OptionParser.new do |args|
    # Option Parsing
    Bkmrq::Manual.options_specs.map do |option_spec|
      option_key = option_spec.pop
      args.on(*option_spec) { |input| @opts[option_key] = input }
    end

    # Manual Printing
    args.banner = Bkmrq::Manual::BANNER
    args.on_tail('-H', '--help', 'Bkmrq Manual') { puts args }
  end
end
opts_valid?() click to toggle source
# File lib/bkmrq/cli.rb, line 48
def opts_valid?
  !@opts.key?(:help)
end
sanitize_args(args) click to toggle source
# File lib/bkmrq/cli.rb, line 40
def sanitize_args(args)
  args.reject(&:empty?).map(&:scrub).map(&:split).flatten
end