delayed_paperclip 2.6.0.0 → 2.6.1

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 (41) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +7 -0
  3. data/.rbenv-version +1 -0
  4. data/.ruby-gemset +1 -0
  5. data/.ruby-version +1 -0
  6. data/.travis.yml +27 -0
  7. data/Appraisals +15 -0
  8. data/CONTRIBUTING +19 -0
  9. data/ChangeLog +4 -0
  10. data/Gemfile +11 -0
  11. data/Rakefile +7 -2
  12. data/delayed_paperclip.gemspec +26 -0
  13. data/gemfiles/paperclip3_5.gemfile +11 -0
  14. data/gemfiles/paperclip3_5.gemfile.lock +160 -0
  15. data/gemfiles/rails3.gemfile +10 -0
  16. data/gemfiles/rails3.gemfile.lock +151 -0
  17. data/gemfiles/rails3_1.gemfile +10 -0
  18. data/gemfiles/rails3_1.gemfile.lock +161 -0
  19. data/gemfiles/rails3_2.gemfile +10 -0
  20. data/gemfiles/rails3_2.gemfile.lock +159 -0
  21. data/lib/delayed_paperclip/attachment.rb +9 -7
  22. data/lib/delayed_paperclip/jobs/delayed_job.rb +2 -2
  23. data/lib/delayed_paperclip/jobs.rb +2 -2
  24. data/lib/delayed_paperclip/railtie.rb +5 -0
  25. data/lib/delayed_paperclip/url_generator.rb +15 -2
  26. data/lib/delayed_paperclip/version.rb +3 -0
  27. data/lib/delayed_paperclip.rb +28 -17
  28. data/spec/delayed_paperclip/attachment_spec.rb +153 -0
  29. data/spec/delayed_paperclip/class_methods_spec.rb +85 -0
  30. data/spec/delayed_paperclip/instance_methods_spec.rb +80 -0
  31. data/spec/delayed_paperclip/url_generator_spec.rb +171 -0
  32. data/spec/delayed_paperclip_spec.rb +56 -0
  33. data/spec/fixtures/12k.png +0 -0
  34. data/spec/integration/delayed_job_spec.rb +55 -0
  35. data/spec/integration/examples/base.rb +316 -0
  36. data/spec/integration/resque_spec.rb +40 -0
  37. data/spec/integration/sidekiq_spec.rb +48 -0
  38. data/spec/spec_helper.rb +86 -0
  39. data/test/base_delayed_paperclip_test.rb +3 -3
  40. data/test/test_helper.rb +14 -7
  41. metadata +84 -51
