module Staticme::Arguments

Constants

ARGS

Public Instance Methods

parse_input(argv) click to toggle source
# File lib/staticme/arguments.rb, line 29
def parse_input(argv)
  params = Hash.new

  ARGS.each_pair do |param_name, param_attrs|
    param_shorten_name = param_attrs[:shorten]
    default = param_attrs[:default]
    sanitizer = param_attrs[:sanitizer]
    param_value = argv["--#{param_name}"] ||
                  ( param_shorten_name.nil? ? nil : argv["-#{param_shorten_name}"] ) ||
                  ( default.is_a?(Proc) ? default.call : default )
    ( param_value = sanitizer.call( param_value ) ) if sanitizer.is_a? Proc

    if !param_value.nil?
      params[param_name] = param_value
    end
  end

  params
end