class Announce::Configuration

Attributes

options[R]

Public Class Methods

aj_queue_adapter_name() click to toggle source
# 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 = {}) 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 37
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 43
def config_file
  options[:config_file]
end
configure() click to toggle source
# 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