@@ -0,0 +1,86 @@
1
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
2
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), "..", "lib"))
3
+
4
+ require 'rails'
5
+ require 'active_record'
6
+ require 'rspec'
7
+ require 'mocha/api'
8
+
9
+ require 'paperclip/railtie'
10
+ Paperclip::Railtie.insert
11
+
12
+ require 'delayed_paperclip/railtie'
13
+ DelayedPaperclip::Railtie.insert
14
+
15
+ # Connect to sqlite
16
+ ActiveRecord::Base.establish_connection(
17
+ "adapter" => "sqlite3",
18
+ "database" => ":memory:"
19
+ )
20
+
21
+ # Path for filesystem writing
22
+ ROOT = Pathname(File.expand_path(File.join(File.dirname(__FILE__), '..')))
23
+
24
+ FIXTURES_DIR = File.join(File.dirname(__FILE__), "fixtures")
25
+ ActiveRecord::Base.logger = Logger.new(File.dirname(__FILE__) + "/debug.log")
26
+ Paperclip.logger = ActiveRecord::Base.logger
27
+
28
+ RSpec.configure do |config|
29
+ config.mock_with :mocha
30
+
31
+ config.filter_run focus: true
32
+ config.run_all_when_everything_filtered = true
33
+ end
34
+
35
+ Dir["./spec/integration/examples/*.rb"].sort.each {|f| require f}
36
+
37
+ # Reset table and class with image_processing column or not
38
+ def reset_dummy(options = {})
39
+ options[:with_processed] = true unless options.key?(:with_processed)
40
+ build_dummy_table(options[:with_processed])
41
+ reset_class("Dummy", options)
42
+ end
43
+
44
+ # Dummy Table for images
45
+ # with or without image_processing column
46
+ def build_dummy_table(with_processed)
47
+ ActiveRecord::Base.connection.create_table :dummies, :force => true do |t|
48
+ t.string :name
49
+ t.string :image_file_name
50
+ t.string :image_content_type
51
+ t.integer :image_file_size
52
+ t.datetime :image_updated_at
53
+ t.boolean(:image_processing, :default => false) if with_processed
54
+ end
55
+ end
56
+
57
+ def reset_class(class_name, options)
58
+ # setup class and include paperclip
59
+ options[:paperclip] = {} if options[:paperclip].nil?
60
+ ActiveRecord::Base.send(:include, Paperclip::Glue)
61
+ Object.send(:remove_const, class_name) rescue nil
62
+
63
+ # Set class as a constant
64
+ klass = Object.const_set(class_name, Class.new(ActiveRecord::Base))
65
+
66
+ # Setup class with paperclip and delayed paperclip
67
+ klass.class_eval do
68
+ include Paperclip::Glue
69
+
70
+ has_attached_file :image, options[:paperclip]
71
+ options.delete(:paperclip)
72
+
73
+ process_in_background :image, options if options[:with_processed]
74
+
75
+ after_update :reprocess if options[:with_after_update_callback]
76
+
77
+ def reprocess
78
+ image.reprocess!
79
+ end
80
+
81
+ end
82
+
83
+ Rails.stubs(:root).returns(Pathname.new(ROOT).join('spec', 'tmp'))
84
+ klass.reset_column_information
85
+ klass
86
+ end
@@ -156,7 +156,7 @@ module BaseDelayedPaperclipTest
156
156
  def test_after_callback_is_functional
157
157
  Dummy.send(:define_method, :done_processing) { puts 'done' }
158
158
  Dummy.after_image_post_process :done_processing
159
- Dummy.any_instance.expects(:done_processing)
159
+ Dummy.any_instance.expects(:done_processing).once
160
160
  dummy = Dummy.new(:image => File.open("#{RAILS_ROOT}/test/fixtures/12k.png"))
161
161
  dummy.save!
162
162
  process_jobs
@@ -164,11 +164,10 @@ module BaseDelayedPaperclipTest
164
164
 
165
165
  def test_delayed_paperclip_functioning_with_after_update_callback
166
166
  reset_class "Dummy", :with_processed => true, :with_after_update_callback => true
167
- Dummy.any_instance.expects(:reprocess)
167
+ Dummy.any_instance.expects(:reprocess).once
168
168
  dummy = Dummy.new(:image => File.open("#{RAILS_ROOT}/test/fixtures/12k.png"))
169
169
  dummy.save!
170
170
  process_jobs
171
- dummy.name = "foobar123"
172
171
  end
173
172
 
174
173
  def test_delayed_paperclip_functioning_with_only_process_option
@@ -200,6 +199,7 @@ module BaseDelayedPaperclipTest
200
199
  reset_class "Dummy", :with_processed => true, :paperclip => { :styles => {:thumbnail => ['12x12', :jpg]} }
201
200
  dummy = Dummy.new(:image => File.open("#{RAILS_ROOT}/test/fixtures/12k.png"))
202
201
  dummy.save!
202
+
203
203
  existing_jobs_count = jobs_count
204
204
  dummy.update_attribute(:image_processing, false)
205
205
  dummy.image.reprocess_without_delay!(:thumbnail)
data/test/test_helper.rb CHANGED
@@ -1,11 +1,10 @@
1
1
  require 'rubygems'
2
2
  require 'test/unit'
3
- require 'mocha'
3
+ require 'mocha/setup'
4
4
  require 'active_record'
5
5
  require 'logger'
6
6
  require 'sqlite3'
7
7
  require 'paperclip/railtie'
8
- require 'debugger'
9
8
 
10
9
  Paperclip::Railtie.insert
11
10
 
