class UltraCommandLine::Manager::Base

Public Class Methods

add_provider_for(command_or_option, provider) click to toggle source
# File lib/power_stencil/ultra_command_line/command_line_manager.rb, line 5
def add_provider_for(command_or_option, provider)
  providers = providers_for command_or_option
  providers << provider unless providers.include? provider
end
internal_provider_mapping() click to toggle source

private

# File lib/power_stencil/ultra_command_line/command_line_manager.rb, line 29
def internal_provider_mapping
  @internal_provider_mapping ||= {}
end
providers_for(command_or_option) click to toggle source
# File lib/power_stencil/ultra_command_line/command_line_manager.rb, line 10
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