class Announce::Configuration

Attributes

options[R]

Public Class Methods

aj_queue_adapter_name() click to toggle source
# File lib/announce/configuration.rb, line 30
def self.aj_queue_adapter_name
  ajqa = ::ActiveJob::Base.queue_adapter.name
  ajqa.match(/ActiveJob::QueueAdapters::(.*)Adapter/)[1].underscore
end
configure(options = {}) click to toggle source
# File lib/announce/configuration.rb, line 8
def self.configure(options = {})
  opts = new(options).configure
  Announce.options.merge!(opts)
end
default_options() click to toggle source
# 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
new(options) click to toggle source
# File lib/announce/configuration.rb, line 35
def initialize(options)
  @options = options
  base = defined?(Rails) ? Rails.root : Dir.pwd
  options[:config_file] ||= File.join(base, 'config', 'announce.yml')
end

Public Instance Methods

config_file() click to toggle source
# File lib/announce/configuration.rb, line 41
def config_file
  options[:config_file]
end
configure() click to toggle source
# File lib/announce/configuration.rb, line 45
def configure
  defaults = self.class.default_options
  if File.exist?(config_file)
    defaults.merge(YAML.load(ERB.new(IO.read(config_file)).result).symbolize_keys)
  else
    Announce.logger.warn "PubSub file #{config_file} does not exist"
    defaults
  end
end