mini_defender 0.6.9 → 0.7.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1a9dd7cd41807156b4aaa18aa7cf645fd00b67ea0dfbd9bc457e12c01bf9c6a3
4
- data.tar.gz: 9b666b35cbe313a93783609ada72dadffe70feacd7eb22dfba05d958906ac283
3
+ metadata.gz: c72fe66d029b23db90c463a27a4ac69547465047620687c4d4da4f40e1471230
4
+ data.tar.gz: 2dde879487e7f23b65f59ba8b3b3527490f15db79f9101cb523691e2ad532aae
5
5
  SHA512:
6
- metadata.gz: f604e44530496d5f20eddecc82806cd3b52ea66b2158dcb6cb106f7571f26c57153d3bba13cdc8f2a78c63f7dd9deb16132ad1dde220ab1eaded04fa6167afb5
7
- data.tar.gz: ce4951ee441eaac7eeba302336a9d7403a6cb18aa607784b28702ec02d654dc9b521bc8dde021e75bebc06ab9aad83b477da0aa90ba461514d03f7907fe2d1a3
6
+ metadata.gz: 864b6c2ad31fa2df0a9651e0e27907912f68a3b888afadc410e53ccca6604acc6f06ff9e6bbf1e1676d40cee7fd7dbcfa6e45c0d197861b8b11cd50be866a071
7
+ data.tar.gz: ce39dd86774e6387d06e1e17a9584c43928b0069ec349d5392de19f2dd7e3afc42ee7f3c65761fa2d49037a30382691b5afd861628b7ac478a4fab92e16c09a4
@@ -13,16 +13,16 @@ class MiniDefender::Rules::Required < MiniDefender::Rule
13
13
 
14
14
  def passes?(attribute, value, validator)
15
15
  case value
16
- when nil
17
- false
18
- when String
19
- value.strip.length > 0
20
- when Enumerable
21
- value.length > 0
22
- when ActionDispatch::Http::UploadedFile
23
- value.path && value.path.length > 0 && value.size > 0
24
- else
25
- true
16
+ when nil
17
+ false
18
+ when String
19
+ value.strip.length > 0
20
+ when Enumerable
21
+ value.length > 0
22
+ when ActionDispatch::Http::UploadedFile
23
+ value.path && value.path.length > 0 && value.size > 0
24
+ else
25
+ true
26
26
  end
27
27
  end
28
28
 
@@ -4,7 +4,9 @@ require_relative 'required'
4
4
 
5
5
  class MiniDefender::Rules::RequiredIf < MiniDefender::Rules::Required
6
6
  def initialize(target, value)
7
- raise ArgumentError, 'Target must be a string' unless target.is_a?(String)
7
+ unless target.is_a?(String)
8
+ raise ArgumentError, 'Target must be a string'
9
+ end
8
10
 
9
11
  @target = target
10
12
  @value = value
@@ -15,12 +17,27 @@ class MiniDefender::Rules::RequiredIf < MiniDefender::Rules::Required
15
17
  end
16
18
 
17
19
  def self.make(args)
18
- raise ArgumentError, 'Target and expected value are required.' unless args.length == 2
20
+ unless args.length == 2
21
+ raise ArgumentError, 'Target and expected value are required.'
22
+ end
19
23
 
20
24
  self.new(args[0], args[1])
21
25
  end
22
26
 
23
27
  def implicit?(validator)
24
- validator.data.key?(@target) && validator.data[@target] == @value
28
+ unless validator.data.key?(@target)
29
+ return false
30
+ end
31
+
32
+ target_value = validator.data[@target]
33
+
34
+ case target_value
35
+ when Array
36
+ target_value.include?(@value)
37
+ when Hash
38
+ target_value.keys.include?(@value)
39
+ else
40
+ target_value == @value
41
+ end
25
42
  end
26
43
  end
@@ -4,7 +4,9 @@ require_relative 'required'
4
4
 
5
5
  class MiniDefender::Rules::RequiredUnless < MiniDefender::Rules::Required
6
6
  def initialize(target, value)
7
- raise ArgumentError, 'Target must be a string' unless target.is_a?(String)
7
+ unless target.is_a?(String)
8
+ raise ArgumentError, 'Target must be a string'
9
+ end
8
10
 
9
11
  @target = target
10
12
  @value = value
@@ -15,12 +17,27 @@ class MiniDefender::Rules::RequiredUnless < MiniDefender::Rules::Required
15
17
  end
16
18
 
17
19
  def self.make(args)
18
- raise ArgumentError, 'Target and expected value are required.' unless args.length == 2
20
+ unless args.length == 2
21
+ raise ArgumentError, 'Target and expected value are required.'
22
+ end
19
23
 
20
24
  self.new(args[0], args[1])
21
25
  end
22
26
 
23
27
  def implicit?(validator)
24
- validator.data.key?(@target) && validator.data[@target] != @value
28
+ unless validator.data.key?(@target)
29
+ return false
30
+ end
31
+
32
+ target_value = validator.data[@target]
33
+
34
+ case target_value
35
+ when Array
36
+ ! target_value.include?(@value)
37
+ when Hash
38
+ ! target_value.keys.include?(@value)
39
+ else
40
+ target_value != @value
41
+ end
25
42
  end
26
43
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module MiniDefender
4
- VERSION = "0.6.9"
4
+ VERSION = "0.7.0"
5
5
  end
@@ -31,6 +31,7 @@ Gem::Specification.new do |spec|
31
31
  spec.add_runtime_dependency 'activesupport', '>= 6.0'
32
32
  spec.add_runtime_dependency 'activemodel', '>= 6.0'
33
33
  spec.add_runtime_dependency 'actionpack', '>= 6.0'
34
+ spec.add_runtime_dependency 'railties', '>= 6.0'
34
35
  spec.add_runtime_dependency 'countries'
35
36
  spec.add_runtime_dependency 'money'
36
37
  spec.add_runtime_dependency 'marcel'
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mini_defender
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.9
4
+ version: 0.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ali Alhoshaiyan
8
- autorequire:
9
8
  bindir: exe
10
9
  cert_chain: []
11
- date: 2025-05-20 00:00:00.000000000 Z
10
+ date: 2025-07-17 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: activesupport
@@ -52,6 +51,20 @@ dependencies:
52
51
  - - ">="
53
52
  - !ruby/object:Gem::Version
54
53
  version: '6.0'
54
+ - !ruby/object:Gem::Dependency
55
+ name: railties
56
+ requirement: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: '6.0'
61
+ type: :runtime
62
+ prerelease: false
63
+ version_requirements: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - ">="
66
+ - !ruby/object:Gem::Version
67
+ version: '6.0'
55
68
  - !ruby/object:Gem::Dependency
56
69
  name: countries
57
70
  requirement: !ruby/object:Gem::Requirement
@@ -232,7 +245,6 @@ licenses:
232
245
  metadata:
233
246
  homepage_uri: https://github.com/ahoshaiyan/mini-defender
234
247
  source_code_uri: https://github.com/ahoshaiyan/mini-defender
235
- post_install_message:
236
248
  rdoc_options: []
237
249
  require_paths:
238
250
  - lib
@@ -247,8 +259,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
247
259
  - !ruby/object:Gem::Version
248
260
  version: '0'
249
261
  requirements: []
250
- rubygems_version: 3.5.11
251
- signing_key:
262
+ rubygems_version: 3.6.5
252
263
  specification_version: 4
253
264
  summary: A small and efficient validation library for Rails and anything that uses
254
265
  Ruby.