delayed_paperclip 2.10.0 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (36) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +4 -4
  3. data/Appraisals +1 -13
  4. data/README.md +41 -95
  5. data/delayed_paperclip.gemspec +7 -8
  6. data/gemfiles/5.0.gemfile +1 -1
  7. data/lib/delayed_paperclip.rb +3 -13
  8. data/lib/delayed_paperclip/process_job.rb +14 -0
  9. data/lib/delayed_paperclip/railtie.rb +10 -15
  10. data/lib/delayed_paperclip/version.rb +1 -1
  11. data/spec/delayed_paperclip/attachment_spec.rb +0 -1
  12. data/spec/delayed_paperclip/class_methods_spec.rb +0 -1
  13. data/spec/delayed_paperclip/instance_methods_spec.rb +0 -1
  14. data/spec/delayed_paperclip/url_generator_spec.rb +0 -1
  15. data/spec/delayed_paperclip_spec.rb +15 -22
  16. data/spec/integration/base_delayed_paperclip_spec.rb +0 -5
  17. data/spec/integration/examples/base.rb +6 -4
  18. data/spec/integration/process_job_spec.rb +26 -0
  19. data/spec/spec_helper.rb +7 -11
  20. metadata +22 -84
  21. data/gemfiles/3.2.gemfile +0 -7
  22. data/gemfiles/4.0.gemfile +0 -7
  23. data/gemfiles/4.1.gemfile +0 -7
  24. data/init.rb +0 -4
  25. data/lib/delayed_paperclip/jobs.rb +0 -8
  26. data/lib/delayed_paperclip/jobs/active_job.rb +0 -14
  27. data/lib/delayed_paperclip/jobs/delayed_job.rb +0 -46
  28. data/lib/delayed_paperclip/jobs/resque.rb +0 -22
  29. data/lib/delayed_paperclip/jobs/sidekiq.rb +0 -30
  30. data/rails/init.rb +0 -2
  31. data/spec/integration/active_job_inline_spec.rb +0 -26
  32. data/spec/integration/active_job_resque_spec.rb +0 -28
  33. data/spec/integration/active_job_sidekiq_spec.rb +0 -34
  34. data/spec/integration/delayed_job_spec.rb +0 -63
  35. data/spec/integration/resque_spec.rb +0 -47
  36. data/spec/integration/sidekiq_spec.rb +0 -54
@@ -0,0 +1,14 @@
1
+ require "active_job"
2
+
3
+ module DelayedPaperclip
4
+ class ProcessJob < ActiveJob::Base
5
+ def self.enqueue_delayed_paperclip(instance_klass, instance_id, attachment_name)
6
+ queue_name = instance_klass.constantize.paperclip_definitions[attachment_name][:delayed][:queue]
7
+ set(:queue => queue_name).perform_later(instance_klass, instance_id, attachment_name.to_s)
8
+ end
9
+
10
+ def perform(instance_klass, instance_id, attachment_name)
11
+ DelayedPaperclip.process_job(instance_klass, instance_id, attachment_name.to_sym)
12
+ end
13
+ end
14
+ end
@@ -1,26 +1,21 @@
1
- require 'paperclip'
2
- require 'delayed_paperclip'
1
+ require "paperclip"
2
+ require "delayed_paperclip"
3
3
 
4
4
  module DelayedPaperclip
5
- if defined? Rails::Railtie
6
- require 'rails'
7
-
8
- # On initialzation, include DelayedPaperclip
9
- class Railtie < Rails::Railtie
10
- initializer 'delayed_paperclip.insert_into_active_record' do |app|
11
- ActiveSupport.on_load :active_record do
12
- DelayedPaperclip::Railtie.insert
13
- end
5
+ # On initialzation, include DelayedPaperclip
6
+ class Railtie < Rails::Railtie
7
+ initializer "delayed_paperclip.insert_into_active_record" do |app|
8
+ ActiveSupport.on_load :active_record do
9
+ DelayedPaperclip::Railtie.insert
10
+ end
14
11
 
15
- if app.config.respond_to?(:delayed_paperclip_defaults)
16
- DelayedPaperclip.options.merge!(app.config.delayed_paperclip_defaults)
17
- end
12
+ if app.config.respond_to?(:delayed_paperclip_defaults)
13
+ DelayedPaperclip.options.merge!(app.config.delayed_paperclip_defaults)
18
14
  end
