class Object

Constants

DOWNLOADERS
LOADERS
MODULES
MODULES_ACTIONS

Public Instance Methods

get_module_name(m) click to toggle source

Gets module name

@param m [Hash] Module info @return [String] Module name

# File lib/jetel/cli/cmd/modules_cmd.rb, line 66
def get_module_name(m)
  m[:name]
end
launch(argv = ARGV) click to toggle source
# File lib/jetel/cli/app.rb, line 30
def launch(argv = ARGV)
  run(argv)
end
register_module(m) click to toggle source
# File lib/jetel/cli/cmd/modules_cmd.rb, line 96
def register_module(m)
  module_name = get_module_name(m)

  desc "Module #{module_name}"
  command(m[:name], m[:class_name]) do |c|
    module_instance = m[:klass].new

    MODULES_ACTIONS.each do |name, spec|
      next unless module_instance.respond_to?(name)

      register_module_action(c, m, name, spec) do |global_options, options, args|
        module_instance.send(name, global_options, options, args)
      end
    end
  end
end
register_module_action(c, modul, name, spec, &block) click to toggle source

Register module (CLI) action

@param c [] Parent command @param m [Module] Module instance @param action_command [String] Nested command name @param action_desc [String] Nested command action description @return [Object] Return value

# File lib/jetel/cli/cmd/modules_cmd.rb, line 77
def register_module_action(c, modul, name, spec, &block)
  module_name = modul[:name]
  action_description = spec && spec[:description] || "#{name} #{module_name}"

  params = spec && spec[:params] || []


  c.desc(action_description)
  c.command(name) do |cmd|
    params.each do |param|
      param.each do |name, val|
        cmd.send name, val
      end
    end

    cmd.action(&block)
  end
end