Class: RabbitJobs::Configuration

Inherits:
Object
  • Object
show all
Defined in:
lib/rabbit_jobs/configuration.rb

Constant Summary collapse

DEFAULT_EXCHANGE_PARAMS =
{
  auto_delete: false,
  durable: true
}
DEFAULT_QUEUE_PARAMS =
{
  auto_delete: false,
  exclusive: false,
  durable: true,
  ack: true
}
DEFAULT_MESSAGE_PARAMS =
{
  persistent: true,
  mandatory: true,
  immediate: false
}

Instance Method Summary collapse

Constructor Details

#initializeConfiguration

Returns a new instance of Configuration.



58
59
60
61
62
63
64
# File 'lib/rabbit_jobs/configuration.rb', line 58

def initialize
  @data = {
    error_log: true,
    server: 'amqp://localhost',
    queues: {}
  }
end

Instance Method Details

#[](name) ⇒ Object



66
67
68
# File 'lib/rabbit_jobs/configuration.rb', line 66

def [](name)
  @data[name]
end

#convert_yaml_config(yaml) ⇒ Object



116
117
118
119
120
121
122
123
124
125
126
# File 'lib/rabbit_jobs/configuration.rb', line 116

def convert_yaml_config(yaml)
  yaml = parse_environment(yaml)

  @data = {queues: {}}
  %w(server default_queue).each do |m|
    self.send(m, yaml[m])
  end
  yaml['queues'].each do |name, params|
    queue name, params.symbolize_keys || {}
  end
end

#default_queue(value = nil) ⇒ Object



70
71
72
73
74
75
76
# File 'lib/rabbit_jobs/configuration.rb', line 70

def default_queue(value = nil)
  if value
    @default_queue = value.to_sym
  else
    @default_queue || RJ.config[:queues].keys.first || :jobs
  end
end

#disable_error_logObject



82
83
84
# File 'lib/rabbit_jobs/configuration.rb', line 82

def disable_error_log
  @data[:error_log] = false
end

#error_logObject



78
79
80
# File 'lib/rabbit_jobs/configuration.rb', line 78

def error_log
  @data[:error_log]
end

#load_file(filename) ⇒ Object



108
109
110
# File 'lib/rabbit_jobs/configuration.rb', line 108

def load_file(filename)
  load_yaml(File.read(filename))
end

#load_yaml(text) ⇒ Object



112
113
114
# File 'lib/rabbit_jobs/configuration.rb', line 112

def load_yaml(text)
  convert_yaml_config(YAML.load(text))
end

#queue(name, params = {}) ⇒ Object

Raises:

  • (ArgumentError)


91
92
93
94
95
96
97
98
99
100
101
102
# File 'lib/rabbit_jobs/configuration.rb', line 91

def queue(name, params = {})
  raise ArgumentError.new("name is #{name.inspect}") unless name && name.is_a?(String) && name != ""
  raise ArgumentError.new("params is #{params.inspect}") unless params && params.is_a?(Hash)

  name = name.downcase.to_sym

  if @data[:queues][name]
    @data[:queues][name].merge!(params)
  else
    @data[:queues][name] = DEFAULT_QUEUE_PARAMS.merge(params)
  end
end

#routing_keysObject



104
105
106
# File 'lib/rabbit_jobs/configuration.rb', line 104

def routing_keys
  @data[:queues].keys
end

#server(value = nil) ⇒ Object



86
87
88
89
# File 'lib/rabbit_jobs/configuration.rb', line 86

def server(value = nil)
  @data[:server] = value.to_s.strip if value && value.length > 0
  @data[:server]
end

#to_hashObject



54
55
56
# File 'lib/rabbit_jobs/configuration.rb', line 54

def to_hash
  @data.dup
end