19
15
  end
20
16
  end
21
17
 
22
18
  class Railtie
23
-
24
19
  # Glue includes DelayedPaperclip Class Methods and Instance Methods into ActiveRecord
25
20
  # Attachment and URL Generator extends Paperclip
26
21
  def self.insert
@@ -1,3 +1,3 @@
1
1
  module DelayedPaperclip
2
- VERSION = "2.10.0"
2
+ VERSION = "3.0.0"
3
3
  end
@@ -2,7 +2,6 @@ require 'spec_helper'
2
2
 
3
3
  describe DelayedPaperclip::Attachment do
4
4
  before :each do
5
- DelayedPaperclip.options[:background_job_class] = DelayedPaperclip::Jobs::Resque
6
5
  reset_dummy(dummy_options)
7
6
  end
8
7
 
@@ -2,7 +2,6 @@ require 'spec_helper'
2
2
 
3
3
  describe DelayedPaperclip::ClassMethods do
4
4
  before :each do
5
- DelayedPaperclip.options[:background_job_class] = DelayedPaperclip::Jobs::Resque
6
5
  reset_dummy(with_processed: false)
7
6
  end
8
7
 
@@ -2,7 +2,6 @@ require 'spec_helper'
2
2
 
3
3
  describe DelayedPaperclip::InstanceMethods do
4
4
  before :each do
5
- DelayedPaperclip.options[:background_job_class] = DelayedPaperclip::Jobs::Resque
6
5
  reset_dummy
7
6
  end
8
7
 
@@ -2,7 +2,6 @@ require 'spec_helper'
2
2
 
3
3
  describe DelayedPaperclip::UrlGenerator do
4
4
  before :each do
5
- DelayedPaperclip.options[:background_job_class] = DelayedPaperclip::Jobs::Resque
6
5
  reset_dummy(dummy_options)
7
6
  end
8
7
 
@@ -1,36 +1,29 @@
1
1
  require 'spec_helper'
2
- require 'resque'
3
2
 
4
3
  describe DelayedPaperclip do
5
4
  before :each do
6
5
  reset_dummy
7
6
  end
8
7
 
9
- context "with Resque adapter" do
10
- before :each do
11
- DelayedPaperclip.options[:background_job_class] = DelayedPaperclip::Jobs::Resque
12
- end
13
-
14
- describe ".options" do
15
- it ".options returns basic options" do
16
- DelayedPaperclip.options.should == {:background_job_class => DelayedPaperclip::Jobs::Resque,
17
- :url_with_processing => true,
18
- :processing_image_url => nil,
19
- :queue => "paperclip"}
20
- end
8
+ describe ".options" do
9
+ it ".options returns basic options" do
10
+ DelayedPaperclip.options.should == {:background_job_class => DelayedPaperclip::ProcessJob,
11
+ :url_with_processing => true,
12
+ :processing_image_url => nil,
13
+ :queue => "paperclip"}
21
14
  end
15
+ end
22
16
 
23
- describe ".processor" do
24
- it ".processor returns processor" do
25
- DelayedPaperclip.processor.should == DelayedPaperclip::Jobs::Resque
26
- end
17
+ describe ".processor" do
18
+ it ".processor returns processor" do
19
+ DelayedPaperclip.processor.should == DelayedPaperclip::ProcessJob
27
20
  end
21
+ end
28
22
 
29
- describe ".enqueue" do
30
- it "delegates to processor" do
31
- DelayedPaperclip::Jobs::Resque.expects(:enqueue_delayed_paperclip).with("Dummy", 1, :image)
32
- DelayedPaperclip.enqueue("Dummy", 1, :image)
33
- end
23
+ describe ".enqueue" do
24
+ it "delegates to processor" do
25
+ DelayedPaperclip::ProcessJob.expects(:enqueue_delayed_paperclip).with("Dummy", 1, :image)
26
+ DelayedPaperclip.enqueue("Dummy", 1, :image)
34
27
  end
35
28
  end
36
29
 
@@ -1,11 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe "Base Delayed Paperclip Integration" do
4
- before :each do
5
- DelayedPaperclip.options[:background_job_class] = DelayedPaperclip::Jobs::Resque
6
- Resque.remove_queue(:paperclip)
7
- end
8
-
9
4
  let(:dummy) { Dummy.create }
