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
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