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
data/gemfiles/3.2.gemfile DELETED
@@ -1,7 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "http://rubygems.org"
4
-
5
- gem "rails", "~> 3.2.15"
6
-
7
- gemspec :path => "../"
data/gemfiles/4.0.gemfile DELETED
@@ -1,7 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "http://rubygems.org"
4
-
5
- gem "rails", "~> 4.0.0"
6
-
7
- gemspec :path => "../"
data/gemfiles/4.1.gemfile DELETED
@@ -1,7 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "http://rubygems.org"
4
-
5
- gem "rails", "~> 4.1.0"
6
-
7
- gemspec :path => "../"
data/init.rb DELETED
@@ -1,4 +0,0 @@
1
- require File.join(File.dirname(__FILE__), "lib", "delayed_paperclip")
2
- require 'delayed_paperclip/railtie'
3
-
4
- DelayedPaperclip::Railtie.insert
@@ -1,8 +0,0 @@
1
- module DelayedPaperclip
2
- module Jobs
3
- autoload :ActiveJob, 'delayed_paperclip/jobs/active_job'
4
- autoload :DelayedJob, 'delayed_paperclip/jobs/delayed_job'
5
- autoload :Resque, 'delayed_paperclip/jobs/resque'
6
- autoload :Sidekiq, 'delayed_paperclip/jobs/sidekiq'
7
- end
8
- end
@@ -1,14 +0,0 @@
1
- module DelayedPaperclip
2
- module Jobs
3
- class ActiveJob < ActiveJob::Base
4
- def self.enqueue_delayed_paperclip(instance_klass, instance_id, attachment_name)
5
- queue_name = instance_klass.constantize.paperclip_definitions[attachment_name][:delayed][:queue]
6
- set(:queue => queue_name).perform_later(instance_klass, instance_id, attachment_name.to_s)
7
- end
8
-
9
- def perform(instance_klass, instance_id, attachment_name)
10
- DelayedPaperclip.process_job(instance_klass, instance_id, attachment_name.to_sym)
11
- end
12
- end
13
- end
14
- end
@@ -1,46 +0,0 @@
1
- require 'delayed_job'
2
- require 'active_support/deprecation'
3
-
4
- module DelayedPaperclip
5
- module Jobs
6
- class DelayedJob < Struct.new(:instance_klass, :instance_id, :attachment_name)
7
-
8
- # This is available in newer versions of DelayedJob. Using the newee Job api thus.
9
- if Gem.loaded_specs['delayed_job'].version >= Gem::Version.new("2.1.0")
10
-
11
- def self.enqueue_delayed_paperclip(instance_klass, instance_id, attachment_name)
12
- ActiveSupport::Deprecation.warn(<<-MESSAGE)
13
- Using DelayedJob adapter for delayed_paperclip is deprecated and will be removed in version 3.0.0.
14
- Please use ActiveJob adapter.
15
- MESSAGE
16
-
17
- ::Delayed::Job.enqueue(
18
- :payload_object => new(instance_klass, instance_id, attachment_name),
19
- :priority => instance_klass.constantize.paperclip_definitions[attachment_name][:delayed][:priority].to_i,
20
- :queue => instance_klass.constantize.paperclip_definitions[attachment_name][:delayed][:queue]
21
- )
22
- end
23
-
24
- else
25
-
26
- def self.enqueue_delayed_paperclip(instance_klass, instance_id, attachment_name)
27
- ActiveSupport::Deprecation.warn(<<-MESSAGE)
28
- Using DelayedJob adapter for delayed_paperclip is deprecated and will be removed in version 3.0.0.
29
- Please use ActiveJob adapter.
30
- MESSAGE
31
-
32
- ::Delayed::Job.enqueue(
33
- new(instance_klass, instance_id, attachment_name),
34
- instance_klass.constantize.paperclip_definitions[attachment_name][:delayed][:priority].to_i,
35
- instance_klass.constantize.paperclip_definitions[attachment_name][:delayed][:queue]
36
- )
37
- end
38
-
39
- end
40
-
41
- def perform
42
- DelayedPaperclip.process_job(instance_klass, instance_id, attachment_name)
43
- end
44
- end
45
- end
46
- end
@@ -1,22 +0,0 @@
1
- require 'resque'
2
- require 'active_support/deprecation'
3
-
4
- module DelayedPaperclip
5
- module Jobs
6
- class Resque
7
- def self.enqueue_delayed_paperclip(instance_klass, instance_id, attachment_name)
8
- @queue = instance_klass.constantize.paperclip_definitions[attachment_name][:delayed][:queue]
9
- ::Resque.enqueue(self, instance_klass, instance_id, attachment_name)
10
-
11
- ActiveSupport::Deprecation.warn(<<-MESSAGE)
12
- Using Resque adapter for delayed_paperclip is deprecated and will be removed in version 3.0.0.
13
- Please use ActiveJob adapter.
14
- MESSAGE
15
- end
16
-
17
- def self.perform(instance_klass, instance_id, attachment_name)
18
- DelayedPaperclip.process_job(instance_klass, instance_id, attachment_name)
19
- end
20
- end
21
- end
22
- end
@@ -1,30 +0,0 @@
1
- require 'sidekiq/worker'
2
- require 'active_support/deprecation'
3
-
4
- module DelayedPaperclip
5
- module Jobs
6
- class Sidekiq
7
- include ::Sidekiq::Worker
8
-
9
- def self.enqueue_delayed_paperclip(instance_klass, instance_id, attachment_name)
10
- ActiveSupport::Deprecation.warn(<<-MESSAGE)
11
- Using Sidekiq adapter for delayed_paperclip is deprecated and will be removed in version 3.0.0.
12
- Please use ActiveJob adapter.
13
- MESSAGE
14
-
15
- queue_name = instance_klass.constantize.paperclip_definitions[attachment_name][:delayed][:queue]
16
- # Sidekiq >= 4.1.0
17
- if respond_to?(:set)
18
- set(:queue => queue_name)
19
- else
20
- sidekiq_options :queue => queue_name
21
- end
22
- perform_async(instance_klass, instance_id, attachment_name)
23
- end
24
-
25
- def perform(instance_klass, instance_id, attachment_name)
26
- DelayedPaperclip.process_job(instance_klass, instance_id, attachment_name)
27
- end
28
- end
29
- end
30
- end
data/rails/init.rb DELETED
@@ -1,2 +0,0 @@
1
- require 'delayed_paperclip/railtie'
2
- DelayedPaperclip::Railtie.insert
@@ -1,26 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe "ActiveJob inline" do
4
- if defined? ActiveJob
5
- before :each do
6
- DelayedPaperclip.options[:background_job_class] = DelayedPaperclip::Jobs::ActiveJob
7
- ActiveJob::Base.queue_adapter = :inline
8
- ActiveJob::Base.logger = nil
9
- end
10
-
11
- let(:dummy) { Dummy.new(:image => File.open("#{ROOT}/fixtures/12k.png")) }
12
-
13
- describe "perform job" do
14
- before :each do
15
- DelayedPaperclip.options[:url_with_processing] = true
16
- reset_dummy
17
- end
18
-
19
- it "performs a job" do
20
- dummy.image = File.open("#{ROOT}/fixtures/12k.png")
21
- Paperclip::Attachment.any_instance.expects(:reprocess!)
22
- dummy.save!
23
- end
24
- end
25
- end
26
- end
@@ -1,28 +0,0 @@
1
- require 'spec_helper'
2
- require 'resque'
3
-
4
- if defined? ActiveJob
5
- describe "Active Job with Resque backend" do
6
- before :each do
7
- DelayedPaperclip.options[:background_job_class] = DelayedPaperclip::Jobs::ActiveJob
8
- ActiveJob::Base.logger = nil
9
- ActiveJob::Base.queue_adapter = :resque
10
- Resque.remove_queue(:paperclip)
11
- end
12
-
13
- let(:dummy) { Dummy.new(:image => File.open("#{ROOT}/fixtures/12k.png")) }
14
-
15
- describe "integration tests" do
16
- include_examples "base usage"
17
- end
18
-
19
- def process_jobs
20
- worker = Resque::Worker.new(:paperclip)
21
- worker.process
22
- end
23
-
24
- def jobs_count(queue = :paperclip)
25
- Resque.size(queue)
26
- end
27
- end
28
- end
@@ -1,34 +0,0 @@
1
- require 'spec_helper'
2
- require 'sidekiq/testing'
3
-
4
- describe "ActiveJob with Sidekiq backend" do
5
- if defined? ActiveJob
6
- before :each do
7
- DelayedPaperclip.options[:background_job_class] = DelayedPaperclip::Jobs::ActiveJob
8
- ActiveJob::Base.logger = nil
9
- ActiveJob::Base.queue_adapter = :sidekiq
10
- Sidekiq::Queues["paperclip"].clear
11
- end
12
-
13
- let(:dummy) { Dummy.new(:image => File.open("#{ROOT}/fixtures/12k.png")) }
14
-
15
- describe "integration tests" do
16
- include_examples "base usage"
17
- end
18
- end
19
-
20
- def process_jobs
21
- Sidekiq::Queues["paperclip"].each do |job|
22
- worker = job["class"].constantize.new
23
- args = job["args"]
24
- begin
25
- worker.perform(*args)
26
- rescue # Assume sidekiq handle exception properly
27
- end
28
- end
29
- end
30
-
31
- def jobs_count(queue = "paperclip")
32
- Sidekiq::Queues[queue].size
33
- end
34
- end
@@ -1,63 +0,0 @@
1
- require 'spec_helper'
2
- require 'delayed_job'
3
-
4
- Delayed::Worker.backend = :active_record
5
-
6
- describe "Delayed Job" do
7
- before :each do
8
- DelayedPaperclip.options[:background_job_class] = DelayedPaperclip::Jobs::DelayedJob
9
- build_delayed_jobs
10
- end
11
-
12
- let(:dummy) { Dummy.new(:image => File.open("#{ROOT}/fixtures/12k.png")) }
13
-
14
- describe "integration tests" do
15
- include_examples "base usage"
16
- end
17
-
18
- describe "perform job" do
19
- before :each do
20
- DelayedPaperclip.options[:url_with_processing] = true
21
- reset_dummy
22
- end
23
-
24
- it "performs a job" do
25
- dummy.image = File.open("#{ROOT}/fixtures/12k.png")
26
- Paperclip::Attachment.any_instance.expects(:reprocess!)
27
- dummy.save!
28
- Delayed::Job.last.payload_object.perform
29
- end
30
-
31
- it "is deprecated" do
32
- ActiveSupport::Deprecation.expects(:warn)
33
-
34
- dummy.image = File.open("#{ROOT}/fixtures/12k.png")
35
- Paperclip::Attachment.any_instance.expects(:reprocess!)
36
- dummy.save!
37
- Delayed::Job.last.payload_object.perform
38
- end
39
- end
40
-
41
- def process_jobs
42
- Delayed::Worker.new.work_off
43
- end
44
-
45
- def jobs_count(queue = nil)
46
- Delayed::Job.count
47
- end
48
-
49
- def build_delayed_jobs
50
- ActiveRecord::Base.connection.create_table :delayed_jobs, :force => true do |table|
51
- table.integer :priority, :default => 0 # Allows some jobs to jump to the front of the queue
52
- table.integer :attempts, :default => 0 # Provides for retries, but still fail eventually.
53
- table.text :handler # YAML-encoded string of the object that will do work
54
- table.string :last_error # reason for last failure (See Note below)
55
- table.datetime :run_at # When to run. Could be Time.now for immediately, or sometime in the future.
56
- table.datetime :locked_at # Set when a client is working on this object
57
- table.datetime :failed_at # Set when all retries have failed (actually, by default, the record is deleted instead)
58
- table.string :locked_by # Who is working on this object (if locked)
59
- table.string :queue
60
- table.timestamps null: true
61
- end
62
- end
63
- end
@@ -1,47 +0,0 @@
1
- require 'spec_helper'
2
- require 'resque'
3
-
4
- describe "Resque" do
5
- before :each do
6
- DelayedPaperclip.options[:background_job_class] = DelayedPaperclip::Jobs::Resque
7
- Resque.remove_queue(:paperclip)
8
- end
9
-
10
- let(:dummy) { Dummy.new(:image => File.open("#{ROOT}/fixtures/12k.png")) }
11
-
12
- describe "integration tests" do
13
- include_examples "base usage"
14
- end
15
-
16
- describe "perform job" do
17
- before :each do
18
- DelayedPaperclip.options[:url_with_processing] = true
19
- reset_dummy
20
- end
21
-
22
- it "performs a job" do
23
- dummy.image = File.open("#{ROOT}/fixtures/12k.png")
24
- Paperclip::Attachment.any_instance.expects(:reprocess!)
25
- dummy.save!
26
- DelayedPaperclip::Jobs::Resque.perform(dummy.class.name, dummy.id, :image)
27
- end
28
-
29
- it "is deprecated" do
30
- ActiveSupport::Deprecation.expects(:warn)
31
-
32
- dummy.image = File.open("#{ROOT}/fixtures/12k.png")
33
- Paperclip::Attachment.any_instance.expects(:reprocess!)
34
- dummy.save!
35
- DelayedPaperclip::Jobs::Resque.perform(dummy.class.name, dummy.id, :image)
36
- end
37
- end
38
-
39
- def process_jobs
40
- worker = Resque::Worker.new(:paperclip)
41
- worker.process
42
- end
43
-
44
- def jobs_count(queue = :paperclip)
45
- Resque.size(queue)
46
- end
47
- end
@@ -1,54 +0,0 @@
1
- require 'spec_helper'
2
- require 'sidekiq/testing'
3
-
4
- describe "Sidekiq" do
5
- before :each do
6
- Sidekiq.logger.level = Logger::ERROR
7
- DelayedPaperclip.options[:background_job_class] = DelayedPaperclip::Jobs::Sidekiq
8
- Sidekiq::Queues["paperclip"].clear
9
- end
10
-
11
- let(:dummy) { Dummy.new(:image => File.open("#{ROOT}/fixtures/12k.png")) }
12
-
13
- describe "integration tests" do
14
- include_examples "base usage"
15
- end
16
-
17
- describe "perform job" do
18
- before :each do
19
- DelayedPaperclip.options[:url_with_processing] = true
20
- reset_dummy
21
- end
22
-
23
- it "performs a job" do
24
- dummy.image = File.open("#{ROOT}/fixtures/12k.png")
25
- Paperclip::Attachment.any_instance.expects(:reprocess!)
26
- dummy.save!
27
- DelayedPaperclip::Jobs::Sidekiq.new.perform(dummy.class.name, dummy.id, :image)
28
- end
29
-
30
- it "is deprecated" do
31
- ActiveSupport::Deprecation.expects(:warn)
32
-
33
- dummy.image = File.open("#{ROOT}/fixtures/12k.png")
34
- Paperclip::Attachment.any_instance.expects(:reprocess!)
35
- dummy.save!
36
- DelayedPaperclip::Jobs::Sidekiq.new.perform(dummy.class.name, dummy.id, :image)
37
- end
38
- end
39
-
40
- def process_jobs
41
- Sidekiq::Queues["paperclip"].each do |job|
42
- worker = job["class"].constantize.new
43
- args = job["args"]
44
- begin
45
- worker.perform(*args)
46
- rescue # Assume sidekiq handle exception properly
47
- end
48
- end
49
- end
50
-
51
- def jobs_count(queue = "paperclip")
52
- Sidekiq::Queues[queue].size
53
- end
54
- end