carrierwave_backgrounder 0.1.5 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/CHANGELOG.md CHANGED
@@ -1,3 +1,11 @@
1
+ ## 0.2.0
2
+
3
+ ### enhancements
4
+ * [Breaking Change] Require configure block to be set in an initializer removing autodetect backend.
5
+
6
+ ### bug fixes
7
+ * [#108] Remove the need to set an order in the Gemfile when using sidekiq [matthewsmart].
8
+
1
9
  ## 0.1.5
2
10
 
3
11
  ### bug fixes
@@ -12,21 +12,7 @@ module Support
12
12
  def backend(queue_name=nil, args={})
13
13
  return @backend if @backend
14
14
  @queue_options = args
15
- @backend = queue_name and return if queue_name
16
- determine_backend
17
- end
18
-
19
- def available_backends
20
- @available_backends ||= begin
21
- backends = []
22
- backends << :girl_friday if defined? ::GirlFriday
23
- backends << :delayed_job if defined? ::Delayed::Job
24
- backends << :resque if defined? ::Resque
25
- backends << :qu if defined? ::Qu
26
- backends << :sidekiq if defined? ::Sidekiq
27
- backends << :qc if defined? ::QC
28
- backends
29
- end
15
+ @backend = queue_name
30
16
  end
31
17
 
32
18
  def enqueue_for_backend(worker, class_name, subject_id, mounted_as)
@@ -35,18 +21,6 @@ module Support
35
21
 
36
22
  private
37
23
 
38
- def determine_backend
39
- @backend = if available_backends.empty?
40
- warn 'WARNING: No available queue backends found for CarrierWave::Backgrounder. Using the :immediate.'
41
- :immediate
42
- elsif available_backends.size > 1
43
- raise ::CarrierWave::Backgrounder::TooManyBackendsAvailableError,
44
- "You have too many backends available: #{available_backends.inspect}. Please specify which one to use in configuration block"
45
- else
46
- available_backends.first
47
- end
48
- end
49
-
50
24
  def enqueue_delayed_job(worker, *args)
51
25
  ::Delayed::Job.enqueue worker.new(*args), :queue => queue_options[:queue]
52
26
  end
@@ -1,5 +1,5 @@
1
1
  module CarrierWave
2
2
  module Backgrounder
3
- VERSION = "0.1.5"
3
+ VERSION = "0.2.0"
4
4
  end
5
5
  end
@@ -3,8 +3,6 @@ module CarrierWave
3
3
  module Workers
4
4
 
5
5
  class ProcessAsset < Struct.new(:klass, :id, :column)
6
- include ::Sidekiq::Worker if defined?(::Sidekiq)
7
-
8
6
  def self.perform(*args)
9
7
  new(*args).perform
10
8
  end
@@ -3,7 +3,6 @@ module CarrierWave
3
3
  module Workers
4
4
 
5
5
  class StoreAsset < Struct.new(:klass, :id, :column)
6
- include ::Sidekiq::Worker if defined?(::Sidekiq)
7
6
  attr_reader :cache_path, :tmp_directory
8
7
 
9
8
  def self.perform(*args)
@@ -12,6 +12,16 @@ module CarrierWave
12
12
 
13
13
  def self.configure
14
14
  yield self
15
+ if @backend == :sidekiq
16
+ ::CarrierWave::Workers::ProcessAsset.class_eval do
17
+ require 'sidekiq'
18
+ include ::Sidekiq::Worker
19
+ end
20
+ ::CarrierWave::Workers::StoreAsset.class_eval do
21
+ require 'sidekiq'
22
+ include ::Sidekiq::Worker
23
+ end
24
+ end
15
25
  end
16
26
 
17
27
  end
@@ -9,32 +9,6 @@ describe Support::Backends do
9
9
  mock_module.send :include, Support::Backends
10
10
  end
11
11
 
12
- describe 'enumerating available backends' do
13
- it 'detects GirlFriday' do
14
- expect(mock_module.available_backends).to include(:girl_friday)
15
- end
16
-
17
- it 'detects Delayed::Job' do
18
- expect(mock_module.available_backends).to include(:delayed_job)
19
- end
20
-
21
- it 'detects Resque' do
22
- expect(mock_module.available_backends).to include(:resque)
23
- end
24
-
25
- it 'detects Qu' do
26
- expect(mock_module.available_backends).to include(:qu)
27
- end
28
-
29
- it 'detects Sidekiq' do
30
- expect(mock_module.available_backends).to include(:sidekiq)
31
- end
32
-
33
- it 'detects QC' do
34
- expect(mock_module.available_backends).to include(:qc)
35
- end
36
- end
37
-
38
12
  describe 'setting backend' do
39
13
  it 'using #backend=' do
40
14
  mock_module.backend = :delayed_job
@@ -52,36 +26,6 @@ describe Support::Backends do
52
26
  end
53
27
  end
54
28
 
55
- describe 'auto detect backends' do
56
- before do
57
- mock_module.instance_variable_set('@backend', nil)
58
- end
59
-
60
- it 'sets the backend to immediate if none available' do
61
- suppress_warnings do
62
- mock_module.stubs(:available_backends).returns([])
63
- expect(mock_module.backend).to eql(:immediate)
64
- end
65
- end
66
-
67
- it 'sets a backend automatically if only one is available' do
68
- mock_module.stubs(:available_backends).returns([ :qu ])
69
- expect(mock_module.backend).to eql(:qu)
70
- end
71
-
72
- it 'raises an error if more than one backend is available' do
73
- mock_module.stubs(:available_backends).returns([:qu, :resque])
74
- expect {
75
- mock_module.backend
76
- }.to raise_error(CarrierWave::Backgrounder::TooManyBackendsAvailableError)
77
- end
78
-
79
- it 'does not clobber a manually set backend' do
80
- mock_module.backend = :not_a_backend
81
- expect(mock_module.backend).to eql(:not_a_backend)
82
- end
83
- end
84
-
85
29
  describe '#enqueue_for_backend' do
86
30
  let!(:worker) { MockWorker.new('FakeClass', 1, :image) }
87
31
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: carrierwave_backgrounder
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
4
+ version: 0.2.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -127,7 +127,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
127
127
  version: '0'
128
128
  segments:
129
129
  - 0
130
- hash: 3846294144545899718
130
+ hash: 517086272646554403
131
131
  required_rubygems_version: !ruby/object:Gem::Requirement
132
132
  none: false
133
133
  requirements:
@@ -136,7 +136,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
136
136
  version: '0'
137
137
  segments:
138
138
  - 0
139
- hash: 3846294144545899718
139
+ hash: 517086272646554403
140
140
  requirements: []
141
141
  rubyforge_project:
142
142
  rubygems_version: 1.8.24