10
5
 
11
6
  before :each do
@@ -104,14 +104,16 @@ shared_examples "base usage" do
104
104
  end
105
105
 
106
106
  context "with error" do
107
- before :each do
107
+ it "stays true even if errored" do
108
108
  Paperclip::Attachment.any_instance.stubs(:reprocess!).raises(StandardError.new('oops'))
109
- end
110
109
 
111
- it "stays true even if errored" do
112
110
  dummy.save!
113
111
  dummy.image_processing?.should be_truthy
114
- process_jobs
112
+
113
+ expect do
114
+ process_jobs
115
+ end.to raise_error(StandardError)
116
+
115
117
  dummy.image_processing?.should be_truthy
116
118
  dummy.reload.image_processing?.should be_truthy
117
119
  end
@@ -0,0 +1,26 @@
1
+ require "spec_helper"
2
+
3
+ RSpec.describe "DelayedJob::ProcessJob" do
4
+ before :each do
5
+ ActiveJob::Base.queue_adapter = :test
6
+ ActiveJob::Base.logger = nil
7
+ end
8
+
9
+ let(:dummy) { Dummy.new(:image => File.open("#{ROOT}/fixtures/12k.png")) }
10
+
11
+ describe "integration tests" do
12
+ include_examples "base usage"
13
+ end
14
+
15
+ def process_jobs
16
+ ActiveJob::Base.queue_adapter.enqueued_jobs.each do |job|
17
+ job[:job].send(:perform_now, *job[:args])
18
+ end
19
+ end
20
+
21
+ def jobs_count(queue = "paperclip")
22
+ ActiveJob::Base.queue_adapter.enqueued_jobs.count do |job|
23
+ job[:queue] == queue
24
+ end
25
+ end
26
+ end
data/spec/spec_helper.rb CHANGED
@@ -1,14 +1,10 @@
1
1
  $LOAD_PATH.unshift(File.dirname(__FILE__))
2
2
  $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), "..", "lib"))
3
3
 
4
+ require 'rails'
4
5
  require 'active_record'
5
6
  require 'rspec'
6
- require 'fakeredis/rspec'
7
7
  require 'mocha/api'
8
- begin
9
- require 'active_job'
10
- rescue LoadError
11
- end
12
8
 
13
9
  begin
14
10
  require 'pry'
@@ -28,9 +24,6 @@ if ActiveRecord::Base.respond_to?(:raise_in_transactional_callbacks=) && Rails::
28
24
  ActiveRecord::Base.raise_in_transactional_callbacks = true
29
25
  end
30
26
 
31
- require "active_support/deprecation"
32
- ActiveSupport::Deprecation.silenced = true
33
-
34
27
  # Connect to sqlite
