class Icomoon::Cli::ParseArgv

Public Class Methods

call(argv, params) click to toggle source
# File lib/icomoon/cli/parse_argv.rb, line 4
def self.call(argv, params)
  result = {}

  params.each do |param|
    param.aliases.each do |aliaz|
      idx = argv.find_index { |arg| argv.include? aliaz }

      if idx
        value = param.needs_value ? argv.delete_at(idx + 1) : true
        argv.delete_at(idx)
        result[param.key] = value
      end
    end
  end

  if argv.count.nonzero?
    Icomoon::Cli.error "Unrecognized arguments: #{argv.join(', ')}"
  end

  result
end