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