delayed_paperclip 2.6.0.0 → 2.6.1

Sign up to get free protection for your applications and to get access to all the features.
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