class Totoro::Initializer
Constants
- DEFAULT_CONFIG
Public Instance Methods
execute()
click to toggle source
# File lib/totoro/initializer.rb, line 6 def execute config = Rails.application.config_for(:totoro).with_indifferent_access # set default queue class Totoro.const_set('Queue', default_queue_class(config)) # set custom queue class (config.symbolize_keys.keys - DEFAULT_CONFIG).each do |prefix| prefix_module(prefix, queue_class(prefix)) end end
Private Instance Methods
default_queue_class(config)
click to toggle source
# File lib/totoro/initializer.rb, line 18 def default_queue_class(config) if config.key?(:default) queue_class(:default) else Class.new(Totoro::BaseQueue) end end
prefix_module(prefix, custom_queue_class)
click to toggle source
# File lib/totoro/initializer.rb, line 34 def prefix_module(prefix, custom_queue_class) prefix_module = Totoro.const_set(prefix.to_s.camelize, Module.new) prefix_module.const_set('Queue', custom_queue_class) end
queue_class(prefix)
click to toggle source
# File lib/totoro/initializer.rb, line 26 def queue_class(prefix) custom_queue_class = Class.new(Totoro::BaseQueue) custom_queue_class.define_singleton_method('config') do @config ||= Totoro::Config.new(prefix) end custom_queue_class end