file_validators 2.0.2 → 3.0.0.beta2
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 +5 -5
- data/.gitignore +3 -0
- data/.rubocop.yml +32 -0
- data/.tool-versions +1 -0
- data/.travis.yml +33 -5
- data/Appraisals +16 -10
- data/CHANGELOG.md +26 -0
- data/Gemfile +2 -0
- data/README.md +32 -21
- data/Rakefile +3 -1
- data/file_validators.gemspec +13 -7
- data/gemfiles/activemodel_3.2.gemfile +2 -1
- data/gemfiles/activemodel_4.0.gemfile +2 -1
- data/gemfiles/activemodel_4.1.gemfile +1 -0
- data/gemfiles/activemodel_4.2.gemfile +2 -1
- data/gemfiles/{activemodel_3.0.gemfile → activemodel_5.0.gemfile} +1 -1
- data/gemfiles/{activemodel_3.1.gemfile → activemodel_5.2.gemfile} +1 -1
- data/lib/file_validators.rb +11 -2
- data/lib/file_validators/error.rb +6 -0
- data/lib/file_validators/locale/en.yml +0 -2
- data/lib/file_validators/mime_type_analyzer.rb +106 -0
- data/lib/file_validators/validators/file_content_type_validator.rb +37 -42
- data/lib/file_validators/validators/file_size_validator.rb +62 -19
- data/lib/file_validators/version.rb +3 -1
- data/spec/integration/combined_validators_integration_spec.rb +3 -1
- data/spec/integration/file_content_type_validation_integration_spec.rb +117 -11
- data/spec/integration/file_size_validator_integration_spec.rb +100 -10
- data/spec/lib/file_validators/mime_type_analyzer_spec.rb +139 -0
- data/spec/lib/file_validators/validators/file_content_type_validator_spec.rb +93 -36
- data/spec/lib/file_validators/validators/file_size_validator_spec.rb +87 -34
- data/spec/spec_helper.rb +9 -1
- data/spec/support/fakeio.rb +17 -0
- data/spec/support/helpers.rb +7 -0
- data/spec/support/matchers/allow_content_type.rb +2 -0
- data/spec/support/matchers/allow_file_size.rb +2 -0
- metadata +87 -27
- data/lib/file_validators/utils/content_type_detector.rb +0 -46
- data/lib/file_validators/utils/media_type_spoof_detector.rb +0 -46
- data/spec/lib/file_validators/utils/content_type_detector_spec.rb +0 -27
- data/spec/lib/file_validators/utils/media_type_spoof_detector_spec.rb +0 -31
@@ -1,5 +1,6 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'spec_helper'
|
2
|
-
require 'file_validators/validators/file_size_validator'
|
3
4
|
|
4
5
|
describe ActiveModel::Validations::FileSizeValidator do
|
5
6
|
class Dummy
|
@@ -8,9 +9,9 @@ describe ActiveModel::Validations::FileSizeValidator do
|
|
8
9
|
|
9
10
|
def storage_units
|
10
11
|
if defined?(ActiveSupport::NumberHelper) # Rails 4.0+
|
11
|
-
{ 5120 => '5 KB',
|
12
|
+
{ 5120 => '5 KB', 10_240 => '10 KB' }
|
12
13
|
else
|
13
|
-
{ 5120 => '5120 Bytes',
|
14
|
+
{ 5120 => '5120 Bytes', 10_240 => '10240 Bytes' }
|
14
15
|
end
|
15
16
|
end
|
16
17
|
|
@@ -21,7 +22,7 @@ describe ActiveModel::Validations::FileSizeValidator do
|
|
21
22
|
subject { Dummy }
|
22
23
|
|
23
24
|
def build_validator(options)
|
24
|
-
@validator =
|
25
|
+
@validator = described_class.new(options.merge(attributes: :avatar))
|
25
26
|
end
|
26
27
|
|
27
28
|
context 'with :in option' do
|
@@ -34,7 +35,7 @@ describe ActiveModel::Validations::FileSizeValidator do
|
|
34
35
|
end
|
35
36
|
|
36
37
|
context 'as a proc' do
|
37
|
-
before { build_validator in:
|
38
|
+
before { build_validator in: ->(_record) { (5.kilobytes..10.kilobytes) } }
|
38
39
|
|
39
40
|
it { is_expected.to allow_file_size(7.kilobytes, @validator) }
|
40
41
|
it { is_expected.not_to allow_file_size(4.kilobytes, @validator) }
|
@@ -52,7 +53,7 @@ describe ActiveModel::Validations::FileSizeValidator do
|
|
52
53
|
end
|
53
54
|
|
54
55
|
context 'as a proc' do
|
55
|
-
before { build_validator greater_than_or_equal_to:
|
56
|
+
before { build_validator greater_than_or_equal_to: ->(_record) { 10.kilobytes } }
|
56
57
|
|
57
58
|
it { is_expected.to allow_file_size(11.kilobytes, @validator) }
|
58
59
|
it { is_expected.to allow_file_size(10.kilobytes, @validator) }
|
@@ -70,7 +71,7 @@ describe ActiveModel::Validations::FileSizeValidator do
|
|
70
71
|
end
|
71
72
|
|
72
73
|
context 'as a proc' do
|
73
|
-
before { build_validator less_than_or_equal_to:
|
74
|
+
before { build_validator less_than_or_equal_to: ->(_record) { 10.kilobytes } }
|
74
75
|
|
75
76
|
it { is_expected.to allow_file_size(9.kilobytes, @validator) }
|
76
77
|
it { is_expected.to allow_file_size(10.kilobytes, @validator) }
|
@@ -87,7 +88,7 @@ describe ActiveModel::Validations::FileSizeValidator do
|
|
87
88
|
end
|
88
89
|
|
89
90
|
context 'as a proc' do
|
90
|
-
before { build_validator greater_than:
|
91
|
+
before { build_validator greater_than: ->(_record) { 10.kilobytes } }
|
91
92
|
|
92
93
|
it { is_expected.to allow_file_size(11.kilobytes, @validator) }
|
93
94
|
it { is_expected.not_to allow_file_size(10.kilobytes, @validator) }
|
@@ -103,7 +104,7 @@ describe ActiveModel::Validations::FileSizeValidator do
|
|
103
104
|
end
|
104
105
|
|
105
106
|
context 'as a proc' do
|
106
|
-
before { build_validator less_than:
|
107
|
+
before { build_validator less_than: ->(_record) { 10.kilobytes } }
|
107
108
|
|
108
109
|
it { is_expected.to allow_file_size(9.kilobytes, @validator) }
|
109
110
|
it { is_expected.not_to allow_file_size(10.kilobytes, @validator) }
|
@@ -120,8 +121,10 @@ describe ActiveModel::Validations::FileSizeValidator do
|
|
120
121
|
end
|
121
122
|
|
122
123
|
context 'as a proc' do
|
123
|
-
before
|
124
|
-
|
124
|
+
before do
|
125
|
+
build_validator greater_than: ->(_record) { 5.kilobytes },
|
126
|
+
less_than: ->(_record) { 10.kilobytes }
|
127
|
+
end
|
125
128
|
|
126
129
|
it { is_expected.to allow_file_size(7.kilobytes, @validator) }
|
127
130
|
it { is_expected.not_to allow_file_size(5.kilobytes, @validator) }
|
@@ -130,51 +133,101 @@ describe ActiveModel::Validations::FileSizeValidator do
|
|
130
133
|
end
|
131
134
|
|
132
135
|
context 'with :message option' do
|
133
|
-
before
|
134
|
-
|
136
|
+
before do
|
137
|
+
build_validator in: (5.kilobytes..10.kilobytes),
|
138
|
+
message: 'is invalid. (Between %{min} and %{max} please.)'
|
139
|
+
end
|
135
140
|
|
136
|
-
it
|
137
|
-
|
141
|
+
it do
|
142
|
+
is_expected.not_to allow_file_size(
|
143
|
+
11.kilobytes, @validator,
|
144
|
+
message: "Avatar is invalid. (Between #{@storage_units[5120]}" \
|
145
|
+
" and #{@storage_units[10_240]} please.)"
|
146
|
+
)
|
147
|
+
end
|
138
148
|
|
139
|
-
it
|
140
|
-
|
149
|
+
it do
|
150
|
+
is_expected.to allow_file_size(
|
151
|
+
7.kilobytes, @validator,
|
152
|
+
message: "Avatar is invalid. (Between #{@storage_units[5120]}" \
|
153
|
+
" and #{@storage_units[10_240]} please.)"
|
154
|
+
)
|
155
|
+
end
|
141
156
|
end
|
142
157
|
|
143
158
|
context 'default error message' do
|
144
159
|
context 'given :in options' do
|
145
160
|
before { build_validator in: 5.kilobytes..10.kilobytes }
|
146
161
|
|
147
|
-
it
|
148
|
-
|
149
|
-
|
150
|
-
|
162
|
+
it do
|
163
|
+
is_expected.not_to allow_file_size(
|
164
|
+
11.kilobytes, @validator,
|
165
|
+
message: "Avatar file size must be between #{@storage_units[5120]}" \
|
166
|
+
" and #{@storage_units[10_240]}"
|
167
|
+
)
|
168
|
+
end
|
169
|
+
|
170
|
+
it do
|
171
|
+
is_expected.not_to allow_file_size(
|
172
|
+
4.kilobytes, @validator,
|
173
|
+
message: "Avatar file size must be between #{@storage_units[5120]}" \
|
174
|
+
" and #{@storage_units[10_240]}"
|
175
|
+
)
|
176
|
+
end
|
151
177
|
end
|
152
178
|
|
153
179
|
context 'given :greater_than and :less_than options' do
|
154
180
|
before { build_validator greater_than: 5.kilobytes, less_than: 10.kilobytes }
|
155
181
|
|
156
|
-
it
|
157
|
-
|
158
|
-
|
159
|
-
|
182
|
+
it do
|
183
|
+
is_expected.not_to allow_file_size(
|
184
|
+
11.kilobytes, @validator,
|
185
|
+
message: "Avatar file size must be less than #{@storage_units[10_240]}"
|
186
|
+
)
|
187
|
+
end
|
188
|
+
|
189
|
+
it do
|
190
|
+
is_expected.not_to allow_file_size(
|
191
|
+
4.kilobytes, @validator,
|
192
|
+
message: "Avatar file size must be greater than #{@storage_units[5120]}"
|
193
|
+
)
|
194
|
+
end
|
160
195
|
end
|
161
196
|
|
162
197
|
context 'given :greater_than_or_equal_to and :less_than_or_equal_to options' do
|
163
|
-
before
|
198
|
+
before do
|
199
|
+
build_validator greater_than_or_equal_to: 5.kilobytes,
|
200
|
+
less_than_or_equal_to: 10.kilobytes
|
201
|
+
end
|
202
|
+
|
203
|
+
it do
|
204
|
+
is_expected.not_to allow_file_size(
|
205
|
+
11.kilobytes, @validator,
|
206
|
+
message: "Avatar file size must be less than or equal to #{@storage_units[10_240]}"
|
207
|
+
)
|
208
|
+
end
|
164
209
|
|
165
|
-
it
|
166
|
-
|
167
|
-
|
168
|
-
|
210
|
+
it do
|
211
|
+
is_expected.not_to allow_file_size(
|
212
|
+
4.kilobytes, @validator,
|
213
|
+
message: "Avatar file size must be greater than or equal to #{@storage_units[5120]}"
|
214
|
+
)
|
215
|
+
end
|
169
216
|
end
|
170
217
|
end
|
171
218
|
|
219
|
+
context 'exceptional file size' do
|
220
|
+
before { build_validator less_than: 3.kilobytes }
|
221
|
+
|
222
|
+
it { is_expected.to allow_file_size(0, @validator) } # zero-byte file
|
223
|
+
it { is_expected.not_to allow_file_size(nil, @validator) }
|
224
|
+
end
|
172
225
|
|
173
226
|
context 'using the helper' do
|
174
227
|
before { Dummy.validates_file_size :avatar, in: (5.kilobytes..10.kilobytes) }
|
175
228
|
|
176
229
|
it 'adds the validator to the class' do
|
177
|
-
expect(Dummy.validators_on(:avatar)).to include(
|
230
|
+
expect(Dummy.validators_on(:avatar)).to include(described_class)
|
178
231
|
end
|
179
232
|
end
|
180
233
|
|
@@ -183,10 +236,10 @@ describe ActiveModel::Validations::FileSizeValidator do
|
|
183
236
|
expect { build_validator message: 'Some message' }.to raise_error(ArgumentError)
|
184
237
|
end
|
185
238
|
|
186
|
-
(
|
239
|
+
(described_class::CHECKS.keys - [:in]).each do |argument|
|
187
240
|
it "does not raise argument error if :#{argument} is numeric or a proc" do
|
188
241
|
expect { build_validator argument => 5.kilobytes }.not_to raise_error
|
189
|
-
expect { build_validator argument =>
|
242
|
+
expect { build_validator argument => ->(_record) { 5.kilobytes } }.not_to raise_error
|
190
243
|
end
|
191
244
|
|
192
245
|
it "raises error if :#{argument} is neither a number nor a proc" do
|
@@ -196,7 +249,7 @@ describe ActiveModel::Validations::FileSizeValidator do
|
|
196
249
|
|
197
250
|
it 'does not raise argument error if :in is a range or a proc' do
|
198
251
|
expect { build_validator in: 5.kilobytes..10.kilobytes }.not_to raise_error
|
199
|
-
expect { build_validator in:
|
252
|
+
expect { build_validator in: ->(_record) { 5.kilobytes..10.kilobytes } }.not_to raise_error
|
200
253
|
end
|
201
254
|
|
202
255
|
it 'raises error if :in is neither a range nor a proc' do
|
data/spec/spec_helper.rb
CHANGED
@@ -1,8 +1,11 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
ENV['RAILS_ENV'] ||= 'test'
|
2
4
|
|
3
5
|
require 'active_support'
|
6
|
+
require 'active_support/deprecation'
|
4
7
|
require 'active_support/core_ext'
|
5
|
-
|
8
|
+
require 'file_validators'
|
6
9
|
require 'rspec'
|
7
10
|
require 'coveralls'
|
8
11
|
|
@@ -10,8 +13,13 @@ Coveralls.wear!
|
|
10
13
|
|
11
14
|
locale_path = Dir.glob(File.dirname(__FILE__) + '/locale/*.yml')
|
12
15
|
I18n.load_path += locale_path unless I18n.load_path.include?(locale_path)
|
16
|
+
I18n.enforce_available_locales = false
|
13
17
|
|
14
18
|
Dir[File.join(File.dirname(__FILE__), 'support/**/*.rb')].each { |f| require f }
|
15
19
|
|
16
20
|
RSpec.configure do |config|
|
21
|
+
config.include Helpers
|
22
|
+
|
23
|
+
# Suppress stdout in the console
|
24
|
+
config.before { allow($stdout).to receive(:write) }
|
17
25
|
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'forwardable'
|
4
|
+
require 'stringio'
|
5
|
+
|
6
|
+
class FakeIO
|
7
|
+
attr_reader :original_filename, :content_type
|
8
|
+
|
9
|
+
def initialize(content, filename: nil, content_type: nil)
|
10
|
+
@io = StringIO.new(content)
|
11
|
+
@original_filename = filename
|
12
|
+
@content_type = content_type
|
13
|
+
end
|
14
|
+
|
15
|
+
extend Forwardable
|
16
|
+
delegate %i[read rewind eof? close size] => :@io
|
17
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: file_validators
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 3.0.0.beta2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ahmad Musaffa
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-11-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activemodel
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '3.
|
19
|
+
version: '3.2'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '3.
|
26
|
+
version: '3.2'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: mime-types
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -39,21 +39,21 @@ dependencies:
|
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '1.0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: coveralls
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - "
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: 0
|
47
|
+
version: '0'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - "
|
52
|
+
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: 0
|
54
|
+
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
56
|
+
name: fastimage
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
59
|
- - ">="
|
@@ -67,21 +67,49 @@ dependencies:
|
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
70
|
+
name: marcel
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
73
|
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: 3
|
75
|
+
version: '0.3'
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
80
|
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: 3
|
82
|
+
version: '0.3'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
|
-
name:
|
84
|
+
name: mimemagic
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: 0.3.2
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: 0.3.2
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: mini_mime
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '1.0'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '1.0'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: rack-test
|
85
113
|
requirement: !ruby/object:Gem::Requirement
|
86
114
|
requirements:
|
87
115
|
- - ">="
|
@@ -95,7 +123,7 @@ dependencies:
|
|
95
123
|
- !ruby/object:Gem::Version
|
96
124
|
version: '0'
|
97
125
|
- !ruby/object:Gem::Dependency
|
98
|
-
name:
|
126
|
+
name: rake
|
99
127
|
requirement: !ruby/object:Gem::Requirement
|
100
128
|
requirements:
|
101
129
|
- - ">="
|
@@ -108,6 +136,34 @@ dependencies:
|
|
108
136
|
- - ">="
|
109
137
|
- !ruby/object:Gem::Version
|
110
138
|
version: '0'
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: rspec
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - "~>"
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: 3.5.0
|
146
|
+
type: :development
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - "~>"
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: 3.5.0
|
153
|
+
- !ruby/object:Gem::Dependency
|
154
|
+
name: rubocop
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - "~>"
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: 0.58.2
|
160
|
+
type: :development
|
161
|
+
prerelease: false
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - "~>"
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: 0.58.2
|
111
167
|
description: Adds file validators to ActiveModel
|
112
168
|
email:
|
113
169
|
- musaffa_csemm@yahoo.com
|
@@ -117,24 +173,27 @@ extra_rdoc_files: []
|
|
117
173
|
files:
|
118
174
|
- ".gitignore"
|
119
175
|
- ".rspec"
|
176
|
+
- ".rubocop.yml"
|
177
|
+
- ".tool-versions"
|
120
178
|
- ".travis.yml"
|
121
179
|
- Appraisals
|
180
|
+
- CHANGELOG.md
|
122
181
|
- Gemfile
|
123
182
|
- MIT-LICENSE
|
124
183
|
- README.md
|
125
184
|
- README.rdoc
|
126
185
|
- Rakefile
|
127
186
|
- file_validators.gemspec
|
128
|
-
- gemfiles/activemodel_3.0.gemfile
|
129
|
-
- gemfiles/activemodel_3.1.gemfile
|
130
187
|
- gemfiles/activemodel_3.2.gemfile
|
131
188
|
- gemfiles/activemodel_4.0.gemfile
|
132
189
|
- gemfiles/activemodel_4.1.gemfile
|
133
190
|
- gemfiles/activemodel_4.2.gemfile
|
191
|
+
- gemfiles/activemodel_5.0.gemfile
|
192
|
+
- gemfiles/activemodel_5.2.gemfile
|
134
193
|
- lib/file_validators.rb
|
194
|
+
- lib/file_validators/error.rb
|
135
195
|
- lib/file_validators/locale/en.yml
|
136
|
-
- lib/file_validators/
|
137
|
-
- lib/file_validators/utils/media_type_spoof_detector.rb
|
196
|
+
- lib/file_validators/mime_type_analyzer.rb
|
138
197
|
- lib/file_validators/validators/file_content_type_validator.rb
|
139
198
|
- lib/file_validators/validators/file_size_validator.rb
|
140
199
|
- lib/file_validators/version.rb
|
@@ -146,12 +205,13 @@ files:
|
|
146
205
|
- spec/integration/combined_validators_integration_spec.rb
|
147
206
|
- spec/integration/file_content_type_validation_integration_spec.rb
|
148
207
|
- spec/integration/file_size_validator_integration_spec.rb
|
149
|
-
- spec/lib/file_validators/
|
150
|
-
- spec/lib/file_validators/utils/media_type_spoof_detector_spec.rb
|
208
|
+
- spec/lib/file_validators/mime_type_analyzer_spec.rb
|
151
209
|
- spec/lib/file_validators/validators/file_content_type_validator_spec.rb
|
152
210
|
- spec/lib/file_validators/validators/file_size_validator_spec.rb
|
153
211
|
- spec/locale/en.yml
|
154
212
|
- spec/spec_helper.rb
|
213
|
+
- spec/support/fakeio.rb
|
214
|
+
- spec/support/helpers.rb
|
155
215
|
- spec/support/matchers/allow_content_type.rb
|
156
216
|
- spec/support/matchers/allow_file_size.rb
|
157
217
|
homepage: https://github.com/musaffa/file_validators
|
@@ -169,12 +229,11 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
169
229
|
version: '0'
|
170
230
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
171
231
|
requirements:
|
172
|
-
- - "
|
232
|
+
- - ">"
|
173
233
|
- !ruby/object:Gem::Version
|
174
|
-
version:
|
234
|
+
version: 1.3.1
|
175
235
|
requirements: []
|
176
|
-
|
177
|
-
rubygems_version: 2.4.5.1
|
236
|
+
rubygems_version: 3.1.2
|
178
237
|
signing_key:
|
179
238
|
specification_version: 4
|
180
239
|
summary: ActiveModel file validators
|
@@ -187,11 +246,12 @@ test_files:
|
|
187
246
|
- spec/integration/combined_validators_integration_spec.rb
|
188
247
|
- spec/integration/file_content_type_validation_integration_spec.rb
|
189
248
|
- spec/integration/file_size_validator_integration_spec.rb
|
190
|
-
- spec/lib/file_validators/
|
191
|
-
- spec/lib/file_validators/utils/media_type_spoof_detector_spec.rb
|
249
|
+
- spec/lib/file_validators/mime_type_analyzer_spec.rb
|
192
250
|
- spec/lib/file_validators/validators/file_content_type_validator_spec.rb
|
193
251
|
- spec/lib/file_validators/validators/file_size_validator_spec.rb
|
194
252
|
- spec/locale/en.yml
|
195
253
|
- spec/spec_helper.rb
|
254
|
+
- spec/support/fakeio.rb
|
255
|
+
- spec/support/helpers.rb
|
196
256
|
- spec/support/matchers/allow_content_type.rb
|
197
257
|
- spec/support/matchers/allow_file_size.rb
|