Sha256: 7d72fc16aab7498722529ac0acf61a7d4750d7e8ca87561c6ba44cb642be34b0
Contents?: true
Size: 1.63 KB
Versions: 1
Compression:
Stored size: 1.63 KB
Contents
class UltraCommandLine::Manager::Base class << self def add_provider_for(command_or_option, provider) providers = providers_for command_or_option providers << provider unless providers.include? provider end def providers_for(command_or_option) default_command_data = {options: {}, providers: []} case command_or_option when UltraCommandLine::Commands::SubCommand sc = command_or_option internal_provider_mapping[sc.name] ||= default_command_data internal_provider_mapping[sc.name][:providers] when UltraCommandLine::Commands::OptionDefinition sco = command_or_option internal_provider_mapping[sco.sub_command.name] ||= default_command_data internal_provider_mapping[sco.sub_command.name][:options][sco.name] ||= [] internal_provider_mapping[sco.sub_command.name][:options][sco.name] else raise PowerStencil::Error, "Invalid command or option" end end def internal_provider_mapping @internal_provider_mapping ||= {} end end # def contribute_to_definition(hash, layer_name: :unknown_layer) # super # end def processor processor_candidates = processors_hash.fetch(command(cmd_line_args).name, []) .select do |processor| processor.check_params command.cmd_line_args end raise UltraCommandLine::Error, 'No processor found for this command line' if processor_candidates.empty? return processor_candidates.first if processor_candidates.size == 1 raise UltraCommandLine::Error, 'Too many possible processors' unless processor_candidates.size == 1 processor_candidates.first end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
power_stencil-0.10.0 | lib/power_stencil/ultra_command_line/command_line_manager.rb |