Top Level Namespace
- Includes:
- GLI::App
Defined Under Namespace
Constant Summary collapse
- LOADERS =
Jetel::Loaders.loaders
- MODULES =
Jetel::Modules.modules
- MODULES_ACTIONS =
{ sources: { params: [ { desc: 'Format', default_value: nil, arg_name: 'format=format', flag: [:format] } ] }, download: nil, extract: nil, transform: nil, load: { params: [ { desc: 'Column type', default_value: nil, arg_name: 'column-name=column-type', flag: [:column_type] }, { desc: 'Num Lines to analyze', default_value: 1000, arg_name: 'num', flag: [:analyze_num_rows] } ] } }
- DOWNLOADERS =
Jetel::Downloaders.downloaders
Instance Method Summary collapse
-
#get_module_name(m) ⇒ String
Gets module name.
- #launch(argv = ARGV) ⇒ Object
- #register_module(m) ⇒ Object
-
#register_module_action(c, modul, name, spec, &block) ⇒ Object
Register module (CLI) action.
Instance Method Details
#get_module_name(m) ⇒ String
Gets module name
66 67 68 |
# File 'lib/jetel/cli/cmd/modules_cmd.rb', line 66 def get_module_name(m) m[:name] end |
#launch(argv = ARGV) ⇒ Object
30 31 32 |
# File 'lib/jetel/cli/app.rb', line 30 def launch(argv = ARGV) run(argv) end |
#register_module(m) ⇒ Object
96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 |
# 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 |, , args| module_instance.send(name, , , args) end end end end |
#register_module_action(c, modul, name, spec, &block) ⇒ Object
Register module (CLI) action
77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 |
# 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 |