class Climatic::ConfigLayers::CommandLineLayer

Constants

COMMAND_LINE_MANAGER_CLASS
CONFIG_ROOT_DIR
DEFAULT_COMMAND_LINE_DEFINITION_FILE

Public Class Methods

new(command_line_manager = self.class.default_command_line_manager) click to toggle source
# File lib/climatic/config_layers/command_line_layer.rb, line 14
def initialize(command_line_manager = self.class.default_command_line_manager)
  # raise UltraCommandLine::Error, 'Invalid command line manager !' unless command_line_manager.is_a? MANAGER_CLASS
  @command_line_manager = command_line_manager
end

Private Class Methods

build_command_line_manager(definition_file) click to toggle source
# File lib/climatic/config_layers/command_line_layer.rb, line 36
def self.build_command_line_manager(definition_file)
  mngr = COMMAND_LINE_MANAGER_CLASS.from_yaml_file definition_file
  mngr.definition_hash_to_commands
  mngr
end
default_command_line_manager() click to toggle source
# File lib/climatic/config_layers/command_line_layer.rb, line 21
def self.default_command_line_manager
  begin
    CONFIG_ROOT_DIR.each do |sub_dir|
      default_definition_file = File.join Climatic::ConfigLayers::ExecutableGemLayer.executable_gem_config_root, sub_dir, DEFAULT_COMMAND_LINE_DEFINITION_FILE
      if File.readable? default_definition_file
        return build_command_line_manager default_definition_file
      end
    end
  rescue => e
    Climatic.logger.debug "#{e.message}\nBacktrace:\n#{e.backtrace.join("\n\t")}"
  end
  UltraCommandLine::Manager::Base.new
end