@@ -30,17 +29,16 @@ ActiveRecord::Base.logger = Logger.new(File.dirname(__FILE__) + "/debug.log")
30
29
  ActiveRecord::Base.establish_connection(config['test'])
31
30
  Paperclip.logger = ActiveRecord::Base.logger
32
31
 
33
- # def reset_dummy(options = {})
34
- # reset_dummy(options)
35
- # Dummy.new(:image => File.open("#{RAILS_ROOT}/test/fixtures/12k.png"))
36
- # end
37
32
 
33
+ # Reset table and class with image_processing column or not
38
34
  def reset_dummy(options = {})
39
35
  options[:with_processed] = true unless options.key?(:with_processed)
40
36
  build_dummy_table(options[:with_processed])
41
37
  reset_class("Dummy", options)
42
38
  end
43
39
 
40
+ # Dummy Table for images
41
+ # with or without image_processing column
44
42
  def build_dummy_table(with_processed)
45
43
  ActiveRecord::Base.connection.create_table :dummies, :force => true do |t|
46
44
  t.string :name
@@ -52,17 +50,25 @@ def build_dummy_table(with_processed)
52
50
  end
53
51
  end
54
52
 
53
+
55
54
  def reset_class(class_name, options)
55
+ # setup class and include paperclip
56
56
  options[:paperclip] = {} if options[:paperclip].nil?
57
57
  ActiveRecord::Base.send(:include, Paperclip::Glue)
58
58
  Object.send(:remove_const, class_name) rescue nil
59
+
60
+ # Set class as a constant
59
61
  klass = Object.const_set(class_name, Class.new(ActiveRecord::Base))
62
+
63
+ # Setup class with paperclip and delayed paperclip
60
64
  klass.class_eval do
61
65
  include Paperclip::Glue
62
- has_attached_file :image, options[:paperclip]
63
66
 
67
+ has_attached_file :image, options[:paperclip]
64
68
  options.delete(:paperclip)
69
+
65
70
  process_in_background :image, options if options[:with_processed]
71
+
66
72
  after_update :reprocess if options[:with_after_update_callback]
67
73
 
68
74
  def reprocess
@@ -70,6 +76,7 @@ def reset_class(class_name, options)
70
76
  end
71
77
 
72
78
  end
79
+
73
80
  klass.reset_column_information
74
81
  klass
75
82
  end
metadata CHANGED
@@ -1,128 +1,114 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: delayed_paperclip
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.6.0.0
5
- prerelease:
4
+ version: 2.6.1
6
5
  platform: ruby
7
6
  authors:
8
7
  - Jesse Storimer
9
8
  - Bert Goethals
10
9
  - James Gifford
10
+ - Scott Carleton
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2013-07-02 00:00:00.000000000 Z
14
+ date: 2013-07-31 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: paperclip
18
18
  requirement: !ruby/object:Gem::Requirement
19
- none: false
20
19
  requirements:
21
- - - ! '>='
20
+ - - '>='
22
21
  - !ruby/object:Gem::Version
23
22
  version: 3.3.0
24
23
  type: :runtime
25
24
  prerelease: false
26
25
  version_requirements: !ruby/object:Gem::Requirement
27
- none: false
28
26
  requirements:
29
- - - ! '>='
27
+ - - '>='
30
28
  - !ruby/object:Gem::Version
31
29
  version: 3.3.0
32
30
  - !ruby/object:Gem::Dependency
33
31
  name: mocha
34
32
  requirement: !ruby/object:Gem::Requirement
35
- none: false
36
33
  requirements:
37
- - - ! '>='
34
+ - - '>='
38
35
  - !ruby/object:Gem::Version
39
36
  version: '0'
40
37
  type: :development
41
38
  prerelease: false
42
39
  version_requirements: !ruby/object:Gem::Requirement
43
- none: false
44
40
  requirements:
45
- - - ! '>='
41
+ - - '>='
46
42
  - !ruby/object:Gem::Version
47
43
  version: '0'
48
44
  - !ruby/object:Gem::Dependency
49
- name: sqlite3
45
+ name: rspec
50
46
  requirement: !ruby/object:Gem::Requirement