35
28
  ActiveRecord::Base.establish_connection(
36
29
  "adapter" => "sqlite3",
@@ -39,8 +32,11 @@ ActiveRecord::Base.establish_connection(
39
32
 
40
33
  # Path for filesystem writing
41
34
  ROOT = Pathname.new(File.expand_path("../.", __FILE__))
42
- ActiveRecord::Base.logger = Logger.new(ROOT.join("tmp/debug.log"))
43
- Paperclip.logger = ActiveRecord::Base.logger
35
+
36
+ logger = Logger.new(ROOT.join("tmp/debug.log"))
37
+ ActiveRecord::Base.logger = logger
38
+ ActiveJob::Base.logger = logger
39
+ Paperclip.logger = logger
44
40
 
45
41
  RSpec.configure do |config|
46
42
  config.mock_with :mocha
@@ -57,7 +53,7 @@ end
57
53
 
58
54
  def reset_global_default_options
59
55
  DelayedPaperclip.options.merge!({
60
- :background_job_class => DelayedPaperclip::Jobs::Resque,
56
+ :background_job_class => DelayedPaperclip::ProcessJob,
61
57
  :url_with_processing => true,
62
58
  :processing_image_url => nil
63
59
  })
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: delayed_paperclip
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.10.0
4
+ version: 3.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jesse Storimer
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2016-05-03 00:00:00.000000000 Z
14
+ date: 2016-08-01 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: paperclip
@@ -28,49 +28,21 @@ dependencies:
28
28
  - !ruby/object:Gem::Version
29
29
  version: '3.3'
30
30
  - !ruby/object:Gem::Dependency
31
- name: mocha
32
- requirement: !ruby/object:Gem::Requirement
33
- requirements:
34
- - - ">="
35
- - !ruby/object:Gem::Version
36
- version: '0'
37
- type: :development
38
- prerelease: false
39
- version_requirements: !ruby/object:Gem::Requirement
40
- requirements:
41
- - - ">="
42
- - !ruby/object:Gem::Version
43
- version: '0'
44
- - !ruby/object:Gem::Dependency
45
- name: rspec
46
- requirement: !ruby/object:Gem::Requirement
47
- requirements:
48
- - - "<"
49
- - !ruby/object:Gem::Version
50
- version: '3.0'
51
- type: :development
52
- prerelease: false
53
- version_requirements: !ruby/object:Gem::Requirement
54
- requirements:
55
- - - "<"
56
- - !ruby/object:Gem::Version
57
- version: '3.0'
58
- - !ruby/object:Gem::Dependency
59
- name: sqlite3
31
+ name: activejob
60
32
  requirement: !ruby/object:Gem::Requirement
61
33
  requirements:
62
34
  - - ">="
63
35
  - !ruby/object:Gem::Version
64
- version: '0'
65
- type: :development
36
+ version: '4.2'
37
+ type: :runtime
66
38
  prerelease: false
67
39
  version_requirements: !ruby/object:Gem::Requirement
68
40
  requirements:
69
41
  - - ">="
70
42
  - !ruby/object:Gem::Version
71
- version: '0'
43
+ version: '4.2'
72
44
  - !ruby/object:Gem::Dependency
73
- name: delayed_job
45
+ name: mocha
74
46
  requirement: !ruby/object:Gem::Requirement
75
47
  requirements:
76
48
  - - ">="
@@ -84,21 +56,21 @@ dependencies:
84
56
  - !ruby/object:Gem::Version
85
57
  version: '0'
86
58
  - !ruby/object:Gem::Dependency
87
- name: delayed_job_active_record
59
+ name: rspec
88
60
  requirement: !ruby/object:Gem::Requirement
89
61
  requirements:
90
- - - ">="
62
+ - - "<"
91
63
  - !ruby/object:Gem::Version
92
- version: '0'
64
+ version: '3.0'
93
65
  type: :development
94
66
  prerelease: false
95
67
  version_requirements: !ruby/object:Gem::Requirement
96
68
  requirements:
97
- - - ">="
69
+ - - "<"
98
70
  - !ruby/object:Gem::Version
99
- version: '0'
71
+ version: '3.0'
100
72
  - !ruby/object:Gem::Dependency
101
- name: resque
73
+ name: sqlite3
102
74
  requirement: !ruby/object:Gem::Requirement
103
75
  requirements:
104
76
  - - ">="
@@ -111,20 +83,6 @@ dependencies:
111
83
  - - ">="
112
84
  - !ruby/object:Gem::Version
113
85
  version: '0'
114
- - !ruby/object:Gem::Dependency
115
- name: sidekiq
116
- requirement: !ruby/object:Gem::Requirement
117
- requirements:
118
- - - ">="
119
- - !ruby/object:Gem::Version
120
- version: '4.0'
121
- type: :development
122
- prerelease: false
123
- version_requirements: !ruby/object:Gem::Requirement
124
- requirements:
125
- - - ">="
126
- - !ruby/object:Gem::Version
127
- version: '4.0'
128
86
  - !ruby/object:Gem::Dependency
129
87
  name: appraisal
130
88
  requirement: !ruby/object:Gem::Requirement
@@ -168,7 +126,7 @@ dependencies:
168
126
  - !ruby/object:Gem::Version
169
127
  version: '0'
170
128
  - !ruby/object:Gem::Dependency
171
- name: railties
129
+ name: activerecord
172
130
  requirement: !ruby/object:Gem::Requirement
173
131
  requirements:
174
132
  - - ">="
@@ -182,7 +140,7 @@ dependencies:
182
140
  - !ruby/object:Gem::Version
183
141
  version: '0'
184
142
  - !ruby/object:Gem::Dependency
185
- name: fakeredis
143
+ name: railties
186
144
  requirement: !ruby/object:Gem::Requirement
187
145
  requirements:
188
146
  - - ">="
@@ -195,8 +153,7 @@ dependencies:
195
153
  - - ">="
196
154
  - !ruby/object:Gem::Version
197
155
  version: '0'
198
- description: Process your Paperclip attachments in the background with DelayedJob,
199
- Resque, Sidekiq or your own processor.
156
+ description: Process your Paperclip attachments in the background with ActiveJob
200
157
  email:
201
158
  - james@jamesrgifford.com
202
159
  - scott@artsicle.com
@@ -214,23 +171,14 @@ files:
214
171
  - README.md
215
172
  - Rakefile
216
173
  - delayed_paperclip.gemspec
217
- - gemfiles/3.2.gemfile
218
- - gemfiles/4.0.gemfile
219
- - gemfiles/4.1.gemfile
220
174
  - gemfiles/4.2.gemfile
221
175
  - gemfiles/5.0.gemfile
222
- - init.rb
223
176
  - lib/delayed_paperclip.rb
224
177
  - lib/delayed_paperclip/attachment.rb
225
- - lib/delayed_paperclip/jobs.rb
226
- - lib/delayed_paperclip/jobs/active_job.rb
227
- - lib/delayed_paperclip/jobs/delayed_job.rb
228
- - lib/delayed_paperclip/jobs/resque.rb
229
- - lib/delayed_paperclip/jobs/sidekiq.rb
178
+ - lib/delayed_paperclip/process_job.rb
230
179
  - lib/delayed_paperclip/railtie.rb
231
180
  - lib/delayed_paperclip/url_generator.rb
232
181
  - lib/delayed_paperclip/version.rb
233
- - rails/init.rb
234
182
  - spec/delayed_paperclip/attachment_spec.rb
235
183
  - spec/delayed_paperclip/class_methods_spec.rb
236
184
  - spec/delayed_paperclip/instance_methods_spec.rb
@@ -238,17 +186,12 @@ files:
238
186
  - spec/delayed_paperclip_spec.rb
239
187
  - spec/fixtures/12k.png
240
188
  - spec/fixtures/missing.png
241
- - spec/integration/active_job_inline_spec.rb
242
- - spec/integration/active_job_resque_spec.rb
243
- - spec/integration/active_job_sidekiq_spec.rb
244
189
  - spec/integration/base_delayed_paperclip_spec.rb
245
- - spec/integration/delayed_job_spec.rb
246
190
  - spec/integration/examples/base.rb
247
- - spec/integration/resque_spec.rb
248
- - spec/integration/sidekiq_spec.rb
191
+ - spec/integration/process_job_spec.rb
249
192
  - spec/spec_helper.rb
250
193
  - spec/tmp/.keep
251
- homepage: http://github.com/jrgifford/delayed_paperclip
194
+ homepage: https://github.com/jrgifford/delayed_paperclip
252
195
  licenses: []
253
196
  metadata: {}
254
197
  post_install_message:
@@ -259,7 +202,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
259
202
  requirements:
260
203
  - - ">="
261
204
  - !ruby/object:Gem::Version
262
- version: '0'
205
+ version: 2.0.0
263
206
  required_rubygems_version: !ruby/object:Gem::Requirement
264
207
  requirements:
265
208
  - - ">="
@@ -270,7 +213,7 @@ rubyforge_project:
270
213
  rubygems_version: 2.4.5
271
214
  signing_key:
272
215
  specification_version: 4
273
- summary: Process your Paperclip attachments in the background.
216
+ summary: Process your Paperclip attachments in the background
274
217
  test_files:
275
218
  - spec/delayed_paperclip/attachment_spec.rb
276
219
  - spec/delayed_paperclip/class_methods_spec.rb
@@ -279,13 +222,8 @@ test_files:
279
222
  - spec/delayed_paperclip_spec.rb
280
223
  - spec/fixtures/12k.png
281
224
  - spec/fixtures/missing.png
282
- - spec/integration/active_job_inline_spec.rb
283
- - spec/integration/active_job_resque_spec.rb
284
- - spec/integration/active_job_sidekiq_spec.rb
285
225
  - spec/integration/base_delayed_paperclip_spec.rb
286
- - spec/integration/delayed_job_spec.rb
287
226
  - spec/integration/examples/base.rb
288
- - spec/integration/resque_spec.rb
289
- - spec/integration/sidekiq_spec.rb
227
+ - spec/integration/process_job_spec.rb
290
228
  - spec/spec_helper.rb
291
229
  - spec/tmp/.keep