paperdragon 0.0.8 → 0.0.9
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 +4 -4
- data/README.md +9 -1
- data/lib/paperdragon/CHANGES.md +4 -0
- data/lib/paperdragon/file.rb +10 -0
- data/lib/paperdragon/task.rb +14 -0
- data/lib/paperdragon/version.rb +1 -1
- data/test/model_test.rb +6 -0
- data/test/task_test.rb +40 -0
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 14395b1c15c23ae0dd9b68795d714ce399b73c2b
|
4
|
+
data.tar.gz: 6b7587815f2a57a3964cfbab14c2c81efbf06c35
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1fd4b681f89d0a3edae7a967613db00026df7a60adde0e0b3268df710c83c36a2a0c8405978906f09d4ce65dc154412fd1595eb9114e26047ac95100b9a7f625
|
7
|
+
data.tar.gz: 525f69bd268b962dff804f6b169d402b8427d74f517fae18c4c65d34bdb9040429b3c1f20a55d2999c04f9d606765698da9083a38f770b58481220efcb41fc42
|
data/README.md
CHANGED
@@ -173,6 +173,14 @@ end
|
|
173
173
|
|
174
174
|
This will also remove the associated metadata from the model.
|
175
175
|
|
176
|
+
You can delete all versions of an attachment by omitting the style.
|
177
|
+
|
178
|
+
```ruby
|
179
|
+
user.image do |v|
|
180
|
+
v.delete! # deletes :original and :thumb.
|
181
|
+
end
|
182
|
+
```
|
183
|
+
|
176
184
|
|
177
185
|
## Replacing Images
|
178
186
|
|
@@ -320,7 +328,7 @@ Documentation how to use Sidekiq and paperdragon in Traiblazer will be added sho
|
|
320
328
|
## Validations
|
321
329
|
|
322
330
|
Validating uploads are discussed in the _Callbacks_ chapter of the [Trailblazer
|
323
|
-
book](https://leanpub.com/trailblazer). We use [file_validators](https://github.com/musaffa/
|
331
|
+
book](https://leanpub.com/trailblazer). We use [file_validators](https://github.com/musaffa/file_validators).
|
324
332
|
|
325
333
|
## Model: Reader and Writer
|
326
334
|
|
data/lib/paperdragon/CHANGES.md
CHANGED
data/lib/paperdragon/file.rb
CHANGED
@@ -1,5 +1,15 @@
|
|
1
1
|
module Paperdragon
|
2
2
|
# A physical file with a UID.
|
3
|
+
#
|
4
|
+
# Files are usually created via an Attachment instance. You can call processing
|
5
|
+
# methods on file instances. This will save the file and return the new metadata
|
6
|
+
# hash.
|
7
|
+
#
|
8
|
+
# file = Paperdragon::File.new(uid)
|
9
|
+
#
|
10
|
+
# metadata = file.reprocess! do |job|
|
11
|
+
# job.thumb!("16x16")
|
12
|
+
# end
|
3
13
|
class File
|
4
14
|
def initialize(uid, options={})
|
5
15
|
@uid = uid
|
data/lib/paperdragon/task.rb
CHANGED
@@ -1,5 +1,8 @@
|
|
1
1
|
module Paperdragon
|
2
2
|
# Gives a simple API for processing multiple versions of a single attachment.
|
3
|
+
#
|
4
|
+
# Each processing method will return the updated metadata hash. You still have
|
5
|
+
# to save that hash back to the model.
|
3
6
|
class Task
|
4
7
|
def initialize(attachment, upload=nil)
|
5
8
|
@attachment = attachment
|
@@ -42,6 +45,17 @@ module Paperdragon
|
|
42
45
|
@metadata.merge!(style => version.rename!(new_uid, &block))
|
43
46
|
end
|
44
47
|
|
48
|
+
def delete!(*styles)
|
49
|
+
styles = @attachment.metadata.keys if styles.size == 0
|
50
|
+
|
51
|
+
styles.each do |style|
|
52
|
+
file(style).delete!
|
53
|
+
@metadata.delete(style)
|
54
|
+
end
|
55
|
+
|
56
|
+
@metadata
|
57
|
+
end
|
58
|
+
|
45
59
|
private
|
46
60
|
def file(style, upload=nil)
|
47
61
|
@attachment[style, upload]
|
data/lib/paperdragon/version.rb
CHANGED
data/test/model_test.rb
CHANGED
@@ -52,6 +52,12 @@ class PaperdragonModelTest < MiniTest::Spec
|
|
52
52
|
|
53
53
|
model.image_meta_data.class.must_equal Hash
|
54
54
|
model.image_meta_data.must_equal({:original=>{:width=>216, :height=>63, :uid=>"original-apotomo.png"}, :thumb=>{:width=>8, :height=>2, :uid=>"thumb-apotomo-1.png"}})
|
55
|
+
|
56
|
+
model.image do |v|
|
57
|
+
v.delete!(:thumb)
|
58
|
+
end
|
59
|
+
|
60
|
+
model.image_meta_data.must_equal({:original=>{:width=>216, :height=>63, :uid=>"original-apotomo.png"}})
|
55
61
|
end
|
56
62
|
|
57
63
|
# passing options from image(file, {..}) to the Attachment.
|
data/test/task_test.rb
CHANGED
@@ -162,4 +162,44 @@ class TaskSpec < MiniTest::Spec
|
|
162
162
|
}.must_equal({:original=>{:width=>216, :height=>63, :uid=>"original-apotomo-new.png"}})
|
163
163
|
end
|
164
164
|
end
|
165
|
+
|
166
|
+
|
167
|
+
describe "#delete!" do
|
168
|
+
before do
|
169
|
+
attachment = Paperdragon::Attachment.new(nil)
|
170
|
+
@upload_task = attachment.task(logo)
|
171
|
+
metadata = @upload_task.process!(:original).must_equal({:original=>{:width=>216, :height=>63, :uid=>"original-apotomo.png"}})
|
172
|
+
|
173
|
+
# we do not update the attachment from task.
|
174
|
+
attachment = Paperdragon::Attachment.new(@upload_task.metadata)
|
175
|
+
exists?(attachment[:original].uid).must_equal true
|
176
|
+
end
|
177
|
+
|
178
|
+
let (:metadata) { @upload_task.metadata }
|
179
|
+
|
180
|
+
# #delete!(:original)
|
181
|
+
it do
|
182
|
+
attachment = Paperdragon::Attachment.new(metadata) # {:original=>{:width=>216, :height=>63, :uid=>"uid/original", :size=>9632}}
|
183
|
+
|
184
|
+
attachment.task.delete!(:original).must_equal({})
|
185
|
+
|
186
|
+
exists?(attachment[:original].uid).must_equal false
|
187
|
+
end
|
188
|
+
|
189
|
+
# #delete no args.
|
190
|
+
it do
|
191
|
+
metadata = @upload_task.process!(:thumb)
|
192
|
+
metadata.must_equal({:original=>{:width=>216, :height=>63, :uid=>"original-apotomo.png"}, :thumb=>{:width=>216, :height=>63, :uid=>"thumb-apotomo.png"}})
|
193
|
+
|
194
|
+
attachment = Paperdragon::Attachment.new(metadata) # {:original=>{:width=>216, :height=>63, :uid=>"uid/original", :size=>9632}}
|
195
|
+
# thumb and original are both there.
|
196
|
+
exists?(attachment[:original].uid).must_equal true
|
197
|
+
exists?(attachment[:thumb].uid).must_equal true
|
198
|
+
|
199
|
+
attachment.task.delete!.must_equal({})
|
200
|
+
|
201
|
+
exists?(attachment[:original].uid).must_equal false
|
202
|
+
exists?(attachment[:thumb].uid).must_equal false
|
203
|
+
end
|
204
|
+
end
|
165
205
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: paperdragon
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nick Sutterer
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-08-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: dragonfly
|
@@ -133,7 +133,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
133
133
|
version: '0'
|
134
134
|
requirements: []
|
135
135
|
rubyforge_project:
|
136
|
-
rubygems_version: 2.
|
136
|
+
rubygems_version: 2.4.8
|
137
137
|
signing_key:
|
138
138
|
specification_version: 4
|
139
139
|
summary: Explicit image processing based on Dragonfly with Paperclip compatibility.
|
@@ -147,3 +147,4 @@ test_files:
|
|
147
147
|
- test/paperclip_uid_test.rb
|
148
148
|
- test/task_test.rb
|
149
149
|
- test/test_helper.rb
|
150
|
+
has_rdoc:
|