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.
- checksums.yaml +7 -0
- data/.gitignore +7 -0
- data/.rbenv-version +1 -0
- data/.ruby-gemset +1 -0
- data/.ruby-version +1 -0
- data/.travis.yml +27 -0
- data/Appraisals +15 -0
- data/CONTRIBUTING +19 -0
- data/ChangeLog +4 -0
- data/Gemfile +11 -0
- data/Rakefile +7 -2
- data/delayed_paperclip.gemspec +26 -0
- data/gemfiles/paperclip3_5.gemfile +11 -0
- data/gemfiles/paperclip3_5.gemfile.lock +160 -0
- data/gemfiles/rails3.gemfile +10 -0
- data/gemfiles/rails3.gemfile.lock +151 -0
- data/gemfiles/rails3_1.gemfile +10 -0
- data/gemfiles/rails3_1.gemfile.lock +161 -0
- data/gemfiles/rails3_2.gemfile +10 -0
- data/gemfiles/rails3_2.gemfile.lock +159 -0
- data/lib/delayed_paperclip/attachment.rb +9 -7
- data/lib/delayed_paperclip/jobs/delayed_job.rb +2 -2
- data/lib/delayed_paperclip/jobs.rb +2 -2
- data/lib/delayed_paperclip/railtie.rb +5 -0
- data/lib/delayed_paperclip/url_generator.rb +15 -2
- data/lib/delayed_paperclip/version.rb +3 -0
- data/lib/delayed_paperclip.rb +28 -17
- data/spec/delayed_paperclip/attachment_spec.rb +153 -0
- data/spec/delayed_paperclip/class_methods_spec.rb +85 -0
- data/spec/delayed_paperclip/instance_methods_spec.rb +80 -0
- data/spec/delayed_paperclip/url_generator_spec.rb +171 -0
- data/spec/delayed_paperclip_spec.rb +56 -0
- data/spec/fixtures/12k.png +0 -0
- data/spec/integration/delayed_job_spec.rb +55 -0
- data/spec/integration/examples/base.rb +316 -0
- data/spec/integration/resque_spec.rb +40 -0
- data/spec/integration/sidekiq_spec.rb +48 -0
- data/spec/spec_helper.rb +86 -0
- data/test/base_delayed_paperclip_test.rb +3 -3
- data/test/test_helper.rb +14 -7
- metadata +84 -51
data/spec/spec_helper.rb
ADDED
@@ -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.
|
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-
|
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:
|
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:
|
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:
|
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:
|
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:
|
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
|
-
-
|
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
|
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/
|
147
|
-
-
|
148
|
-
-
|
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/
|
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:
|
190
|
+
rubygems_version: 2.0.3
|
176
191
|
signing_key:
|
177
|
-
specification_version:
|
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
|