delayed_paperclip 2.10.0 → 3.0.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.
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