diff options
author | David Heinemeier Hansson <david@loudthinking.com> | 2014-05-19 10:55:57 +0200 |
---|---|---|
committer | David Heinemeier Hansson <david@loudthinking.com> | 2014-05-19 10:55:57 +0200 |
commit | c334bea36228319b3f624443f303447e48e29f3d (patch) | |
tree | 9a26db042b62db04851a711b466d3058d0667244 /lib/active_job/queue_adapter.rb | |
parent | fd1e61adfc40275fe23fdcbc7796f7a72bf12fa3 (diff) | |
download | rails-c334bea36228319b3f624443f303447e48e29f3d.tar.gz rails-c334bea36228319b3f624443f303447e48e29f3d.tar.bz2 rails-c334bea36228319b3f624443f303447e48e29f3d.zip |
Extract QueueAdapter module for setting and looking up adapters
Diffstat (limited to 'lib/active_job/queue_adapter.rb')
-rw-r--r-- | lib/active_job/queue_adapter.rb | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/lib/active_job/queue_adapter.rb b/lib/active_job/queue_adapter.rb new file mode 100644 index 0000000000..a1987a7dc3 --- /dev/null +++ b/lib/active_job/queue_adapter.rb @@ -0,0 +1,24 @@ +require 'active_job/queue_adapters/inline_adapter' +require 'active_support/core_ext/string/inflections' + +module ActiveJob + module QueueAdapter + mattr_reader(:queue_adapter) { ActiveJob::QueueAdapters::InlineAdapter } + + def queue_adapter=(name_or_adapter) + if name_or_adapter.is_a?(Symbol) || name_or_adapter.is_a?(String) + adapter = load_adapter(name_or_adapter) + else + adapter = name_or_adapter + end + + @@queue_adapter = adapter + end + + private + def load_adapter(name) + require "active_job/queue_adapters/#{name}_adapter" + "ActiveJob::QueueAdapters::#{name.to_s.camelize}Adapter".constantize + end + end +end
\ No newline at end of file |