card-mod-carrierwave 0.16.0 → 0.17.0
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/config/admin.yml +4 -0
- data/lib/carrier_wave/card_mount.rb +26 -17
- data/lib/carrier_wave/file_card_uploader.rb +25 -6
- data/lib/carrier_wave/image_card_uploader.rb +2 -2
- data/set/abstract/attachment/coded.rb +5 -1
- data/set/type/file.rb +13 -1
- metadata +31 -16
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 88a2af21e5caf0c6c695e722cc3a97b27366a0efa2d52f5e13bb1722ec979731
|
4
|
+
data.tar.gz: cf3f344bd209ddf88b85b4b037660254ab8c82aea5cf0d0138c8f1fa31b40165
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 259779a3dbf7d7bbe4106a9630f2afd8fdcee17bb2283f3f99504e533368d02f534fbd0269708f74dce01c9bc995587faebfc8c682ac7975683e6f29bfedc9ee
|
7
|
+
data.tar.gz: 71ad7c23e067986dcc1cc6f3f4301f2e87806dc83cab3763dc77658bc029ed570e75fd098cfe3d4418655228419e078dd878cc4050bdaf2fc4a61fec2d33241d
|
data/config/admin.yml
ADDED
@@ -1,7 +1,10 @@
|
|
1
1
|
require "carrierwave"
|
2
2
|
|
3
3
|
module CarrierWave
|
4
|
-
#
|
4
|
+
# Adapt carrierwave mount to cards.
|
5
|
+
# We translate the active record hooks in
|
6
|
+
# https://github.com/carrierwaveuploader/carrierwave/blob/v3.0.5/lib/carrierwave/orm/activerecord.rb
|
7
|
+
# to card events.
|
5
8
|
module CardMount
|
6
9
|
include CarrierWave::Mount
|
7
10
|
|
@@ -18,14 +21,12 @@ module CarrierWave
|
|
18
21
|
super
|
19
22
|
|
20
23
|
class_eval <<-RUBY, __FILE__, __LINE__ + 1
|
21
|
-
event :store_#{column}_event, :finalize,
|
22
|
-
on: :save, when: :store_#{column}_event? do
|
24
|
+
event :store_#{column}_event, :finalize, when: :store_#{column}_event? do
|
23
25
|
store_#{column}!
|
24
26
|
end
|
25
27
|
|
26
28
|
# remove files only if card has no history
|
27
|
-
event :remove_#{column}_event, :finalize,
|
28
|
-
on: :delete, when: proc { |c| !c.history? } do
|
29
|
+
event :remove_#{column}_event, :finalize, on: :delete, when: :no_history? do
|
29
30
|
remove_#{column}!
|
30
31
|
end
|
31
32
|
|
@@ -33,13 +34,13 @@ module CarrierWave
|
|
33
34
|
mark_remove_#{column}_false
|
34
35
|
end
|
35
36
|
|
36
|
-
event :
|
37
|
-
|
38
|
-
|
37
|
+
event :reset_previous_changes_for_#{column}_event, :finalize,
|
38
|
+
when: :no_history? do
|
39
|
+
reset_previous_changes_for_#{column}
|
39
40
|
end
|
40
41
|
|
41
|
-
event :remove_previously_stored_#{column}_event, :finalize,
|
42
|
-
|
42
|
+
event :remove_previously_stored_#{column}_event, :finalize, on: :update,
|
43
|
+
when: :no_history? do
|
43
44
|
remove_previously_stored_#{column}
|
44
45
|
end
|
45
46
|
|
@@ -61,13 +62,8 @@ module CarrierWave
|
|
61
62
|
"#{column}".to_sym
|
62
63
|
end
|
63
64
|
|
64
|
-
def read_uploader *args
|
65
|
-
|
66
|
-
end
|
67
|
-
|
68
|
-
def write_uploader *args
|
69
|
-
write_attribute *args
|
70
|
-
end
|
65
|
+
def read_uploader *args; read_attribute *args; end
|
66
|
+
def write_uploader *args; write_attribute *args; end
|
71
67
|
|
72
68
|
def #{column}=(new_file)
|
73
69
|
return if new_file.blank?
|
@@ -128,7 +124,20 @@ module CarrierWave
|
|
128
124
|
end
|
129
125
|
end
|
130
126
|
end
|
127
|
+
|
128
|
+
def reload(*)
|
129
|
+
@_mounters = nil
|
130
|
+
super
|
131
|
+
end
|
131
132
|
RUBY
|
132
133
|
end
|
133
134
|
end
|
135
|
+
|
136
|
+
# The temporary identifiers from Carrierwave's mounters kill CardMount;
|
137
|
+
# We don't seem to need them.
|
138
|
+
class Mounter
|
139
|
+
def write_temporary_identifier
|
140
|
+
# noop
|
141
|
+
end
|
142
|
+
end
|
134
143
|
end
|
@@ -175,6 +175,10 @@ module CarrierWave
|
|
175
175
|
end
|
176
176
|
end
|
177
177
|
|
178
|
+
def temporary_identifier
|
179
|
+
db_content
|
180
|
+
end
|
181
|
+
|
178
182
|
# @option opts [Symbol] :absolute - return absolute url
|
179
183
|
def url opts={}
|
180
184
|
if model.cloud?
|
@@ -234,13 +238,26 @@ module CarrierWave
|
|
234
238
|
class SanitizedFile
|
235
239
|
def content_type
|
236
240
|
# the original content_type method doesn't seem to be very reliable
|
237
|
-
# It uses
|
238
|
-
#
|
239
|
-
# use it as the third option)
|
241
|
+
# It uses declared_content_type - which sometimes returns "text/plain" for asset
|
242
|
+
# files for unknown reasons. (we switch the order and use it as the third option)
|
240
243
|
@content_type ||=
|
241
|
-
|
242
|
-
|
243
|
-
|
244
|
+
guessed_safe_content_type ||
|
245
|
+
identified_content_type ||
|
246
|
+
declared_content_type ||
|
247
|
+
Marcel::MimeType::BINARY
|
248
|
+
end
|
249
|
+
|
250
|
+
def guessed_safe_content_type
|
251
|
+
# overrides the default method which was returning "application/javascript" instead
|
252
|
+
# of "text/javascript" for our .js files.
|
253
|
+
return unless path
|
254
|
+
|
255
|
+
type = Marcel::Magic.by_path(original_filename).to_s
|
256
|
+
if type.start_with? "text/", "application/json'"
|
257
|
+
type
|
258
|
+
elsif type == "application/javascript"
|
259
|
+
"text/javascript"
|
260
|
+
end
|
244
261
|
end
|
245
262
|
end
|
246
263
|
|
@@ -254,6 +271,8 @@ module CarrierWave
|
|
254
271
|
# put version at the end of the filename
|
255
272
|
def full_filename for_file
|
256
273
|
name = super(for_file)
|
274
|
+
return unless name.present?
|
275
|
+
|
257
276
|
parts = name.split "."
|
258
277
|
basename = [parts.shift, version_name].compact.join("-")
|
259
278
|
"#{basename}.#{parts.join('.')}"
|
@@ -3,7 +3,7 @@ require "mini_magick"
|
|
3
3
|
module CarrierWave
|
4
4
|
# Adds image specific version handling to {FileCardUploader}.
|
5
5
|
# The ImageCardUploader creates five versions of different sizes when it
|
6
|
-
# uploads an
|
6
|
+
# uploads an image file:
|
7
7
|
# icon (16x16), small (75x75), medium (200X200), large (500x500) and
|
8
8
|
# the original size.
|
9
9
|
class ImageCardUploader < FileCardUploader
|
@@ -48,7 +48,7 @@ module CarrierWave
|
|
48
48
|
# add 'original' if no version is given
|
49
49
|
def full_filename for_file
|
50
50
|
name = super(for_file)
|
51
|
-
if version_name
|
51
|
+
if name.blank? || version_name
|
52
52
|
name
|
53
53
|
else
|
54
54
|
parts = name.split "."
|
@@ -29,13 +29,17 @@ def storage_type_error error_name
|
|
29
29
|
end
|
30
30
|
|
31
31
|
def mod_from_content
|
32
|
-
if (m = content
|
32
|
+
if (m = mod_name_match content)
|
33
33
|
m[1] # current mod_file format
|
34
34
|
else
|
35
35
|
mod_from_deprecated_content
|
36
36
|
end
|
37
37
|
end
|
38
38
|
|
39
|
+
def mod_name_match cont
|
40
|
+
cont&.match %r{^:[^/]+/([^.]+)}
|
41
|
+
end
|
42
|
+
|
39
43
|
# place for files of mod file cards
|
40
44
|
def coded_dir new_mod=nil
|
41
45
|
dir = File.join mod_dir(new_mod), MOD_FILE_DIR, codename.to_s
|
data/set/type/file.rb
CHANGED
@@ -69,12 +69,24 @@ format :file do
|
|
69
69
|
args_for_send_file
|
70
70
|
end
|
71
71
|
|
72
|
+
private
|
73
|
+
|
72
74
|
def args_for_send_file
|
73
75
|
file = selected_version
|
74
76
|
[file.path, { type: file.content_type,
|
75
77
|
filename: "#{card.name.safe_key}#{file.extension}",
|
76
78
|
x_sendfile: true,
|
77
|
-
disposition:
|
79
|
+
disposition: disposition }]
|
80
|
+
end
|
81
|
+
|
82
|
+
def disposition
|
83
|
+
if params[:disposition]
|
84
|
+
params[:disposition]
|
85
|
+
elsif params[:format] == "file"
|
86
|
+
"attachment"
|
87
|
+
else
|
88
|
+
"inline"
|
89
|
+
end
|
78
90
|
end
|
79
91
|
|
80
92
|
def set_response_headers
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: card-mod-carrierwave
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.17.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ethan McCutchen
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2024-06-12 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: card
|
@@ -18,84 +18,98 @@ dependencies:
|
|
18
18
|
requirements:
|
19
19
|
- - '='
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version: 1.
|
21
|
+
version: 1.107.0
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
25
|
requirements:
|
26
26
|
- - '='
|
27
27
|
- !ruby/object:Gem::Version
|
28
|
-
version: 1.
|
28
|
+
version: 1.107.0
|
29
29
|
- !ruby/object:Gem::Dependency
|
30
30
|
name: carrierwave
|
31
31
|
requirement: !ruby/object:Gem::Requirement
|
32
32
|
requirements:
|
33
33
|
- - "~>"
|
34
34
|
- !ruby/object:Gem::Version
|
35
|
-
version: '
|
35
|
+
version: '3.0'
|
36
36
|
type: :runtime
|
37
37
|
prerelease: false
|
38
38
|
version_requirements: !ruby/object:Gem::Requirement
|
39
39
|
requirements:
|
40
40
|
- - "~>"
|
41
41
|
- !ruby/object:Gem::Version
|
42
|
-
version: '
|
42
|
+
version: '3.0'
|
43
43
|
- !ruby/object:Gem::Dependency
|
44
44
|
name: mini_magick
|
45
45
|
requirement: !ruby/object:Gem::Requirement
|
46
46
|
requirements:
|
47
47
|
- - "~>"
|
48
48
|
- !ruby/object:Gem::Version
|
49
|
-
version: '4.
|
49
|
+
version: '4.12'
|
50
50
|
type: :runtime
|
51
51
|
prerelease: false
|
52
52
|
version_requirements: !ruby/object:Gem::Requirement
|
53
53
|
requirements:
|
54
54
|
- - "~>"
|
55
55
|
- !ruby/object:Gem::Version
|
56
|
-
version: '4.
|
56
|
+
version: '4.12'
|
57
57
|
- !ruby/object:Gem::Dependency
|
58
58
|
name: ssrf_filter
|
59
59
|
requirement: !ruby/object:Gem::Requirement
|
60
60
|
requirements:
|
61
61
|
- - "~>"
|
62
62
|
- !ruby/object:Gem::Version
|
63
|
-
version: 1.
|
63
|
+
version: '1.1'
|
64
64
|
type: :runtime
|
65
65
|
prerelease: false
|
66
66
|
version_requirements: !ruby/object:Gem::Requirement
|
67
67
|
requirements:
|
68
68
|
- - "~>"
|
69
69
|
- !ruby/object:Gem::Version
|
70
|
-
version: 1.
|
70
|
+
version: '1.1'
|
71
|
+
- !ruby/object:Gem::Dependency
|
72
|
+
name: marcel
|
73
|
+
requirement: !ruby/object:Gem::Requirement
|
74
|
+
requirements:
|
75
|
+
- - '='
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: 1.0.2
|
78
|
+
type: :runtime
|
79
|
+
prerelease: false
|
80
|
+
version_requirements: !ruby/object:Gem::Requirement
|
81
|
+
requirements:
|
82
|
+
- - '='
|
83
|
+
- !ruby/object:Gem::Version
|
84
|
+
version: 1.0.2
|
71
85
|
- !ruby/object:Gem::Dependency
|
72
86
|
name: card-mod-history
|
73
87
|
requirement: !ruby/object:Gem::Requirement
|
74
88
|
requirements:
|
75
89
|
- - '='
|
76
90
|
- !ruby/object:Gem::Version
|
77
|
-
version: 0.
|
91
|
+
version: 0.17.0
|
78
92
|
type: :runtime
|
79
93
|
prerelease: false
|
80
94
|
version_requirements: !ruby/object:Gem::Requirement
|
81
95
|
requirements:
|
82
96
|
- - '='
|
83
97
|
- !ruby/object:Gem::Version
|
84
|
-
version: 0.
|
98
|
+
version: 0.17.0
|
85
99
|
- !ruby/object:Gem::Dependency
|
86
100
|
name: card-mod-permissions
|
87
101
|
requirement: !ruby/object:Gem::Requirement
|
88
102
|
requirements:
|
89
103
|
- - '='
|
90
104
|
- !ruby/object:Gem::Version
|
91
|
-
version: 0.
|
105
|
+
version: 0.17.0
|
92
106
|
type: :runtime
|
93
107
|
prerelease: false
|
94
108
|
version_requirements: !ruby/object:Gem::Requirement
|
95
109
|
requirements:
|
96
110
|
- - '='
|
97
111
|
- !ruby/object:Gem::Version
|
98
|
-
version: 0.
|
112
|
+
version: 0.17.0
|
99
113
|
description: ''
|
100
114
|
email:
|
101
115
|
- info@decko.org
|
@@ -107,6 +121,7 @@ files:
|
|
107
121
|
- README.md
|
108
122
|
- assets/script/upload.js.coffee
|
109
123
|
- assets/style/file.scss
|
124
|
+
- config/admin.yml
|
110
125
|
- config/early/carrierwave.rb
|
111
126
|
- config/early/mini_magick.rb
|
112
127
|
- config/locales/de.yml
|
@@ -173,14 +188,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
173
188
|
requirements:
|
174
189
|
- - ">="
|
175
190
|
- !ruby/object:Gem::Version
|
176
|
-
version: '
|
191
|
+
version: '3.0'
|
177
192
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
178
193
|
requirements:
|
179
194
|
- - ">="
|
180
195
|
- !ruby/object:Gem::Version
|
181
196
|
version: '0'
|
182
197
|
requirements: []
|
183
|
-
rubygems_version: 3.
|
198
|
+
rubygems_version: 3.5.10
|
184
199
|
signing_key:
|
185
200
|
specification_version: 4
|
186
201
|
summary: File and Image handling
|