51
- none: false
52
47
  requirements:
53
- - - ! '>='
48
+ - - '>='
54
49
  - !ruby/object:Gem::Version
55
50
  version: '0'
56
51
  type: :development
57
52
  prerelease: false
58
53
  version_requirements: !ruby/object:Gem::Requirement
59
- none: false
60
54
  requirements:
61
- - - ! '>='
55
+ - - '>='
62
56
  - !ruby/object:Gem::Version
63
57
  version: '0'
64
58
  - !ruby/object:Gem::Dependency
65
- name: delayed_job
59
+ name: sqlite3
66
60
  requirement: !ruby/object:Gem::Requirement
67
- none: false
68
61
  requirements:
69
- - - ! '>='
62
+ - - '>='
70
63
  - !ruby/object:Gem::Version
71
64
  version: '0'
72
65
  type: :development
73
66
  prerelease: false
74
67
  version_requirements: !ruby/object:Gem::Requirement
75
- none: false
76
68
  requirements:
77
- - - ! '>='
69
+ - - '>='
78
70
  - !ruby/object:Gem::Version
79
71
  version: '0'
80
72
  - !ruby/object:Gem::Dependency
81
- name: resque
73
+ name: delayed_job
82
74
  requirement: !ruby/object:Gem::Requirement
83
- none: false
84
75
  requirements:
85
- - - ! '>='
76
+ - - '>='
86
77
  - !ruby/object:Gem::Version
87
78
  version: '0'
88
79
  type: :development
89
80
  prerelease: false
90
81
  version_requirements: !ruby/object:Gem::Requirement
91
- none: false
92
82
  requirements:
93
- - - ! '>='
83
+ - - '>='
94
84
  - !ruby/object:Gem::Version
95
85
  version: '0'
96
86
  - !ruby/object:Gem::Dependency
97
- name: sidekiq
87
+ name: resque
98
88
  requirement: !ruby/object:Gem::Requirement
99
- none: false
100
89
  requirements:
101
- - - ! '>='
90
+ - - '>='
102
91
  - !ruby/object:Gem::Version
103
92
  version: '0'
104
93
  type: :development
105
94
  prerelease: false
106
95
  version_requirements: !ruby/object:Gem::Requirement
107
- none: false
108
96
  requirements:
109
- - - ! '>='
97
+ - - '>='
110
98
  - !ruby/object:Gem::Version
111
99
  version: '0'
112
100
  - !ruby/object:Gem::Dependency
113
- name: debugger
101
+ name: sidekiq
114
102
  requirement: !ruby/object:Gem::Requirement
115
- none: false
116
103
  requirements:
117
- - - ! '>='
104
+ - - '>='
118
105
  - !ruby/object:Gem::Version
119
106
  version: '0'
120
107
  type: :development
121
108
  prerelease: false
122
109
  version_requirements: !ruby/object:Gem::Requirement
123
- none: false
124
110
  requirements:
125
- - - ! '>='
111
+ - - '>='
126
112
  - !ruby/object:Gem::Version
127
113
  version: '0'
128
114
  description: Process your Paperclip attachments in the background with delayed_job,
@@ -132,48 +118,95 @@ executables: []
132
118
  extensions: []
133
119
  extra_rdoc_files: []
134
120
  files:
135
- - README.textile
121
+ - .gitignore
122
+ - .rbenv-version
123
+ - .ruby-gemset
124
+ - .ruby-version
125
+ - .travis.yml
126
+ - Appraisals
127
+ - CONTRIBUTING
128
+ - ChangeLog
129
+ - Gemfile
136
130
  - LICENSE
131
+ - README.textile
137
132
  - Rakefile
133
+ - delayed_paperclip.gemspec
134
+ - gemfiles/paperclip3_5.gemfile
135
+ - gemfiles/paperclip3_5.gemfile.lock
136
+ - gemfiles/rails3.gemfile
137
+ - gemfiles/rails3.gemfile.lock
138
+ - gemfiles/rails3_1.gemfile
139
+ - gemfiles/rails3_1.gemfile.lock
140
+ - gemfiles/rails3_2.gemfile
141
+ - gemfiles/rails3_2.gemfile.lock
138
142
  - init.rb
