class Icomoon::Cli::Exec::Base

Attributes

args[R]

Public Class Methods

add_param(needs_value, *args) click to toggle source
# File lib/icomoon/cli/exec/base.rb, line 40
def add_param(needs_value, *args)
  key = args.shift
  params << Icomoon::Cli::ExecParam.new(key, args, needs_value) if args.count.nonzero?

  method_name = needs_value ? key : "#{key}?"
  define_param_reader(key, method_name)
end
define_param_reader(key, method_name = key) click to toggle source
# File lib/icomoon/cli/exec/base.rb, line 48
def define_param_reader(key, method_name = key)
  class_eval("def #{method_name}; args[#{key.to_sym.inspect}] rescue nil; end")
end
display_help() click to toggle source
# File lib/icomoon/cli/exec/base.rb, line 24
def display_help
  puts @command_help_text
end
flag(*args) click to toggle source
# File lib/icomoon/cli/exec/base.rb, line 36
def flag(*args)
  add_param(false, *args)
end
help(text) click to toggle source
# File lib/icomoon/cli/exec/base.rb, line 28
def help(text)
  @command_help_text = text
end
new(args) click to toggle source
# File lib/icomoon/cli/exec/base.rb, line 11
def initialize(args)
  @args = args
end
param(*args) click to toggle source
# File lib/icomoon/cli/exec/base.rb, line 32
def param(*args)
  add_param(true, *args)
end
params() click to toggle source
# File lib/icomoon/cli/exec/base.rb, line 7
def self.params
  @@params
end
run(argv) click to toggle source
# File lib/icomoon/cli/exec/base.rb, line 16
def run(argv)
  if argv.count == 1 && argv[0] == 'help'
    return display_help
  end

  new(Icomoon::Cli::ParseArgv.call(argv, params)).run
end