Class: RubyRabbitmqJanus::Tools::Config

Inherits:
Object
  • Object
show all
Includes:
ConfigGem, ConfigJanus, ConfigQueues, ConfigRabbit, Singleton
Defined in:
lib/rrj/tools/gem/config.rb

Overview

# Manage configuration file Singleton object for reading configuration file

Constant Summary collapse

RRJ_HOME =

Define HOME RRJ gem

File.realpath(File.join(File.dirname(__FILE__),
'..', '..', '..'))
CONF_DEFAULT =

Define a default name to file configuration

'config/default.yml'
CONF_CUSTOM =

Define a default override file configuration

'config/ruby-rabbitmq-janus.yml'
PATH_DEFAULT =

Define a default path to file configuration to gem

File.join(RRJ_HOME, CONF_DEFAULT)

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from ConfigJanus

#plugin_at, #time_to_live

Methods included from ConfigQueues

#queue_admin_from, #queue_admin_to, #queue_from, #queue_janus_instance, #queue_to

Methods included from ConfigRabbit

#admin_pass, #log_level_rabbit, #server_settings

Methods included from ConfigGem

#cluster, #environment, #listener_admin_path, #listener_path, #log_level, #log_option, #log_type, #object_relational_mapping, #program_name, #public_queue_process, #rspec_response

Constructor Details

#initializeConfig

Initialize configuration file default or customize if exist



49
50
51
52
53
# File 'lib/rrj/tools/gem/config.rb', line 49

def initialize
  @options = @configuration = nil
  loading_configuration_customize
  @options ||= loading_configuration_default
end

Instance Attribute Details

#configurationString (readonly)

Returns Path to configuration file used.

Returns:

  • (String)

    Path to configuration file used



26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
# File 'lib/rrj/tools/gem/config.rb', line 26

class Config
  include Singleton
  include RubyRabbitmqJanus::Tools::ConfigGem
  include RubyRabbitmqJanus::Tools::ConfigRabbit
  include RubyRabbitmqJanus::Tools::ConfigQueues
  include RubyRabbitmqJanus::Tools::ConfigJanus

  attr_reader :options, :configuration

  # Define HOME RRJ gem
  RRJ_HOME = File.realpath(File.join(File.dirname(__FILE__),
                                     '..', '..', '..'))

  # Define a default name to file configuration
  CONF_DEFAULT = 'config/default.yml'

  # Define a default override file configuration
  CONF_CUSTOM = 'config/ruby-rabbitmq-janus.yml'

  # Define a default path to file configuration to gem
  PATH_DEFAULT = File.join(RRJ_HOME, CONF_DEFAULT)

  # Initialize configuration file default or customize if exist
  def initialize
    @options = @configuration = nil
    loading_configuration_customize
    @options ||= loading_configuration_default
  end

  private

  def load_configuration
    ::YAML.safe_load(ERB.new(File.read(@configuration)).result)
  end

  def loading_configuration_customize
    @configuration = File.join(Dir.pwd, CONF_CUSTOM)
    @options = load_configuration if File.exist?(@configuration)
  end

  def loading_configuration_default
    @configuration = PATH_DEFAULT
    load_configuration
  end
end

#optionsHash (readonly)

Return all options to configured in config file.

Returns:

  • (Hash)

    Return all options to configured in config file.



26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
# File 'lib/rrj/tools/gem/config.rb', line 26

class Config
  include Singleton
  include RubyRabbitmqJanus::Tools::ConfigGem
  include RubyRabbitmqJanus::Tools::ConfigRabbit
  include RubyRabbitmqJanus::Tools::ConfigQueues
  include RubyRabbitmqJanus::Tools::ConfigJanus

  attr_reader :options, :configuration

  # Define HOME RRJ gem
  RRJ_HOME = File.realpath(File.join(File.dirname(__FILE__),
                                     '..', '..', '..'))

  # Define a default name to file configuration
  CONF_DEFAULT = 'config/default.yml'

  # Define a default override file configuration
  CONF_CUSTOM = 'config/ruby-rabbitmq-janus.yml'

  # Define a default path to file configuration to gem
  PATH_DEFAULT = File.join(RRJ_HOME, CONF_DEFAULT)

  # Initialize configuration file default or customize if exist
  def initialize
    @options = @configuration = nil
    loading_configuration_customize
    @options ||= loading_configuration_default
  end

  private

  def load_configuration
    ::YAML.safe_load(ERB.new(File.read(@configuration)).result)
  end

  def loading_configuration_customize
    @configuration = File.join(Dir.pwd, CONF_CUSTOM)
    @options = load_configuration if File.exist?(@configuration)
  end

  def loading_configuration_default
    @configuration = PATH_DEFAULT
    load_configuration
  end
end