delayed_paperclip 2.4.5.1 → 2.4.5.2
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.
- data/README.textile +2 -2
- data/lib/delayed_paperclip.rb +1 -0
- data/lib/delayed_paperclip/attachment.rb +7 -20
- data/lib/delayed_paperclip/railtie.rb +1 -0
- data/lib/delayed_paperclip/url_generator.rb +22 -0
- data/test/base_delayed_paperclip_test.rb +10 -0
- data/test/test_helper.rb +6 -0
- metadata +47 -20
data/README.textile
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
h1. Delayed::Paperclip !https://secure.travis-ci.org/
|
1
|
+
h1. Delayed::Paperclip !https://secure.travis-ci.org/jrgifford/delayed_paperclip.png!
|
2
2
|
|
3
3
|
Delayed_paperclip lets you process your "Paperclip":http://github.com/thoughtbot/paperclip attachments in a background task with "delayed_job":http://github.com/tobi/delayed_job or "Resque":http://github.com/defunkt/resque.
|
4
4
|
|
@@ -76,7 +76,7 @@ To have the missing image url be outputted by paperclip while the image is being
|
|
76
76
|
@user = User.new(:avatar => File.new(...))
|
77
77
|
@user.save
|
78
78
|
@user.avatar.url #=> "/images/original/missing.png"
|
79
|
-
Delayed::
|
79
|
+
Delayed::Worker.new.work_off
|
80
80
|
|
81
81
|
@user.reload
|
82
82
|
@user.avatar.url #=> "/system/images/3/original/IMG_2772.JPG?1267562148"
|
data/lib/delayed_paperclip.rb
CHANGED
@@ -7,7 +7,6 @@ module DelayedPaperclip
|
|
7
7
|
base.alias_method_chain :post_processing, :delay
|
8
8
|
base.alias_method_chain :post_processing=, :delay
|
9
9
|
base.alias_method_chain :save, :prepare_enqueueing
|
10
|
-
base.alias_method_chain :most_appropriate_url, :processed
|
11
10
|
base.alias_method_chain :post_process_styles, :processing
|
12
11
|
end
|
13
12
|
|
@@ -45,14 +44,14 @@ module DelayedPaperclip
|
|
45
44
|
|
46
45
|
def post_process_styles_with_processing(*args)
|
47
46
|
post_process_styles_without_processing(*args)
|
48
|
-
instance.update_attribute("#{name}_processing", false) if instance.respond_to?(:"#{name}_processing?")
|
49
47
|
|
50
|
-
#
|
51
|
-
|
52
|
-
# if instance.respond_to?(:"#{name}_processing?")
|
53
|
-
|
54
|
-
|
55
|
-
|
48
|
+
# update_column is available in rails 3.1 instead we can do this to update the attribute without callbacks
|
49
|
+
|
50
|
+
#instance.update_column("#{name}_processing", false) if instance.respond_to?(:"#{name}_processing?")
|
51
|
+
if instance.respond_to?(:"#{name}_processing?")
|
52
|
+
instance.send("#{name}_processing=", false)
|
53
|
+
instance.class.update_all({ "#{name}_processing" => false }, instance.class.primary_key => instance.id)
|
54
|
+
end
|
56
55
|
end
|
57
56
|
|
58
57
|
def save_with_prepare_enqueueing
|
@@ -64,18 +63,6 @@ module DelayedPaperclip
|
|
64
63
|
end
|
65
64
|
end
|
66
65
|
|
67
|
-
def most_appropriate_url_with_processed
|
68
|
-
if original_filename.nil? || delayed_default_url?
|
69
|
-
default_url
|
70
|
-
else
|
71
|
-
@options.url
|
72
|
-
end
|
73
|
-
end
|
74
|
-
|
75
|
-
def delayed_default_url?
|
76
|
-
!(job_is_processing || dirty? || !delayed_options.try(:[], :url_with_processing) || !(@instance.respond_to?(:"#{name}_processing?") && processing?))
|
77
|
-
end
|
78
|
-
|
79
66
|
end
|
80
67
|
end
|
81
68
|
end
|
@@ -17,6 +17,7 @@ module DelayedPaperclip
|
|
17
17
|
def self.insert
|
18
18
|
ActiveRecord::Base.send(:include, DelayedPaperclip::Glue)
|
19
19
|
Paperclip::Attachment.send(:include, DelayedPaperclip::Attachment)
|
20
|
+
Paperclip::UrlGenerator.send(:include, DelayedPaperclip::UrlGenerator)
|
20
21
|
end
|
21
22
|
end
|
22
23
|
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require 'uri'
|
2
|
+
module DelayedPaperclip
|
3
|
+
module UrlGenerator
|
4
|
+
def self.included(base)
|
5
|
+
base.send :include, InstanceMethods
|
6
|
+
base.alias_method_chain :most_appropriate_url, :processed
|
7
|
+
end
|
8
|
+
|
9
|
+
def most_appropriate_url_with_processed
|
10
|
+
if @attachment.original_filename.nil? || delayed_default_url?
|
11
|
+
default_url
|
12
|
+
else
|
13
|
+
@attachment_options[:url]
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
def delayed_default_url?
|
18
|
+
!(@attachment.job_is_processing || @attachment.dirty? || !@attachment.delayed_options.try(:[], :url_with_processing) || !(@attachment.instance.respond_to?(:"#{@attachment.name}_processing?") && @attachment.processing?))
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
@@ -137,4 +137,14 @@ module BaseDelayedPaperclipTest
|
|
137
137
|
dummy.save!
|
138
138
|
process_jobs
|
139
139
|
end
|
140
|
+
|
141
|
+
def test_delayed_paperclip_functioning_with_after_update_callback
|
142
|
+
reset_class "Dummy", :with_processed => true, :with_after_update_callback => true
|
143
|
+
Dummy.any_instance.expects(:reprocess)
|
144
|
+
dummy = Dummy.new(:image => File.open("#{RAILS_ROOT}/test/fixtures/12k.png"))
|
145
|
+
dummy.save!
|
146
|
+
process_jobs
|
147
|
+
dummy.update_attributes(:name => "hi")
|
148
|
+
end
|
149
|
+
|
140
150
|
end
|
data/test/test_helper.rb
CHANGED
@@ -41,6 +41,7 @@ end
|
|
41
41
|
|
42
42
|
def build_dummy_table(with_processed)
|
43
43
|
ActiveRecord::Base.connection.create_table :dummies, :force => true do |t|
|
44
|
+
t.string :name
|
44
45
|
t.string :image_file_name
|
45
46
|
t.string :image_content_type
|
46
47
|
t.integer :image_file_size
|
@@ -57,6 +58,11 @@ def reset_class(class_name, options)
|
|
57
58
|
include Paperclip::Glue
|
58
59
|
has_attached_file :image
|
59
60
|
process_in_background :image, options if options[:with_processed]
|
61
|
+
after_update :reprocess if options[:with_after_update_callback]
|
62
|
+
|
63
|
+
def reprocess
|
64
|
+
image.reprocess!
|
65
|
+
end
|
60
66
|
end
|
61
67
|
klass.reset_column_information
|
62
68
|
klass
|
metadata
CHANGED
@@ -1,20 +1,21 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: delayed_paperclip
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.4.5.
|
4
|
+
version: 2.4.5.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Jesse Storimer
|
9
9
|
- Bert Goethals
|
10
|
+
- James Gifford
|
10
11
|
autorequire:
|
11
12
|
bindir: bin
|
12
13
|
cert_chain: []
|
13
|
-
date:
|
14
|
+
date: 2012-10-07 00:00:00.000000000 Z
|
14
15
|
dependencies:
|
15
16
|
- !ruby/object:Gem::Dependency
|
16
17
|
name: paperclip
|
17
|
-
requirement:
|
18
|
+
requirement: !ruby/object:Gem::Requirement
|
18
19
|
none: false
|
19
20
|
requirements:
|
20
21
|
- - ! '>='
|
@@ -22,10 +23,15 @@ dependencies:
|
|
22
23
|
version: 2.4.5
|
23
24
|
type: :runtime
|
24
25
|
prerelease: false
|
25
|
-
version_requirements:
|
26
|
+
version_requirements: !ruby/object:Gem::Requirement
|
27
|
+
none: false
|
28
|
+
requirements:
|
29
|
+
- - ! '>='
|
30
|
+
- !ruby/object:Gem::Version
|
31
|
+
version: 2.4.5
|
26
32
|
- !ruby/object:Gem::Dependency
|
27
33
|
name: mocha
|
28
|
-
requirement:
|
34
|
+
requirement: !ruby/object:Gem::Requirement
|
29
35
|
none: false
|
30
36
|
requirements:
|
31
37
|
- - ! '>='
|
@@ -33,10 +39,15 @@ dependencies:
|
|
33
39
|
version: '0'
|
34
40
|
type: :development
|
35
41
|
prerelease: false
|
36
|
-
version_requirements:
|
42
|
+
version_requirements: !ruby/object:Gem::Requirement
|
43
|
+
none: false
|
44
|
+
requirements:
|
45
|
+
- - ! '>='
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
37
48
|
- !ruby/object:Gem::Dependency
|
38
49
|
name: sqlite3
|
39
|
-
requirement:
|
50
|
+
requirement: !ruby/object:Gem::Requirement
|
40
51
|
none: false
|
41
52
|
requirements:
|
42
53
|
- - ! '>='
|
@@ -44,10 +55,15 @@ dependencies:
|
|
44
55
|
version: '0'
|
45
56
|
type: :development
|
46
57
|
prerelease: false
|
47
|
-
version_requirements:
|
58
|
+
version_requirements: !ruby/object:Gem::Requirement
|
59
|
+
none: false
|
60
|
+
requirements:
|
61
|
+
- - ! '>='
|
62
|
+
- !ruby/object:Gem::Version
|
63
|
+
version: '0'
|
48
64
|
- !ruby/object:Gem::Dependency
|
49
65
|
name: delayed_job
|
50
|
-
requirement:
|
66
|
+
requirement: !ruby/object:Gem::Requirement
|
51
67
|
none: false
|
52
68
|
requirements:
|
53
69
|
- - ! '>='
|
@@ -55,10 +71,15 @@ dependencies:
|
|
55
71
|
version: '0'
|
56
72
|
type: :development
|
57
73
|
prerelease: false
|
58
|
-
version_requirements:
|
74
|
+
version_requirements: !ruby/object:Gem::Requirement
|
75
|
+
none: false
|
76
|
+
requirements:
|
77
|
+
- - ! '>='
|
78
|
+
- !ruby/object:Gem::Version
|
79
|
+
version: '0'
|
59
80
|
- !ruby/object:Gem::Dependency
|
60
81
|
name: resque
|
61
|
-
requirement:
|
82
|
+
requirement: !ruby/object:Gem::Requirement
|
62
83
|
none: false
|
63
84
|
requirements:
|
64
85
|
- - ! '>='
|
@@ -66,10 +87,15 @@ dependencies:
|
|
66
87
|
version: '0'
|
67
88
|
type: :development
|
68
89
|
prerelease: false
|
69
|
-
version_requirements:
|
90
|
+
version_requirements: !ruby/object:Gem::Requirement
|
91
|
+
none: false
|
92
|
+
requirements:
|
93
|
+
- - ! '>='
|
94
|
+
- !ruby/object:Gem::Version
|
95
|
+
version: '0'
|
70
96
|
description: Process your Paperclip attachments in the background with delayed_job,
|
71
97
|
Resque or your own processor.
|
72
|
-
email:
|
98
|
+
email: james@jamesrgifford.com
|
73
99
|
executables: []
|
74
100
|
extensions: []
|
75
101
|
extra_rdoc_files: []
|
@@ -78,20 +104,21 @@ files:
|
|
78
104
|
- LICENSE
|
79
105
|
- Rakefile
|
80
106
|
- init.rb
|
81
|
-
- lib/delayed_paperclip/
|
107
|
+
- lib/delayed_paperclip/jobs.rb
|
108
|
+
- lib/delayed_paperclip/url_generator.rb
|
82
109
|
- lib/delayed_paperclip/jobs/delayed_job.rb
|
83
110
|
- lib/delayed_paperclip/jobs/resque.rb
|
84
|
-
- lib/delayed_paperclip/
|
111
|
+
- lib/delayed_paperclip/attachment.rb
|
85
112
|
- lib/delayed_paperclip/railtie.rb
|
86
113
|
- lib/delayed_paperclip.rb
|
87
|
-
- test/base_delayed_paperclip_test.rb
|
88
114
|
- test/database.yml
|
89
|
-
- test/
|
90
|
-
- test/fixtures/12k.png
|
115
|
+
- test/base_delayed_paperclip_test.rb
|
91
116
|
- test/resque_paperclip_test.rb
|
92
117
|
- test/test_helper.rb
|
118
|
+
- test/fixtures/12k.png
|
119
|
+
- test/delayed_paperclip_test.rb
|
93
120
|
- rails/init.rb
|
94
|
-
homepage: http://github.com/
|
121
|
+
homepage: http://github.com/jrgifford/delayed_paperclip
|
95
122
|
licenses: []
|
96
123
|
post_install_message:
|
97
124
|
rdoc_options: []
|
@@ -111,7 +138,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
111
138
|
version: '0'
|
112
139
|
requirements: []
|
113
140
|
rubyforge_project:
|
114
|
-
rubygems_version: 1.8.
|
141
|
+
rubygems_version: 1.8.24
|
115
142
|
signing_key:
|
116
143
|
specification_version: 3
|
117
144
|
summary: Process your Paperclip attachments in the background.
|