paperclip_duplicate_check 1.0.0 → 1.0.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.
- checksums.yaml +7 -0
- data/.ruby-gemset +1 -0
- data/.ruby-version +1 -0
- data/Gemfile +3 -3
- data/Gemfile.lock +174 -100
- data/README.md +2 -0
- data/Rakefile +3 -3
- data/VERSION +1 -1
- data/lib/paperclip_duplicate_check.rb +6 -3
- data/paperclip_duplicate_check.gemspec +54 -42
- data/spec/paperclip_duplicate_check_spec.rb +4 -5
- data/spec/spec_helper.rb +7 -5
- metadata +41 -56
- data/.rvmrc +0 -1
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: 362fcaae3d0e6abc87514b4b7a3edfb64b6055609006babd10228ced8eef8be1
|
|
4
|
+
data.tar.gz: fd5231be1c428822301a56e50ee029db2697b61b65eab91cbedef2569c321930
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: 1028b5a12097bec75db34e33e40eccc5f63251d19064a3fd47c1e742caaa025e1489f8151e8668a4d3a097b245fd123e759a52cb8d266df75393cbd1c4e9853c
|
|
7
|
+
data.tar.gz: 6817d16fd8671a6cf352614f694af8c6499fdd7329c571ace609a25bbb8f54a6757a8442a46134b14c73cd4d4b31c15b3b74af87ba41c49bfe0b54d844fa88c1
|
data/.ruby-gemset
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
paperclip_dup
|
data/.ruby-version
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
2.4.2
|
data/Gemfile
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
source
|
|
1
|
+
source 'https://rubygems.org'
|
|
2
2
|
|
|
3
3
|
gem 'paperclip'
|
|
4
4
|
|
|
@@ -6,7 +6,7 @@ group :development do
|
|
|
6
6
|
# TESTS
|
|
7
7
|
gem 'rspec'
|
|
8
8
|
gem 'sqlite3'
|
|
9
|
-
gem 'rails'
|
|
9
|
+
gem 'rails', '>= 5.0'
|
|
10
10
|
|
|
11
11
|
# DOCS
|
|
12
12
|
gem 'yard'
|
|
@@ -14,5 +14,5 @@ group :development do
|
|
|
14
14
|
|
|
15
15
|
# DEVELOPMENT
|
|
16
16
|
gem 'bundler'
|
|
17
|
-
gem '
|
|
17
|
+
gem 'juwelier'
|
|
18
18
|
end
|
data/Gemfile.lock
CHANGED
|
@@ -1,117 +1,191 @@
|
|
|
1
1
|
GEM
|
|
2
|
-
remote:
|
|
2
|
+
remote: https://rubygems.org/
|
|
3
3
|
specs:
|
|
4
|
-
|
|
5
|
-
actionpack (=
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
activesupport (=
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
4
|
+
actioncable (5.1.4)
|
|
5
|
+
actionpack (= 5.1.4)
|
|
6
|
+
nio4r (~> 2.0)
|
|
7
|
+
websocket-driver (~> 0.6.1)
|
|
8
|
+
actionmailer (5.1.4)
|
|
9
|
+
actionpack (= 5.1.4)
|
|
10
|
+
actionview (= 5.1.4)
|
|
11
|
+
activejob (= 5.1.4)
|
|
12
|
+
mail (~> 2.5, >= 2.5.4)
|
|
13
|
+
rails-dom-testing (~> 2.0)
|
|
14
|
+
actionpack (5.1.4)
|
|
15
|
+
actionview (= 5.1.4)
|
|
16
|
+
activesupport (= 5.1.4)
|
|
17
|
+
rack (~> 2.0)
|
|
18
|
+
rack-test (>= 0.6.3)
|
|
19
|
+
rails-dom-testing (~> 2.0)
|
|
20
|
+
rails-html-sanitizer (~> 1.0, >= 1.0.2)
|
|
21
|
+
actionview (5.1.4)
|
|
22
|
+
activesupport (= 5.1.4)
|
|
23
|
+
builder (~> 3.1)
|
|
24
|
+
erubi (~> 1.4)
|
|
25
|
+
rails-dom-testing (~> 2.0)
|
|
26
|
+
rails-html-sanitizer (~> 1.0, >= 1.0.3)
|
|
27
|
+
activejob (5.1.4)
|
|
28
|
+
activesupport (= 5.1.4)
|
|
29
|
+
globalid (>= 0.3.6)
|
|
30
|
+
activemodel (5.1.4)
|
|
31
|
+
activesupport (= 5.1.4)
|
|
32
|
+
activerecord (5.1.4)
|
|
33
|
+
activemodel (= 5.1.4)
|
|
34
|
+
activesupport (= 5.1.4)
|
|
35
|
+
arel (~> 8.0)
|
|
36
|
+
activesupport (5.1.4)
|
|
37
|
+
concurrent-ruby (~> 1.0, >= 1.0.2)
|
|
38
|
+
i18n (~> 0.7)
|
|
39
|
+
minitest (~> 5.1)
|
|
40
|
+
tzinfo (~> 1.1)
|
|
41
|
+
addressable (2.5.2)
|
|
42
|
+
public_suffix (>= 2.0.2, < 4.0)
|
|
43
|
+
arel (8.0.0)
|
|
44
|
+
builder (3.2.3)
|
|
45
|
+
climate_control (0.2.0)
|
|
46
|
+
cocaine (0.5.8)
|
|
47
|
+
climate_control (>= 0.0.3, < 1.0)
|
|
48
|
+
concurrent-ruby (1.0.5)
|
|
49
|
+
crass (1.0.3)
|
|
50
|
+
descendants_tracker (0.0.4)
|
|
51
|
+
thread_safe (~> 0.3, >= 0.3.1)
|
|
52
|
+
diff-lcs (1.3)
|
|
53
|
+
erubi (1.7.0)
|
|
54
|
+
faraday (0.12.2)
|
|
55
|
+
multipart-post (>= 1.2, < 3)
|
|
56
|
+
git (1.3.0)
|
|
57
|
+
github_api (0.18.2)
|
|
58
|
+
addressable (~> 2.4)
|
|
59
|
+
descendants_tracker (~> 0.0.4)
|
|
60
|
+
faraday (~> 0.8)
|
|
61
|
+
hashie (~> 3.5, >= 3.5.2)
|
|
62
|
+
oauth2 (~> 1.0)
|
|
63
|
+
globalid (0.4.1)
|
|
64
|
+
activesupport (>= 4.2.0)
|
|
65
|
+
hashie (3.5.6)
|
|
66
|
+
highline (1.7.10)
|
|
67
|
+
i18n (0.9.1)
|
|
68
|
+
concurrent-ruby (~> 1.0)
|
|
69
|
+
juwelier (2.4.7)
|
|
70
|
+
builder
|
|
71
|
+
bundler
|
|
72
|
+
git
|
|
73
|
+
github_api
|
|
74
|
+
highline
|
|
75
|
+
kamelcase (~> 0)
|
|
76
|
+
nokogiri
|
|
77
|
+
psych
|
|
42
78
|
rake
|
|
43
79
|
rdoc
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
80
|
+
semver2
|
|
81
|
+
jwt (1.5.6)
|
|
82
|
+
kamelcase (0.0.1)
|
|
83
|
+
semver2 (~> 3)
|
|
84
|
+
loofah (2.1.1)
|
|
85
|
+
crass (~> 1.0.2)
|
|
86
|
+
nokogiri (>= 1.5.9)
|
|
87
|
+
mail (2.7.0)
|
|
88
|
+
mini_mime (>= 0.1.1)
|
|
89
|
+
method_source (0.9.0)
|
|
90
|
+
mime-types (3.1)
|
|
91
|
+
mime-types-data (~> 3.2015)
|
|
92
|
+
mime-types-data (3.2016.0521)
|
|
93
|
+
mimemagic (0.3.2)
|
|
94
|
+
mini_mime (1.0.0)
|
|
95
|
+
mini_portile2 (2.3.0)
|
|
96
|
+
minitest (5.10.3)
|
|
97
|
+
multi_json (1.12.2)
|
|
98
|
+
multi_xml (0.6.0)
|
|
99
|
+
multipart-post (2.0.0)
|
|
100
|
+
nio4r (2.1.0)
|
|
101
|
+
nokogiri (1.8.1)
|
|
102
|
+
mini_portile2 (~> 2.3.0)
|
|
103
|
+
oauth2 (1.4.0)
|
|
104
|
+
faraday (>= 0.8, < 0.13)
|
|
105
|
+
jwt (~> 1.0)
|
|
106
|
+
multi_json (~> 1.3)
|
|
107
|
+
multi_xml (~> 0.5)
|
|
108
|
+
rack (>= 1.2, < 3)
|
|
109
|
+
paperclip (5.1.0)
|
|
110
|
+
activemodel (>= 4.2.0)
|
|
111
|
+
activesupport (>= 4.2.0)
|
|
112
|
+
cocaine (~> 0.5.5)
|
|
57
113
|
mime-types
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
rack-
|
|
63
|
-
rack
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
114
|
+
mimemagic (~> 0.3.0)
|
|
115
|
+
psych (3.0.1)
|
|
116
|
+
public_suffix (3.0.1)
|
|
117
|
+
rack (2.0.3)
|
|
118
|
+
rack-test (0.8.2)
|
|
119
|
+
rack (>= 1.0, < 3)
|
|
120
|
+
rails (5.1.4)
|
|
121
|
+
actioncable (= 5.1.4)
|
|
122
|
+
actionmailer (= 5.1.4)
|
|
123
|
+
actionpack (= 5.1.4)
|
|
124
|
+
actionview (= 5.1.4)
|
|
125
|
+
activejob (= 5.1.4)
|
|
126
|
+
activemodel (= 5.1.4)
|
|
127
|
+
activerecord (= 5.1.4)
|
|
128
|
+
activesupport (= 5.1.4)
|
|
129
|
+
bundler (>= 1.3.0)
|
|
130
|
+
railties (= 5.1.4)
|
|
131
|
+
sprockets-rails (>= 2.0.0)
|
|
132
|
+
rails-dom-testing (2.0.3)
|
|
133
|
+
activesupport (>= 4.2.0)
|
|
134
|
+
nokogiri (>= 1.6)
|
|
135
|
+
rails-html-sanitizer (1.0.3)
|
|
136
|
+
loofah (~> 2.0)
|
|
137
|
+
railties (5.1.4)
|
|
138
|
+
actionpack (= 5.1.4)
|
|
139
|
+
activesupport (= 5.1.4)
|
|
140
|
+
method_source
|
|
78
141
|
rake (>= 0.8.7)
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
rspec-
|
|
87
|
-
|
|
88
|
-
rspec-
|
|
89
|
-
rspec-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
rspec-mocks (
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
142
|
+
thor (>= 0.18.1, < 2.0)
|
|
143
|
+
rake (12.3.0)
|
|
144
|
+
rdoc (6.0.0)
|
|
145
|
+
redcarpet (3.4.0)
|
|
146
|
+
rspec (3.7.0)
|
|
147
|
+
rspec-core (~> 3.7.0)
|
|
148
|
+
rspec-expectations (~> 3.7.0)
|
|
149
|
+
rspec-mocks (~> 3.7.0)
|
|
150
|
+
rspec-core (3.7.0)
|
|
151
|
+
rspec-support (~> 3.7.0)
|
|
152
|
+
rspec-expectations (3.7.0)
|
|
153
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
|
154
|
+
rspec-support (~> 3.7.0)
|
|
155
|
+
rspec-mocks (3.7.0)
|
|
156
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
|
157
|
+
rspec-support (~> 3.7.0)
|
|
158
|
+
rspec-support (3.7.0)
|
|
159
|
+
semver2 (3.4.2)
|
|
160
|
+
sprockets (3.7.1)
|
|
161
|
+
concurrent-ruby (~> 1.0)
|
|
162
|
+
rack (> 1, < 3)
|
|
163
|
+
sprockets-rails (3.2.1)
|
|
164
|
+
actionpack (>= 4.0)
|
|
165
|
+
activesupport (>= 4.0)
|
|
166
|
+
sprockets (>= 3.0.0)
|
|
167
|
+
sqlite3 (1.3.13)
|
|
168
|
+
thor (0.20.0)
|
|
169
|
+
thread_safe (0.3.6)
|
|
170
|
+
tzinfo (1.2.4)
|
|
171
|
+
thread_safe (~> 0.1)
|
|
172
|
+
websocket-driver (0.6.5)
|
|
173
|
+
websocket-extensions (>= 0.1.0)
|
|
174
|
+
websocket-extensions (0.1.3)
|
|
175
|
+
yard (0.9.12)
|
|
105
176
|
|
|
106
177
|
PLATFORMS
|
|
107
178
|
ruby
|
|
108
179
|
|
|
109
180
|
DEPENDENCIES
|
|
110
181
|
bundler
|
|
111
|
-
|
|
182
|
+
juwelier
|
|
112
183
|
paperclip
|
|
113
|
-
rails
|
|
184
|
+
rails (>= 5.0)
|
|
114
185
|
redcarpet
|
|
115
186
|
rspec
|
|
116
187
|
sqlite3
|
|
117
188
|
yard
|
|
189
|
+
|
|
190
|
+
BUNDLED WITH
|
|
191
|
+
1.16.0
|
data/README.md
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
> ⚠️ **DEPRECATED**: paperclip_duplicate_check is no longer maintained. Paperclip itself has been deprecated upstream in favor of ActiveStorage; for duplicate detection on ActiveStorage attachments, use checksums directly. This is the final release.
|
|
2
|
+
|
|
1
3
|
Paperclip Duplicate Checker
|
|
2
4
|
===========================
|
|
3
5
|
|
data/Rakefile
CHANGED
|
@@ -11,8 +11,8 @@ rescue Bundler::BundlerError => e
|
|
|
11
11
|
end
|
|
12
12
|
require 'rake'
|
|
13
13
|
|
|
14
|
-
require '
|
|
15
|
-
|
|
14
|
+
require 'juwelier'
|
|
15
|
+
Juwelier::Tasks.new do |gem|
|
|
16
16
|
# gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
|
|
17
17
|
gem.name = "paperclip_duplicate_check"
|
|
18
18
|
gem.homepage = "http://github.com/RISCfuture/paperclip_duplicate_check"
|
|
@@ -23,7 +23,7 @@ Jeweler::Tasks.new do |gem|
|
|
|
23
23
|
gem.authors = ["Tim Morgan"]
|
|
24
24
|
# dependencies defined in Gemfile
|
|
25
25
|
end
|
|
26
|
-
|
|
26
|
+
Juwelier::RubygemsDotOrgTasks.new
|
|
27
27
|
|
|
28
28
|
require 'rspec/core'
|
|
29
29
|
require 'rspec/core/rake_task'
|
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
1.0.
|
|
1
|
+
1.0.2
|
|
@@ -19,11 +19,13 @@ module CheckForDuplicateAttachedFile
|
|
|
19
19
|
# @param [Symbol] name An attachment name.
|
|
20
20
|
|
|
21
21
|
def check_for_duplicate_attached_file(*names)
|
|
22
|
+
extensions = Module.new
|
|
23
|
+
|
|
22
24
|
names.each do |name|
|
|
23
|
-
define_method :"#{name}
|
|
25
|
+
extensions.send :define_method, :"#{name}=" do |file|
|
|
24
26
|
attachment = send(name)
|
|
25
27
|
old_fingerprint = attachment.fingerprint
|
|
26
|
-
|
|
28
|
+
super(file)
|
|
27
29
|
if attachment.fingerprint == old_fingerprint then
|
|
28
30
|
# restore to saved state
|
|
29
31
|
attachment.instance_variable_set :@queued_for_delete, []
|
|
@@ -32,8 +34,9 @@ module CheckForDuplicateAttachedFile
|
|
|
32
34
|
attachment.instance_variable_set :@dirty, false
|
|
33
35
|
end
|
|
34
36
|
end
|
|
35
|
-
alias_method_chain :"#{name}=", :dup_check
|
|
36
37
|
end
|
|
38
|
+
|
|
39
|
+
prepend extensions
|
|
37
40
|
end
|
|
38
41
|
end
|
|
39
42
|
end
|
|
@@ -1,74 +1,86 @@
|
|
|
1
|
-
# Generated by
|
|
1
|
+
# Generated by juwelier
|
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
|
3
|
-
# Instead, edit
|
|
3
|
+
# Instead, edit Juwelier::Tasks in Rakefile, and run 'rake gemspec'
|
|
4
4
|
# -*- encoding: utf-8 -*-
|
|
5
|
+
# stub: paperclip_duplicate_check 1.0.2 ruby lib
|
|
5
6
|
|
|
6
7
|
Gem::Specification.new do |s|
|
|
7
|
-
s.name = "paperclip_duplicate_check"
|
|
8
|
-
s.version = "1.0.
|
|
8
|
+
s.name = "paperclip_duplicate_check".freeze
|
|
9
|
+
s.version = "1.0.2"
|
|
9
10
|
|
|
10
|
-
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
|
11
|
-
s.
|
|
12
|
-
s.
|
|
13
|
-
s.
|
|
14
|
-
s.
|
|
11
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
|
|
12
|
+
s.require_paths = ["lib".freeze]
|
|
13
|
+
s.authors = ["Tim Morgan".freeze]
|
|
14
|
+
s.date = "2016-07-04"
|
|
15
|
+
s.description = "This gem adds a mixin allowing you to forgo uploading a replacement Paperclip attachment if it's identical to the current attachment.".freeze
|
|
16
|
+
s.email = "git@timothymorgan.info".freeze
|
|
15
17
|
s.extra_rdoc_files = [
|
|
16
18
|
"LICENSE.txt",
|
|
17
|
-
"README.
|
|
19
|
+
"README.md"
|
|
18
20
|
]
|
|
19
21
|
s.files = [
|
|
20
22
|
".document",
|
|
21
23
|
".rspec",
|
|
22
|
-
".
|
|
24
|
+
".ruby-gemset",
|
|
25
|
+
".ruby-version",
|
|
23
26
|
"Gemfile",
|
|
24
27
|
"Gemfile.lock",
|
|
25
28
|
"LICENSE.txt",
|
|
26
|
-
"README.
|
|
29
|
+
"README.md",
|
|
27
30
|
"Rakefile",
|
|
28
31
|
"VERSION",
|
|
29
32
|
"lib/paperclip_duplicate_check.rb",
|
|
33
|
+
"paperclip_duplicate_check.gemspec",
|
|
30
34
|
"spec/fixtures/image.jpg",
|
|
31
35
|
"spec/fixtures/image2.png",
|
|
32
36
|
"spec/paperclip_duplicate_check_spec.rb",
|
|
33
37
|
"spec/spec_helper.rb"
|
|
34
38
|
]
|
|
35
|
-
s.homepage = "http://github.com/RISCfuture/paperclip_duplicate_check"
|
|
36
|
-
s.licenses = ["MIT"]
|
|
37
|
-
s.
|
|
38
|
-
s.
|
|
39
|
-
s.
|
|
39
|
+
s.homepage = "http://github.com/RISCfuture/paperclip_duplicate_check".freeze
|
|
40
|
+
s.licenses = ["MIT".freeze]
|
|
41
|
+
s.rubygems_version = "2.6.6".freeze
|
|
42
|
+
s.summary = "[DEPRECATED] Skips uploading a Paperclip attachment if it's identical to the one already uploaded".freeze
|
|
43
|
+
s.post_install_message = <<~MSG
|
|
44
|
+
|
|
45
|
+
⚠️ DEPRECATED: paperclip_duplicate_check is no longer maintained.
|
|
46
|
+
|
|
47
|
+
No longer maintained. Paperclip itself has been deprecated upstream in favor of ActiveStorage; for duplicate detection on ActiveStorage attachments, use checksums directly.
|
|
48
|
+
|
|
49
|
+
This is the final release. No further updates are planned.
|
|
50
|
+
|
|
51
|
+
MSG
|
|
40
52
|
|
|
41
53
|
if s.respond_to? :specification_version then
|
|
42
|
-
s.specification_version =
|
|
54
|
+
s.specification_version = 4
|
|
43
55
|
|
|
44
56
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
|
45
|
-
s.add_runtime_dependency(%q<paperclip
|
|
46
|
-
s.add_development_dependency(%q<rspec
|
|
47
|
-
s.add_development_dependency(%q<sqlite3
|
|
48
|
-
s.add_development_dependency(%q<rails
|
|
49
|
-
s.add_development_dependency(%q<yard
|
|
50
|
-
s.add_development_dependency(%q<redcarpet
|
|
51
|
-
s.add_development_dependency(%q<bundler
|
|
52
|
-
s.add_development_dependency(%q<
|
|
57
|
+
s.add_runtime_dependency(%q<paperclip>.freeze, [">= 0"])
|
|
58
|
+
s.add_development_dependency(%q<rspec>.freeze, [">= 0"])
|
|
59
|
+
s.add_development_dependency(%q<sqlite3>.freeze, [">= 0"])
|
|
60
|
+
s.add_development_dependency(%q<rails>.freeze, [">= 5.0"])
|
|
61
|
+
s.add_development_dependency(%q<yard>.freeze, [">= 0"])
|
|
62
|
+
s.add_development_dependency(%q<redcarpet>.freeze, [">= 0"])
|
|
63
|
+
s.add_development_dependency(%q<bundler>.freeze, [">= 0"])
|
|
64
|
+
s.add_development_dependency(%q<juwelier>.freeze, [">= 0"])
|
|
53
65
|
else
|
|
54
|
-
s.add_dependency(%q<paperclip
|
|
55
|
-
s.add_dependency(%q<rspec
|
|
56
|
-
s.add_dependency(%q<sqlite3
|
|
57
|
-
s.add_dependency(%q<rails
|
|
58
|
-
s.add_dependency(%q<yard
|
|
59
|
-
s.add_dependency(%q<redcarpet
|
|
60
|
-
s.add_dependency(%q<bundler
|
|
61
|
-
s.add_dependency(%q<
|
|
66
|
+
s.add_dependency(%q<paperclip>.freeze, [">= 0"])
|
|
67
|
+
s.add_dependency(%q<rspec>.freeze, [">= 0"])
|
|
68
|
+
s.add_dependency(%q<sqlite3>.freeze, [">= 0"])
|
|
69
|
+
s.add_dependency(%q<rails>.freeze, [">= 5.0"])
|
|
70
|
+
s.add_dependency(%q<yard>.freeze, [">= 0"])
|
|
71
|
+
s.add_dependency(%q<redcarpet>.freeze, [">= 0"])
|
|
72
|
+
s.add_dependency(%q<bundler>.freeze, [">= 0"])
|
|
73
|
+
s.add_dependency(%q<juwelier>.freeze, [">= 0"])
|
|
62
74
|
end
|
|
63
75
|
else
|
|
64
|
-
s.add_dependency(%q<paperclip
|
|
65
|
-
s.add_dependency(%q<rspec
|
|
66
|
-
s.add_dependency(%q<sqlite3
|
|
67
|
-
s.add_dependency(%q<rails
|
|
68
|
-
s.add_dependency(%q<yard
|
|
69
|
-
s.add_dependency(%q<redcarpet
|
|
70
|
-
s.add_dependency(%q<bundler
|
|
71
|
-
s.add_dependency(%q<
|
|
76
|
+
s.add_dependency(%q<paperclip>.freeze, [">= 0"])
|
|
77
|
+
s.add_dependency(%q<rspec>.freeze, [">= 0"])
|
|
78
|
+
s.add_dependency(%q<sqlite3>.freeze, [">= 0"])
|
|
79
|
+
s.add_dependency(%q<rails>.freeze, [">= 5.0"])
|
|
80
|
+
s.add_dependency(%q<yard>.freeze, [">= 0"])
|
|
81
|
+
s.add_dependency(%q<redcarpet>.freeze, [">= 0"])
|
|
82
|
+
s.add_dependency(%q<bundler>.freeze, [">= 0"])
|
|
83
|
+
s.add_dependency(%q<juwelier>.freeze, [">= 0"])
|
|
72
84
|
end
|
|
73
85
|
end
|
|
74
86
|
|
|
@@ -5,18 +5,17 @@ describe CheckForDuplicateAttachedFile do
|
|
|
5
5
|
it "should save an attachment if it's different from the current attachment" do
|
|
6
6
|
person = Person.create!(photo: Rack::Test::UploadedFile.new("#{Dir.getwd}/spec/fixtures/image.jpg", 'image/jpeg'))
|
|
7
7
|
person.photo = Rack::Test::UploadedFile.new("#{Dir.getwd}/spec/fixtures/image2.png", 'image/png')
|
|
8
|
-
person.photo.
|
|
8
|
+
expect(person.photo).to be_dirty
|
|
9
9
|
person.save!
|
|
10
|
-
`md5 #{person.photo.path}`.split(' ').last.
|
|
10
|
+
expect(`md5 #{person.photo.path}`.split(' ').last).to eql(`md5 #{"#{Dir.getwd}/spec/fixtures/image2.png"}`.split(' ').last)
|
|
11
11
|
end
|
|
12
12
|
|
|
13
13
|
it "should not re-save an attachment if it's the same as the current attachment" do
|
|
14
14
|
person = Person.create!(photo: Rack::Test::UploadedFile.new("#{Dir.getwd}/spec/fixtures/image.jpg", 'image/jpeg'))
|
|
15
15
|
person.photo = Rack::Test::UploadedFile.new("#{Dir.getwd}/spec/fixtures/image.jpg", 'image/jpeg')
|
|
16
|
-
person.photo.
|
|
16
|
+
expect(person.photo).not_to be_dirty
|
|
17
17
|
person.save!
|
|
18
|
-
|
|
19
|
-
`md5 #{person.photo.path}`.split(' ').last.should eql(`md5 #{"#{Dir.getwd}/spec/fixtures/image.jpg"}`.split(' ').last)
|
|
18
|
+
expect(`md5 #{person.photo.path}`.split(' ').last).to eql(`md5 #{"#{Dir.getwd}/spec/fixtures/image.jpg"}`.split(' ').last)
|
|
20
19
|
end
|
|
21
20
|
end
|
|
22
21
|
end
|
data/spec/spec_helper.rb
CHANGED
|
@@ -5,16 +5,18 @@ require 'bundler'
|
|
|
5
5
|
Bundler.require :development
|
|
6
6
|
Bundler.require
|
|
7
7
|
|
|
8
|
-
require '
|
|
8
|
+
require 'rails/all'
|
|
9
9
|
require 'paperclip_duplicate_check'
|
|
10
|
+
require 'rack'
|
|
11
|
+
require 'rack/test'
|
|
10
12
|
|
|
11
|
-
Paperclip::Railtie.insert
|
|
12
13
|
ActiveRecord::Base.establish_connection(
|
|
13
14
|
adapter: 'sqlite3',
|
|
14
15
|
database: 'test.sqlite'
|
|
15
16
|
)
|
|
16
17
|
|
|
17
18
|
class Person < ActiveRecord::Base
|
|
19
|
+
include Paperclip::Glue
|
|
18
20
|
include CheckForDuplicateAttachedFile
|
|
19
21
|
|
|
20
22
|
has_attached_file :photo,
|
|
@@ -23,7 +25,9 @@ class Person < ActiveRecord::Base
|
|
|
23
25
|
logbook: '32x32#',
|
|
24
26
|
stat: '64x64#',
|
|
25
27
|
},
|
|
26
|
-
storage: :filesystem
|
|
28
|
+
storage: :filesystem,
|
|
29
|
+
path: './tmp/:attachment/:style.:extension'
|
|
30
|
+
validates_attachment_content_type :photo, content_type: /^image\//
|
|
27
31
|
check_for_duplicate_attached_file :photo
|
|
28
32
|
end
|
|
29
33
|
|
|
@@ -44,7 +48,5 @@ RSpec.configure do |config|
|
|
|
44
48
|
photo_fingerprint VARCHAR(64)
|
|
45
49
|
)
|
|
46
50
|
SQL
|
|
47
|
-
|
|
48
|
-
Rails.stub!(:root).and_return(Pathname(Dir.getwd))
|
|
49
51
|
end
|
|
50
52
|
end
|
metadata
CHANGED
|
@@ -1,142 +1,124 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: paperclip_duplicate_check
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.0.
|
|
5
|
-
prerelease:
|
|
4
|
+
version: 1.0.2
|
|
6
5
|
platform: ruby
|
|
7
6
|
authors:
|
|
8
7
|
- Tim Morgan
|
|
9
|
-
autorequire:
|
|
10
8
|
bindir: bin
|
|
11
9
|
cert_chain: []
|
|
12
|
-
date:
|
|
10
|
+
date: 2016-07-04 00:00:00.000000000 Z
|
|
13
11
|
dependencies:
|
|
14
12
|
- !ruby/object:Gem::Dependency
|
|
15
13
|
name: paperclip
|
|
16
14
|
requirement: !ruby/object:Gem::Requirement
|
|
17
|
-
none: false
|
|
18
15
|
requirements:
|
|
19
|
-
- -
|
|
16
|
+
- - ">="
|
|
20
17
|
- !ruby/object:Gem::Version
|
|
21
18
|
version: '0'
|
|
22
19
|
type: :runtime
|
|
23
20
|
prerelease: false
|
|
24
21
|
version_requirements: !ruby/object:Gem::Requirement
|
|
25
|
-
none: false
|
|
26
22
|
requirements:
|
|
27
|
-
- -
|
|
23
|
+
- - ">="
|
|
28
24
|
- !ruby/object:Gem::Version
|
|
29
25
|
version: '0'
|
|
30
26
|
- !ruby/object:Gem::Dependency
|
|
31
27
|
name: rspec
|
|
32
28
|
requirement: !ruby/object:Gem::Requirement
|
|
33
|
-
none: false
|
|
34
29
|
requirements:
|
|
35
|
-
- -
|
|
30
|
+
- - ">="
|
|
36
31
|
- !ruby/object:Gem::Version
|
|
37
32
|
version: '0'
|
|
38
33
|
type: :development
|
|
39
34
|
prerelease: false
|
|
40
35
|
version_requirements: !ruby/object:Gem::Requirement
|
|
41
|
-
none: false
|
|
42
36
|
requirements:
|
|
43
|
-
- -
|
|
37
|
+
- - ">="
|
|
44
38
|
- !ruby/object:Gem::Version
|
|
45
39
|
version: '0'
|
|
46
40
|
- !ruby/object:Gem::Dependency
|
|
47
41
|
name: sqlite3
|
|
48
42
|
requirement: !ruby/object:Gem::Requirement
|
|
49
|
-
none: false
|
|
50
43
|
requirements:
|
|
51
|
-
- -
|
|
44
|
+
- - ">="
|
|
52
45
|
- !ruby/object:Gem::Version
|
|
53
46
|
version: '0'
|
|
54
47
|
type: :development
|
|
55
48
|
prerelease: false
|
|
56
49
|
version_requirements: !ruby/object:Gem::Requirement
|
|
57
|
-
none: false
|
|
58
50
|
requirements:
|
|
59
|
-
- -
|
|
51
|
+
- - ">="
|
|
60
52
|
- !ruby/object:Gem::Version
|
|
61
53
|
version: '0'
|
|
62
54
|
- !ruby/object:Gem::Dependency
|
|
63
55
|
name: rails
|
|
64
56
|
requirement: !ruby/object:Gem::Requirement
|
|
65
|
-
none: false
|
|
66
57
|
requirements:
|
|
67
|
-
- -
|
|
58
|
+
- - ">="
|
|
68
59
|
- !ruby/object:Gem::Version
|
|
69
|
-
version: '0'
|
|
60
|
+
version: '5.0'
|
|
70
61
|
type: :development
|
|
71
62
|
prerelease: false
|
|
72
63
|
version_requirements: !ruby/object:Gem::Requirement
|
|
73
|
-
none: false
|
|
74
64
|
requirements:
|
|
75
|
-
- -
|
|
65
|
+
- - ">="
|
|
76
66
|
- !ruby/object:Gem::Version
|
|
77
|
-
version: '0'
|
|
67
|
+
version: '5.0'
|
|
78
68
|
- !ruby/object:Gem::Dependency
|
|
79
69
|
name: yard
|
|
80
70
|
requirement: !ruby/object:Gem::Requirement
|
|
81
|
-
none: false
|
|
82
71
|
requirements:
|
|
83
|
-
- -
|
|
72
|
+
- - ">="
|
|
84
73
|
- !ruby/object:Gem::Version
|
|
85
74
|
version: '0'
|
|
86
75
|
type: :development
|
|
87
76
|
prerelease: false
|
|
88
77
|
version_requirements: !ruby/object:Gem::Requirement
|
|
89
|
-
none: false
|
|
90
78
|
requirements:
|
|
91
|
-
- -
|
|
79
|
+
- - ">="
|
|
92
80
|
- !ruby/object:Gem::Version
|
|
93
81
|
version: '0'
|
|
94
82
|
- !ruby/object:Gem::Dependency
|
|
95
83
|
name: redcarpet
|
|
96
84
|
requirement: !ruby/object:Gem::Requirement
|
|
97
|
-
none: false
|
|
98
85
|
requirements:
|
|
99
|
-
- -
|
|
86
|
+
- - ">="
|
|
100
87
|
- !ruby/object:Gem::Version
|
|
101
88
|
version: '0'
|
|
102
89
|
type: :development
|
|
103
90
|
prerelease: false
|
|
104
91
|
version_requirements: !ruby/object:Gem::Requirement
|
|
105
|
-
none: false
|
|
106
92
|
requirements:
|
|
107
|
-
- -
|
|
93
|
+
- - ">="
|
|
108
94
|
- !ruby/object:Gem::Version
|
|
109
95
|
version: '0'
|
|
110
96
|
- !ruby/object:Gem::Dependency
|
|
111
97
|
name: bundler
|
|
112
98
|
requirement: !ruby/object:Gem::Requirement
|
|
113
|
-
none: false
|
|
114
99
|
requirements:
|
|
115
|
-
- -
|
|
100
|
+
- - ">="
|
|
116
101
|
- !ruby/object:Gem::Version
|
|
117
102
|
version: '0'
|
|
118
103
|
type: :development
|
|
119
104
|
prerelease: false
|
|
120
105
|
version_requirements: !ruby/object:Gem::Requirement
|
|
121
|
-
none: false
|
|
122
106
|
requirements:
|
|
123
|
-
- -
|
|
107
|
+
- - ">="
|
|
124
108
|
- !ruby/object:Gem::Version
|
|
125
109
|
version: '0'
|
|
126
110
|
- !ruby/object:Gem::Dependency
|
|
127
|
-
name:
|
|
111
|
+
name: juwelier
|
|
128
112
|
requirement: !ruby/object:Gem::Requirement
|
|
129
|
-
none: false
|
|
130
113
|
requirements:
|
|
131
|
-
- -
|
|
114
|
+
- - ">="
|
|
132
115
|
- !ruby/object:Gem::Version
|
|
133
116
|
version: '0'
|
|
134
117
|
type: :development
|
|
135
118
|
prerelease: false
|
|
136
119
|
version_requirements: !ruby/object:Gem::Requirement
|
|
137
|
-
none: false
|
|
138
120
|
requirements:
|
|
139
|
-
- -
|
|
121
|
+
- - ">="
|
|
140
122
|
- !ruby/object:Gem::Version
|
|
141
123
|
version: '0'
|
|
142
124
|
description: This gem adds a mixin allowing you to forgo uploading a replacement Paperclip
|
|
@@ -148,9 +130,10 @@ extra_rdoc_files:
|
|
|
148
130
|
- LICENSE.txt
|
|
149
131
|
- README.md
|
|
150
132
|
files:
|
|
151
|
-
- .document
|
|
152
|
-
- .rspec
|
|
153
|
-
- .
|
|
133
|
+
- ".document"
|
|
134
|
+
- ".rspec"
|
|
135
|
+
- ".ruby-gemset"
|
|
136
|
+
- ".ruby-version"
|
|
154
137
|
- Gemfile
|
|
155
138
|
- Gemfile.lock
|
|
156
139
|
- LICENSE.txt
|
|
@@ -166,30 +149,32 @@ files:
|
|
|
166
149
|
homepage: http://github.com/RISCfuture/paperclip_duplicate_check
|
|
167
150
|
licenses:
|
|
168
151
|
- MIT
|
|
169
|
-
|
|
152
|
+
metadata: {}
|
|
153
|
+
post_install_message: |2+
|
|
154
|
+
|
|
155
|
+
⚠️ DEPRECATED: paperclip_duplicate_check is no longer maintained.
|
|
156
|
+
|
|
157
|
+
No longer maintained. Paperclip itself has been deprecated upstream in favor of ActiveStorage; for duplicate detection on ActiveStorage attachments, use checksums directly.
|
|
158
|
+
|
|
159
|
+
This is the final release. No further updates are planned.
|
|
160
|
+
|
|
170
161
|
rdoc_options: []
|
|
171
162
|
require_paths:
|
|
172
163
|
- lib
|
|
173
164
|
required_ruby_version: !ruby/object:Gem::Requirement
|
|
174
|
-
none: false
|
|
175
165
|
requirements:
|
|
176
|
-
- -
|
|
166
|
+
- - ">="
|
|
177
167
|
- !ruby/object:Gem::Version
|
|
178
168
|
version: '0'
|
|
179
|
-
segments:
|
|
180
|
-
- 0
|
|
181
|
-
hash: -2227327769610888350
|
|
182
169
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
183
|
-
none: false
|
|
184
170
|
requirements:
|
|
185
|
-
- -
|
|
171
|
+
- - ">="
|
|
186
172
|
- !ruby/object:Gem::Version
|
|
187
173
|
version: '0'
|
|
188
174
|
requirements: []
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
summary: Skips uploading a Paperclip attachment if it's identical to the one already
|
|
194
|
-
uploaded
|
|
175
|
+
rubygems_version: 4.0.11
|
|
176
|
+
specification_version: 4
|
|
177
|
+
summary: "[DEPRECATED] Skips uploading a Paperclip attachment if it's identical to
|
|
178
|
+
the one already uploaded"
|
|
195
179
|
test_files: []
|
|
180
|
+
...
|
data/.rvmrc
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
rvm 1.9.3@paperclip_dup --create
|