module Excom::Plugins::Args::ClassMethods

Public Instance Methods

arg_methods() click to toggle source
# File lib/excom/plugins/args.rb, line 80
def arg_methods
  const_get(:ArgMethods)
end
args(*argz) click to toggle source
# File lib/excom/plugins/args.rb, line 84
def args(*argz)
  args_list.concat(argz)

  argz.each_with_index do |name, i|
    arg_methods.send(:define_method, name){ @args[i] }

    arg_methods.send(:define_method, "#{name}?"){ !!@args[i] }
  end
end
args_list() click to toggle source
# File lib/excom/plugins/args.rb, line 104
def args_list
  @args_list ||= []
end
inherited(service_class) click to toggle source
Calls superclass method
# File lib/excom/plugins/args.rb, line 72
def inherited(service_class)
  service_class.const_set(:ArgMethods, Module.new)
  service_class.send(:include, service_class::ArgMethods)
  service_class.args_list.replace args_list.dup
  service_class.opts_list.replace opts_list.dup
  super
end
opts(*optz) click to toggle source
# File lib/excom/plugins/args.rb, line 94
def opts(*optz)
  opts_list.concat(optz)

  optz.each do |name|
    arg_methods.send(:define_method, name){ @opts[name] }

    arg_methods.send(:define_method, "#{name}?"){ !!@opts[name] }
  end
end
opts_list() click to toggle source
# File lib/excom/plugins/args.rb, line 108
def opts_list
  @opts_list ||= []
end