Class: Announce::Configuration

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

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options) ⇒ Configuration

Returns a new instance of Configuration.



37
38
39
40
41
# File 'lib/announce/configuration.rb', line 37

def initialize(options)
  @options = options
  base = defined?(Rails) ? Rails.root : Dir.pwd
  options[:config_file] ||= File.join(base, "config", "announce.yml")
end

Instance Attribute Details

#optionsObject (readonly)

Returns the value of attribute options.



6
7
8
# File 'lib/announce/configuration.rb', line 6

def options
  @options
end

Class Method Details

.aj_queue_adapter_nameObject



32
33
34
35
# File 'lib/announce/configuration.rb', line 32

def self.aj_queue_adapter_name
  ajqa = ::ActiveJob::Base.queue_adapter.name
  ajqa.match(/ActiveJob::QueueAdapters::(.*)Adapter/)[1].underscore
end

.configure(options = {}) ⇒ Object



8
9
10
11
# File 'lib/announce/configuration.rb', line 8

def self.configure(options = {})
  opts = new(options).configure
  Announce.options.merge!(opts)
end

.default_optionsObject



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/announce/configuration.rb', line 13

def self.default_options
  {}.tap do |defaults|
    if defined?(ActiveJob)
      defaults[:queue_name_prefix] = ::ActiveJob::Base.queue_name_prefix
      defaults[:queue_name_delimiter] =
        ::ActiveJob::Base.queue_name_delimiter
      defaults[:adapter] = aj_queue_adapter_name
    else
      defaults[:queue_name_prefix] =
        ENV["RAILS_ENV"] || ENV["APP_ENV"] || "development"
      defaults[:queue_name_delimiter] = "_"
      defaults[:adapter] = :inline
    end

    defaults[:app_name] = "app"
    defaults[:namespace] = "announce"
  end
end

Instance Method Details

#config_fileObject



43
44
45
# File 'lib/announce/configuration.rb', line 43

def config_file
  options[:config_file]
end

#configureObject



47
48
49
50
51
52
53
54
55
56
57
# File 'lib/announce/configuration.rb', line 47

def configure
  defaults = self.class.default_options
  if File.exist?(config_file)
    defaults.merge(
      YAML.safe_load(ERB.new(IO.read(config_file)).result).symbolize_keys
    )
  else
    Announce.logger.warn "PubSub file #{config_file} does not exist"
    defaults
  end
end