139
143
  - lib/delayed_paperclip.rb
140
- - lib/delayed_paperclip/url_generator.rb
141
144
  - lib/delayed_paperclip/attachment.rb
142
- - lib/delayed_paperclip/jobs/resque.rb
145
+ - lib/delayed_paperclip/jobs.rb
143
146
  - lib/delayed_paperclip/jobs/delayed_job.rb
147
+ - lib/delayed_paperclip/jobs/resque.rb
144
148
  - lib/delayed_paperclip/jobs/sidekiq.rb
145
149
  - lib/delayed_paperclip/railtie.rb
146
- - lib/delayed_paperclip/jobs.rb
147
- - test/resque_paperclip_test.rb
148
- - test/delayed_paperclip_test.rb
150
+ - lib/delayed_paperclip/url_generator.rb
151
+ - lib/delayed_paperclip/version.rb
152
+ - rails/init.rb
153
+ - spec/delayed_paperclip/attachment_spec.rb
154
+ - spec/delayed_paperclip/class_methods_spec.rb
155
+ - spec/delayed_paperclip/instance_methods_spec.rb
156
+ - spec/delayed_paperclip/url_generator_spec.rb
157
+ - spec/delayed_paperclip_spec.rb
158
+ - spec/fixtures/12k.png
159
+ - spec/integration/delayed_job_spec.rb
160
+ - spec/integration/examples/base.rb
161
+ - spec/integration/resque_spec.rb
162
+ - spec/integration/sidekiq_spec.rb
163
+ - spec/spec_helper.rb
164
+ - test/base_delayed_paperclip_test.rb
149
165
  - test/database.yml
166
+ - test/delayed_paperclip_test.rb
150
167
  - test/fixtures/12k.png
151
- - test/base_delayed_paperclip_test.rb
168
+ - test/resque_paperclip_test.rb
152
169
  - test/sidekiq_paperclip.rb
153
170
  - test/test_helper.rb
154
- - rails/init.rb
155
171
  homepage: http://github.com/jrgifford/delayed_paperclip
156
172
  licenses: []
173
+ metadata: {}
157
174
  post_install_message:
158
175
  rdoc_options: []
159
176
  require_paths:
160
177
  - lib
161
178
  required_ruby_version: !ruby/object:Gem::Requirement
162
- none: false
163
179
  requirements:
164
- - - ! '>='
180
+ - - '>='
165
181
  - !ruby/object:Gem::Version
166
182
  version: '0'
167
183
  required_rubygems_version: !ruby/object:Gem::Requirement
168
- none: false
169
184
  requirements:
170
- - - ! '>='
185
+ - - '>='
171
186
  - !ruby/object:Gem::Version
172
187
  version: '0'
173
188
  requirements: []
174
189
  rubyforge_project:
175
- rubygems_version: 1.8.23
190
+ rubygems_version: 2.0.3
176
191
  signing_key:
177
- specification_version: 3
192
+ specification_version: 4
178
193
  summary: Process your Paperclip attachments in the background.
179
- test_files: []
194
+ test_files:
195
+ - spec/delayed_paperclip/attachment_spec.rb
196
+ - spec/delayed_paperclip/class_methods_spec.rb
197
+ - spec/delayed_paperclip/instance_methods_spec.rb
198
+ - spec/delayed_paperclip/url_generator_spec.rb
199
+ - spec/delayed_paperclip_spec.rb
200
+ - spec/fixtures/12k.png
201
+ - spec/integration/delayed_job_spec.rb
202
+ - spec/integration/examples/base.rb
203
+ - spec/integration/resque_spec.rb
204
+ - spec/integration/sidekiq_spec.rb
205
+ - spec/spec_helper.rb
206
+ - test/base_delayed_paperclip_test.rb
207
+ - test/database.yml
208
+ - test/delayed_paperclip_test.rb
209
+ - test/fixtures/12k.png
210
+ - test/resque_paperclip_test.rb
211
+ - test/sidekiq_paperclip.rb
212
+ - test/test_helper.rb