lite-validators 1.7.2 → 1.8.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: 0d3f051d098209d84823656f14c23f4537aa26b0f554328752ede05dd12f8fe2
4
- data.tar.gz: 138ce3bcc2159ab4e53023e1184e0012be5ec0941cb50f2d906f3b3f0261f1fc
3
+ metadata.gz: e89a2c77af2dd9641e9c98f3a9a3641a0825e161ce13ef46ed00666d3d71e9dd
4
+ data.tar.gz: f61e400f2d1ee17c765054659174dfd065a01353a1f183e944cbfd69c704b0f8
5
5
  SHA512:
6
- metadata.gz: aba646abaf9c698367acc9e2f798358e109cec13fb7442c6cd8e79578c46a9a3210fefa458f71e91990dc9cc96a54af239696f42563d1199eaa1351d7c11c656
7
- data.tar.gz: 0b5479cfb1066309c1854e4359396528b7e8a7004bae4de5beabca38db4e7824e44028919c30144d3cc00fb1f34538179bd47bd0b924d6701845978b783e30a1
6
+ metadata.gz: 7801ec742a17a96a871d03c43fa630bb1fb4223b3e0a6c28a660ba802187dcf335b069146b93583f9feb6250cfcba2a8ae79f819d068866aff0f902b631603c1
7
+ data.tar.gz: cdd0f30c4f78f042979c43bf2e1550543223c083ca46aa96c6c85711c77aad29783fbcc2e583f75139bcb6e14c773477b0159b2411426ddb99c471cee9377fcf
data/.rubocop.yml CHANGED
@@ -3,12 +3,9 @@ require:
3
3
  - rubocop-rake
4
4
  - rubocop-rspec
5
5
  AllCops:
6
- TargetRubyVersion: 3.0
7
6
  NewCops: enable
8
7
  DisplayCopNames: true
9
8
  DisplayStyleGuide: true
10
- Gemspec/RequireMFA:
11
- Enabled: false
12
9
  Gemspec/RequiredRubyVersion:
13
10
  Enabled: false
14
11
  Layout/EmptyLinesAroundAttributeAccessor:
@@ -21,7 +18,7 @@ Layout/EmptyLinesAroundClassBody:
21
18
  Layout/EmptyLinesAroundModuleBody:
22
19
  EnforcedStyle: empty_lines_except_namespace
23
20
  Layout/LineLength:
24
- Max: 100
21
+ Enabled: false
25
22
  Layout/SpaceAroundMethodCallOperator:
26
23
  Enabled: true
27
24
  Lint/ConstantDefinitionInBlock:
@@ -32,6 +29,8 @@ Lint/RaiseException:
32
29
  Enabled: true
33
30
  Lint/StructNewOverride:
34
31
  Enabled: true
32
+ Metrics/AbcSize:
33
+ Enabled: false
35
34
  Metrics/BlockLength:
36
35
  Exclude:
37
36
  - 'spec/**/**/*'
@@ -39,8 +38,16 @@ Metrics/BlockLength:
39
38
  Metrics/ClassLength:
40
39
  Exclude:
41
40
  - 'lib/lite/validators/credit_card_validator.rb'
41
+ Metrics/CyclomaticComplexity:
42
+ Enabled: false
43
+ Metrics/MethodLength:
44
+ Enabled: false
45
+ Metrics/PerceivedComplexity:
46
+ Enabled: false
42
47
  RSpec/ExampleLength:
43
48
  Enabled: false
49
+ RSpec/NoExpectationExample:
50
+ Enabled: false
44
51
  RSpec/LeakyConstantDeclaration:
45
52
  Enabled: false
46
53
  RSpec/MultipleExpectations:
@@ -51,3 +58,7 @@ Style/Documentation:
51
58
  Enabled: false
52
59
  Style/ExpandPathArguments:
53
60
  Enabled: false
61
+ Style/HashSyntax:
62
+ EnforcedShorthandSyntax: never
63
+ Style/StringLiterals:
64
+ EnforcedStyle: double_quotes
data/CHANGELOG.md CHANGED
@@ -6,6 +6,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## [1.8.0] - 2022-11-20
10
+ ### Changed
11
+ - Improved docs
12
+ - Improved internal setup
13
+ - Improved rubocop setup
14
+
9
15
  ## [1.7.2] - 2022-03-18
10
16
  ### Changed
11
17
  - Check associated object is valid to reference validator
data/Gemfile CHANGED
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- source 'https://rubygems.org'
3
+ source "https://rubygems.org"
4
4
 
5
5
  # Specify your gem's dependencies in lite-validators.gemspec
6
6
  gemspec
data/Gemfile.lock CHANGED
@@ -1,28 +1,28 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- lite-validators (1.7.2)
4
+ lite-validators (1.8.0)
5
5
  activemodel
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
9
9
  specs:
10
- actionpack (7.0.2.3)
11
- actionview (= 7.0.2.3)
12
- activesupport (= 7.0.2.3)
10
+ actionpack (7.0.4)
11
+ actionview (= 7.0.4)
12
+ activesupport (= 7.0.4)
13
13
  rack (~> 2.0, >= 2.2.0)
14
14
  rack-test (>= 0.6.3)
15
15
  rails-dom-testing (~> 2.0)
16
16
  rails-html-sanitizer (~> 1.0, >= 1.2.0)
17
- actionview (7.0.2.3)
18
- activesupport (= 7.0.2.3)
17
+ actionview (7.0.4)
18
+ activesupport (= 7.0.4)
19
19
  builder (~> 3.1)
20
20
  erubi (~> 1.4)
21
21
  rails-dom-testing (~> 2.0)
22
22
  rails-html-sanitizer (~> 1.1, >= 1.2.0)
23
- activemodel (7.0.2.3)
24
- activesupport (= 7.0.2.3)
25
- activesupport (7.0.2.3)
23
+ activemodel (7.0.4)
24
+ activesupport (= 7.0.4)
25
+ activesupport (7.0.4)
26
26
  concurrent-ruby (~> 1.0, >= 1.0.2)
27
27
  i18n (>= 1.6, < 2)
28
28
  minitest (>= 5.1)
@@ -30,95 +30,97 @@ GEM
30
30
  ast (2.4.2)
31
31
  builder (3.2.4)
32
32
  colorize (0.8.1)
33
- concurrent-ruby (1.1.9)
33
+ concurrent-ruby (1.1.10)
34
34
  crass (1.0.6)
35
35
  diff-lcs (1.5.0)
36
- erubi (1.10.0)
37
- fasterer (0.9.0)
36
+ erubi (1.11.0)
37
+ fasterer (0.10.0)
38
38
  colorize (~> 0.7)
39
- ruby_parser (>= 3.14.1)
40
- i18n (1.10.0)
39
+ ruby_parser (>= 3.19.1)
40
+ i18n (1.12.0)
41
41
  concurrent-ruby (~> 1.0)
42
- loofah (2.15.0)
42
+ json (2.6.2)
43
+ loofah (2.19.0)
43
44
  crass (~> 1.0.2)
44
45
  nokogiri (>= 1.5.9)
45
46
  method_source (1.0.0)
46
47
  mini_portile2 (2.8.0)
47
- minitest (5.15.0)
48
- nokogiri (1.13.3)
48
+ minitest (5.16.3)
49
+ nokogiri (1.13.9)
49
50
  mini_portile2 (~> 2.8.0)
50
51
  racc (~> 1.4)
51
- parallel (1.21.0)
52
- parser (3.1.1.0)
52
+ parallel (1.22.1)
53
+ parser (3.1.2.1)
53
54
  ast (~> 2.4.1)
54
55
  racc (1.6.0)
55
- rack (2.2.3)
56
- rack-test (1.1.0)
57
- rack (>= 1.0, < 3)
56
+ rack (2.2.4)
57
+ rack-test (2.0.2)
58
+ rack (>= 1.3)
58
59
  rails-dom-testing (2.0.3)
59
60
  activesupport (>= 4.2.0)
60
61
  nokogiri (>= 1.6)
61
- rails-html-sanitizer (1.4.2)
62
+ rails-html-sanitizer (1.4.3)
62
63
  loofah (~> 2.3)
63
- railties (7.0.2.3)
64
- actionpack (= 7.0.2.3)
65
- activesupport (= 7.0.2.3)
64
+ railties (7.0.4)
65
+ actionpack (= 7.0.4)
66
+ activesupport (= 7.0.4)
66
67
  method_source
67
68
  rake (>= 12.2)
68
69
  thor (~> 1.0)
69
70
  zeitwerk (~> 2.5)
70
71
  rainbow (3.1.1)
71
72
  rake (13.0.6)
72
- regexp_parser (2.2.1)
73
+ regexp_parser (2.6.1)
73
74
  rexml (3.2.5)
74
- rspec (3.11.0)
75
- rspec-core (~> 3.11.0)
76
- rspec-expectations (~> 3.11.0)
77
- rspec-mocks (~> 3.11.0)
78
- rspec-core (3.11.0)
79
- rspec-support (~> 3.11.0)
80
- rspec-expectations (3.11.0)
75
+ rspec (3.12.0)
76
+ rspec-core (~> 3.12.0)
77
+ rspec-expectations (~> 3.12.0)
78
+ rspec-mocks (~> 3.12.0)
79
+ rspec-core (3.12.0)
80
+ rspec-support (~> 3.12.0)
81
+ rspec-expectations (3.12.0)
81
82
  diff-lcs (>= 1.2.0, < 2.0)
82
- rspec-support (~> 3.11.0)
83
- rspec-mocks (3.11.0)
83
+ rspec-support (~> 3.12.0)
84
+ rspec-mocks (3.12.0)
84
85
  diff-lcs (>= 1.2.0, < 2.0)
85
- rspec-support (~> 3.11.0)
86
- rspec-rails (5.1.1)
87
- actionpack (>= 5.2)
88
- activesupport (>= 5.2)
89
- railties (>= 5.2)
90
- rspec-core (~> 3.10)
91
- rspec-expectations (~> 3.10)
92
- rspec-mocks (~> 3.10)
93
- rspec-support (~> 3.10)
94
- rspec-support (3.11.0)
95
- rubocop (1.26.0)
86
+ rspec-support (~> 3.12.0)
87
+ rspec-rails (6.0.1)
88
+ actionpack (>= 6.1)
89
+ activesupport (>= 6.1)
90
+ railties (>= 6.1)
91
+ rspec-core (~> 3.11)
92
+ rspec-expectations (~> 3.11)
93
+ rspec-mocks (~> 3.11)
94
+ rspec-support (~> 3.11)
95
+ rspec-support (3.12.0)
96
+ rubocop (1.39.0)
97
+ json (~> 2.3)
96
98
  parallel (~> 1.10)
97
- parser (>= 3.1.0.0)
99
+ parser (>= 3.1.2.1)
98
100
  rainbow (>= 2.2.2, < 4.0)
99
101
  regexp_parser (>= 1.8, < 3.0)
100
- rexml
101
- rubocop-ast (>= 1.16.0, < 2.0)
102
+ rexml (>= 3.2.5, < 4.0)
103
+ rubocop-ast (>= 1.23.0, < 2.0)
102
104
  ruby-progressbar (~> 1.7)
103
105
  unicode-display_width (>= 1.4.0, < 3.0)
104
- rubocop-ast (1.16.0)
106
+ rubocop-ast (1.23.0)
105
107
  parser (>= 3.1.1.0)
106
- rubocop-performance (1.13.3)
108
+ rubocop-performance (1.15.1)
107
109
  rubocop (>= 1.7.0, < 2.0)
108
110
  rubocop-ast (>= 0.4.0)
109
111
  rubocop-rake (0.6.0)
110
112
  rubocop (~> 1.0)
111
- rubocop-rspec (2.9.0)
112
- rubocop (~> 1.19)
113
+ rubocop-rspec (2.15.0)
114
+ rubocop (~> 1.33)
113
115
  ruby-progressbar (1.11.0)
114
- ruby_parser (3.18.1)
116
+ ruby_parser (3.19.1)
115
117
  sexp_processor (~> 4.16)
116
- sexp_processor (4.16.0)
118
+ sexp_processor (4.16.1)
117
119
  thor (1.2.1)
118
- tzinfo (2.0.4)
120
+ tzinfo (2.0.5)
119
121
  concurrent-ruby (~> 1.0)
120
- unicode-display_width (2.1.0)
121
- zeitwerk (2.5.4)
122
+ unicode-display_width (2.3.0)
123
+ zeitwerk (2.6.6)
122
124
 
123
125
  PLATFORMS
124
126
  ruby
@@ -137,4 +139,4 @@ DEPENDENCIES
137
139
  rubocop-rspec
138
140
 
139
141
  BUNDLED WITH
140
- 2.2.24
142
+ 2.3.26
data/README.md CHANGED
@@ -5,8 +5,6 @@
5
5
 
6
6
  Lite::Validators is a collection of validators useful for any Rails application.
7
7
 
8
- **NOTE:** If you are coming from `ActiveValidation`, please read the [port](#port) section.
9
-
10
8
  ## Installation
11
9
 
12
10
  Add this line to your application's Gemfile:
@@ -27,7 +25,6 @@ Or install it yourself as:
27
25
 
28
26
  * [Validators](#validators)
29
27
  * [3rd-party](#3rd-party)
30
- * [Port](#port)
31
28
 
32
29
  ## Validators
33
30
 
@@ -75,16 +72,6 @@ The following are highly recommended 3rd-party validators to supplement your wor
75
72
  * **Group:** Group Validations - https://github.com/adzap/grouped_validations
76
73
  * **Overlap:** Validates Overlap - https://github.com/robinbortlik/validates_overlap
77
74
 
78
- ## Port
79
-
80
- `Lite::Validators` is a near compatible port of [ActiveValidation](https://github.com/drexed/active_validation).
81
-
82
- The names for the following validators has been changed, so you will need to make the
83
- appropriate changes: `equality #=> compare`, `phone #=> phone_number`
84
-
85
- The syntax for the following validators has been reworked, so you will need to consult the docs
86
- for making the appropriate changes: `csv`, `compare`
87
-
88
75
  ## Development
89
76
 
90
77
  After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
@@ -93,7 +80,7 @@ To install this gem onto your local machine, run `bundle exec rake install`. To
93
80
 
94
81
  ## Contributing
95
82
 
96
- Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/lite-validators. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
83
+ Bug reports and pull requests are welcome on GitHub at https://github.com/drexed/lite-validators. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
97
84
 
98
85
  ## License
99
86
 
@@ -101,4 +88,4 @@ The gem is available as open source under the terms of the [MIT License](https:/
101
88
 
102
89
  ## Code of Conduct
103
90
 
104
- Everyone interacting in the Lite::Validators project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/[USERNAME]/lite-validators/blob/master/CODE_OF_CONDUCT.md).
91
+ Everyone interacting in the Lite::Validators project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/drexed/lite-validators/blob/master/CODE_OF_CONDUCT.md).
data/Rakefile CHANGED
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'bundler/gem_tasks'
4
- require 'rspec/core/rake_task'
3
+ require "bundler/gem_tasks"
4
+ require "rspec/core/rake_task"
5
5
 
6
6
  RSpec::Core::RakeTask.new(:spec)
7
7
 
data/bin/console CHANGED
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env ruby
2
2
  # frozen_string_literal: true
3
3
 
4
- require 'bundler/setup'
5
- require 'lite/validators'
4
+ require "bundler/setup"
5
+ require "lite/validators"
6
6
 
7
7
  # You can add fixtures and/or initialization code here to make experimenting
8
8
  # with your gem easier. You can also use a different console, if you like.
@@ -11,5 +11,5 @@ require 'lite/validators'
11
11
  # require "pry"
12
12
  # Pry.start
13
13
 
14
- require 'irb'
14
+ require "irb"
15
15
  IRB.start(__FILE__)
@@ -3,9 +3,9 @@
3
3
  class AlphaValidator < BaseValidator
4
4
 
5
5
  CASES = {
6
- lower: 'a-z',
7
- upper: 'A-Z',
8
- any: 'A-Za-z'
6
+ lower: "a-z",
7
+ upper: "A-Z",
8
+ any: "A-Za-z"
9
9
  }.freeze
10
10
 
11
11
  def validate_each(record, attribute, value)
@@ -19,7 +19,6 @@ class BaseValidator < ActiveModel::EachValidator
19
19
  @value = value
20
20
  end
21
21
 
22
- # rubocop:disable Layout/LineLength
23
22
  def assert_valid_option!(name, collection, option: nil)
24
23
  option ||= send(name)
25
24
 
@@ -29,7 +28,6 @@ class BaseValidator < ActiveModel::EachValidator
29
28
  raise ArgumentError, "Unknown #{name}: #{option_value.inspect}. Valid options are: #{collection.map(&:inspect).join(', ')}"
30
29
  end
31
30
  end
32
- # rubocop:enable Layout/LineLength
33
31
 
34
32
  def error_message
35
33
  [options[:message] || :invalid]
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'csv' unless defined?(CSV)
3
+ require "csv" unless defined?(CSV)
4
4
 
5
5
  class CsvValidator < FileSizeValidator
6
6
 
@@ -19,7 +19,7 @@ class CsvValidator < FileSizeValidator
19
19
 
20
20
  private
21
21
 
22
- # rubocop:disable Layout/LineLength, Style/GuardClause
22
+ # rubocop:disable Style/GuardClause
23
23
  def assert_valid_dimensions!
24
24
  if dimensions.empty?
25
25
  raise ArgumentError, "Missing atleast one dimension of #{DIMENSIONS.map(&:inspect).join(', ')} attribute for comparison."
@@ -27,7 +27,7 @@ class CsvValidator < FileSizeValidator
27
27
  assert_valid_option!(:dimensions, DIMENSIONS)
28
28
  end
29
29
  end
30
- # rubocop:enable Layout/LineLength, Style/GuardClause
30
+ # rubocop:enable Style/GuardClause
31
31
 
32
32
  def csv_dimensions(path)
33
33
  dimension = { columns: 0, rows: 0 }
@@ -10,7 +10,6 @@ class CusipValidator < BaseValidator
10
10
  valid_regexp? && valid_checksum?
11
11
  end
12
12
 
13
- # rubocop:disable Metrics/AbcSize
14
13
  def valid_checksum?
15
14
  digits = value.chars.map { |chr| /[A-Z]/.match?(chr) ? (chr.ord - 55) : chr.to_i }
16
15
 
@@ -22,6 +21,5 @@ class CusipValidator < BaseValidator
22
21
 
23
22
  ((10 - values) % 10) % 10
24
23
  end
25
- # rubocop:enable Metrics/AbcSize
26
24
 
27
25
  end
@@ -26,7 +26,7 @@ class FileExtensionValidator < BaseValidator
26
26
  end
27
27
 
28
28
  def valid_attr?
29
- extension = File.extname(value.original_filename).tr('.', '')
29
+ extension = File.extname(value.original_filename).tr(".", "")
30
30
  return false if extension.empty?
31
31
 
32
32
  included = include_or_exclude.any? { |ext| ext.to_s == extension }
@@ -20,7 +20,7 @@ class FileSizeValidator < BaseValidator
20
20
 
21
21
  private
22
22
 
23
- # rubocop:disable Layout/LineLength, Style/GuardClause
23
+ # rubocop:disable Style/GuardClause
24
24
  def assert_valid_checks!
25
25
  if checks.empty?
26
26
  raise ArgumentError, "Missing atleast one check of #{CHECKS.keys.map(&:inspect).join(', ')} attribute for comparison."
@@ -28,7 +28,7 @@ class FileSizeValidator < BaseValidator
28
28
  assert_valid_option!(:checks, CHECKS.keys)
29
29
  end
30
30
  end
31
- # rubocop:enable Layout/LineLength, Style/GuardClause
31
+ # rubocop:enable Style/GuardClause
32
32
 
33
33
  def checks
34
34
  options.keys & CHECKS.keys
@@ -11,7 +11,7 @@ class ImeiValidator < BaseValidator
11
11
  end
12
12
 
13
13
  def valid_checksum?
14
- number = value.to_s.gsub(/\D/, '').reverse
14
+ number = value.to_s.gsub(/\D/, "").reverse
15
15
 
16
16
  total = 0
17
17
  number.chars.each_with_index do |chr, idx|
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'resolv' unless defined?(Resolv)
3
+ require "resolv" unless defined?(Resolv)
4
4
 
5
5
  class IpAddressValidator < BaseValidator
6
6
 
@@ -9,7 +9,7 @@ class IsbnValidator < BaseValidator
9
9
  private
10
10
 
11
11
  def valid_attr?
12
- values = value.to_s.gsub(/-| /, '').downcase.chars
12
+ values = value.to_s.gsub(/-| /, "").downcase.chars
13
13
  [10, 13].include?(values.size) && values.all? { |chr| CHARACTERS.include?(chr) }
14
14
  end
15
15
 
@@ -2,9 +2,7 @@
2
2
 
3
3
  class IsinValidator < BaseValidator
4
4
 
5
- # rubocop:disable Layout/LineLength
6
5
  REGEXP = /^((AF|AX|AL|DZ|AS|AD|AO|AI|AQ|AG|AR|AM|AW|AU|AT|AZ|BS|BH|BD|BB|BY|BE|BZ|BJ|BM|BT|BO|BQ|BA|BW|BV|BR|IO|BN|BG|BF|BI|KH|CM|CA|CV|KY|CF|TD|CL|CN|CX|CC|CO|KM|CG|CD|CK|CR|CI|HR|CU|CW|CY|CZ|DK|DJ|DM|DO|EC|EG|SV|GQ|ER|EE|ET|FK|FO|FJ|FI|FR|GF|PF|TF|GA|GM|GE|DE|GH|GI|GR|GL|GD|GP|GU|GT|GG|GN|GW|GY|HT|HM|VA|HN|HK|HU|IS|IN|ID|IR|IQ|IE|IM|IL|IT|JM|JP|JE|JO|KZ|KE|KI|KP|KR|KW|KG|LA|LV|LB|LS|LR|LY|LI|LT|LU|MO|MK|MG|MW|MY|MV|ML|MT|MH|MQ|MR|MU|YT|MX|FM|MD|MC|MN|ME|MS|MA|MZ|MM|NA|NR|NP|NL|NC|NZ|NI|NE|NG|NU|NF|MP|NO|OM|PK|PW|PS|PA|PG|PY|PE|PH|PN|PL|PT|PR|QA|RE|RO|RU|RW|BL|SH|KN|LC|MF|PM|VC|WS|SM|ST|SA|SN|RS|SC|SL|SG|SX|SK|SI|SB|SO|ZA|GS|SS|ES|LK|SD|SR|SJ|SZ|SE|CH|SY|TW|TJ|TZ|TH|TL|TG|TK|TO|TT|TN|TR|TM|TC|TV|UG|UA|AE|GB|US|UM|UY|UZ|VU|VE|VN|VG|VI|WF|EH|YE|ZM|ZW{2})([A-Z0-9]{9}))(\d{1})$/
7
- # rubocop:enable Layout/LineLength
8
6
 
9
7
  private
10
8
 
@@ -12,7 +10,6 @@ class IsinValidator < BaseValidator
12
10
  valid_regexp? && valid_checksum?
13
11
  end
14
12
 
15
- # rubocop:disable Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/MethodLength, Metrics/PerceivedComplexity
16
13
  def valid_checksum?
17
14
  characters = value.chars
18
15
  digits = characters.map { |chr| /[A-Z]/.match?(chr) ? (chr.ord - 55) : chr.to_i }
@@ -31,6 +28,5 @@ class IsinValidator < BaseValidator
31
28
 
32
29
  (10 - (total % 10)) % 10
33
30
  end
34
- # rubocop:enable Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/MethodLength, Metrics/PerceivedComplexity
35
31
 
36
32
  end
@@ -4,7 +4,7 @@ module Lite
4
4
  module Validators
5
5
  class Railtie < Rails::Railtie
6
6
 
7
- initializer 'lite-validators.configure_locales' do |app|
7
+ initializer "lite-validators.configure_locales" do |app|
8
8
  Array(app.config.i18n.available_locales).each do |locale|
9
9
  path = File.expand_path("../../../locales/#{locale}.yml", __FILE__)
10
10
  next unless File.file?(path)
@@ -21,7 +21,7 @@ class ReferenceValidator < BaseValidator
21
21
  end
22
22
 
23
23
  def valid_object?
24
- association_type = options[:association] || attribute.to_s.chomp('_id')
24
+ association_type = options[:association] || attribute.to_s.chomp("_id")
25
25
  association_object = record.send(association_type)
26
26
  return true if association_object.present? && association_object.valid?
27
27
 
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'active_support/core_ext/time/zones' unless defined?(ActiveSupport)
3
+ require "active_support/core_ext/time/zones" unless defined?(ActiveSupport)
4
4
 
5
5
  class TimeZoneValidator < BaseValidator
6
6
 
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'uri' unless defined?(URI)
3
+ require "uri" unless defined?(URI)
4
4
 
5
5
  class UrlValidator < BaseValidator
6
6
 
@@ -21,7 +21,6 @@ class UrlValidator < BaseValidator
21
21
  options[:message] || I18n.t("errors.messages.url.#{option}")
22
22
  end
23
23
 
24
- # rubocop:disable Layout/LineLength, Metrics/AbcSize
25
24
  def valid_attr?
26
25
  raise URI::InvalidURIError if value.to_s.strip.empty?
27
26
 
@@ -53,7 +52,7 @@ class UrlValidator < BaseValidator
53
52
  def valid_root?
54
53
  return true unless options[:root_only]
55
54
 
56
- check = ['', '/'].include?(value.path) && value.query.blank? && value.fragment.blank?
55
+ check = ["", "/"].include?(value.path) && value.query.blank? && value.fragment.blank?
57
56
  return true if check
58
57
 
59
58
  record.errors.add(attribute, error_message_for(:root))
@@ -73,6 +72,5 @@ class UrlValidator < BaseValidator
73
72
  def valid_uri?
74
73
  value.is_a?(URI::Generic)
75
74
  end
76
- # rubocop:enable Layout/LineLength, Metrics/AbcSize
77
75
 
78
76
  end
@@ -3,7 +3,7 @@
3
3
  module Lite
4
4
  module Validators
5
5
 
6
- VERSION = '1.7.2'
6
+ VERSION = "1.8.0"
7
7
 
8
8
  end
9
9
  end
@@ -1,41 +1,41 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'active_model' unless defined?(ActiveModel)
3
+ require "active_model" unless defined?(ActiveModel)
4
4
 
5
- require 'lite/validators/railtie' if defined?(Rails::Railtie)
6
- require 'lite/validators/version'
7
- require 'lite/validators/base_validator'
8
- require 'lite/validators/alpha_validator'
9
- require 'lite/validators/alpha_numeric_validator'
10
- require 'lite/validators/base64_validator'
11
- require 'lite/validators/boolean_validator'
12
- require 'lite/validators/compare_validator'
13
- require 'lite/validators/coordinate_validator'
14
- require 'lite/validators/credit_card_validator'
15
- require 'lite/validators/currency_validator'
16
- require 'lite/validators/cusip_validator'
17
- require 'lite/validators/email_validator'
18
- require 'lite/validators/ein_validator'
19
- require 'lite/validators/file_content_type_validator'
20
- require 'lite/validators/file_extension_validator'
21
- require 'lite/validators/file_size_validator'
22
- require 'lite/validators/csv_validator'
23
- require 'lite/validators/hex_validator'
24
- require 'lite/validators/imei_validator'
25
- require 'lite/validators/ip_address_validator'
26
- require 'lite/validators/isbn_validator'
27
- require 'lite/validators/isin_validator'
28
- require 'lite/validators/list_validator'
29
- require 'lite/validators/mac_address_validator'
30
- require 'lite/validators/name_validator'
31
- require 'lite/validators/password_validator'
32
- require 'lite/validators/phone_number_validator'
33
- require 'lite/validators/reference_validator'
34
- require 'lite/validators/sedol_validator'
35
- require 'lite/validators/slug_validator'
36
- require 'lite/validators/ssn_validator'
37
- require 'lite/validators/time_zone_validator'
38
- require 'lite/validators/type_validator'
39
- require 'lite/validators/url_validator'
40
- require 'lite/validators/username_validator'
41
- require 'lite/validators/uuid_validator'
5
+ require "lite/validators/railtie" if defined?(Rails::Railtie)
6
+ require "lite/validators/version"
7
+ require "lite/validators/base_validator"
8
+ require "lite/validators/alpha_validator"
9
+ require "lite/validators/alpha_numeric_validator"
10
+ require "lite/validators/base64_validator"
11
+ require "lite/validators/boolean_validator"
12
+ require "lite/validators/compare_validator"
13
+ require "lite/validators/coordinate_validator"
14
+ require "lite/validators/credit_card_validator"
15
+ require "lite/validators/currency_validator"
16
+ require "lite/validators/cusip_validator"
17
+ require "lite/validators/email_validator"
18
+ require "lite/validators/ein_validator"
19
+ require "lite/validators/file_content_type_validator"
20
+ require "lite/validators/file_extension_validator"
21
+ require "lite/validators/file_size_validator"
22
+ require "lite/validators/csv_validator"
23
+ require "lite/validators/hex_validator"
24
+ require "lite/validators/imei_validator"
25
+ require "lite/validators/ip_address_validator"
26
+ require "lite/validators/isbn_validator"
27
+ require "lite/validators/isin_validator"
28
+ require "lite/validators/list_validator"
29
+ require "lite/validators/mac_address_validator"
30
+ require "lite/validators/name_validator"
31
+ require "lite/validators/password_validator"
32
+ require "lite/validators/phone_number_validator"
33
+ require "lite/validators/reference_validator"
34
+ require "lite/validators/sedol_validator"
35
+ require "lite/validators/slug_validator"
36
+ require "lite/validators/ssn_validator"
37
+ require "lite/validators/time_zone_validator"
38
+ require "lite/validators/type_validator"
39
+ require "lite/validators/url_validator"
40
+ require "lite/validators/username_validator"
41
+ require "lite/validators/uuid_validator"
@@ -1,52 +1,46 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- lib = File.expand_path('../lib', __FILE__)
3
+ lib = File.expand_path("../lib", __FILE__)
4
4
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
- require 'lite/validators/version'
5
+ require "lite/validators/version"
6
6
 
7
7
  Gem::Specification.new do |spec|
8
- spec.name = 'lite-validators'
8
+ spec.name = "lite-validators"
9
9
  spec.version = Lite::Validators::VERSION
10
- spec.authors = ['Juan Gomez']
10
+ spec.authors = ["Juan Gomez"]
11
11
  spec.email = %w[j.gomez@drexed.com]
12
12
 
13
- spec.summary = 'Collection of ActiveModel/ActiveRecord validators'
14
- spec.homepage = 'http://drexed.github.io/lite-validators'
15
- spec.license = 'MIT'
13
+ spec.summary = "Collection of ActiveModel/ActiveRecord validators"
14
+ spec.homepage = "http://drexed.github.io/lite-validators"
15
+ spec.license = "MIT"
16
16
 
17
17
  # Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
18
18
  # to allow pushing to a single host or delete this section to allow pushing to any host.
19
- if spec.respond_to?(:metadata)
20
- spec.metadata.merge(
21
- 'allowed_push_host' => 'https://rubygems.org',
22
- 'changelog_uri' => 'https://github.com/drexed/lite-validators/blob/master/CHANGELOG.md',
23
- 'homepage_uri' => spec.homepage,
24
- 'source_code_uri' => 'https://github.com/drexed/lite-validators'
25
- )
26
- else
27
- raise 'RubyGems 2.0 or newer is required to protect against ' \
28
- 'public gem pushes.'
29
- end
19
+ spec.metadata["allowed_push_host"] = "https://rubygems.org"
20
+ spec.metadata["changelog_uri"] = "https://github.com/drexed/lite-validators/blob/master/CHANGELOG.md"
21
+ spec.metadata["homepage_uri"] = spec.homepage
22
+ spec.metadata["rubygems_mfa_required"] = "true"
23
+ spec.metadata["source_code_uri"] = "https://github.com/drexed/lite-validators"
30
24
 
31
25
  # Specify which files should be added to the gem when it is released.
32
26
  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
33
- spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
27
+ spec.files = Dir.chdir(File.expand_path("..", __FILE__)) do
34
28
  `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
35
29
  end
36
- spec.bindir = 'exe'
30
+ spec.bindir = "exe"
37
31
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
38
32
  spec.require_paths = %w[lib]
39
33
 
40
- spec.add_runtime_dependency 'activemodel'
34
+ spec.add_runtime_dependency "activemodel"
41
35
 
42
- spec.add_development_dependency 'actionpack'
43
- spec.add_development_dependency 'bundler'
44
- spec.add_development_dependency 'fasterer'
45
- spec.add_development_dependency 'rake'
46
- spec.add_development_dependency 'rspec'
47
- spec.add_development_dependency 'rspec-rails'
48
- spec.add_development_dependency 'rubocop'
49
- spec.add_development_dependency 'rubocop-performance'
50
- spec.add_development_dependency 'rubocop-rake'
51
- spec.add_development_dependency 'rubocop-rspec'
36
+ spec.add_development_dependency "actionpack"
37
+ spec.add_development_dependency "bundler"
38
+ spec.add_development_dependency "fasterer"
39
+ spec.add_development_dependency "rake"
40
+ spec.add_development_dependency "rspec"
41
+ spec.add_development_dependency "rspec-rails"
42
+ spec.add_development_dependency "rubocop"
43
+ spec.add_development_dependency "rubocop-performance"
44
+ spec.add_development_dependency "rubocop-rake"
45
+ spec.add_development_dependency "rubocop-rspec"
52
46
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lite-validators
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.7.2
4
+ version: 1.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Juan Gomez
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-03-18 00:00:00.000000000 Z
11
+ date: 2022-11-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activemodel
@@ -175,7 +175,6 @@ files:
175
175
  - ".gitignore"
176
176
  - ".rspec"
177
177
  - ".rubocop.yml"
178
- - ".travis.yml"
179
178
  - CHANGELOG.md
180
179
  - CODE_OF_CONDUCT.md
181
180
  - Gemfile
@@ -262,7 +261,12 @@ files:
262
261
  homepage: http://drexed.github.io/lite-validators
263
262
  licenses:
264
263
  - MIT
265
- metadata: {}
264
+ metadata:
265
+ allowed_push_host: https://rubygems.org
266
+ changelog_uri: https://github.com/drexed/lite-validators/blob/master/CHANGELOG.md
267
+ homepage_uri: http://drexed.github.io/lite-validators
268
+ rubygems_mfa_required: 'true'
269
+ source_code_uri: https://github.com/drexed/lite-validators
266
270
  post_install_message:
267
271
  rdoc_options: []
268
272
  require_paths:
@@ -278,7 +282,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
278
282
  - !ruby/object:Gem::Version
279
283
  version: '0'
280
284
  requirements: []
281
- rubygems_version: 3.3.4
285
+ rubygems_version: 3.3.26
282
286
  signing_key:
283
287
  specification_version: 4
284
288
  summary: Collection of ActiveModel/ActiveRecord validators
data/.travis.yml DELETED
@@ -1,25 +0,0 @@
1
- sudo: false
2
- language: ruby
3
- cache: bundler
4
- rvm:
5
- - 2.5
6
- - 2.6
7
- - 2.7
8
- - ruby-head
9
- matrix:
10
- fast_finish: true
11
- allow_failures:
12
- - rvm: ruby-head
13
- before_install:
14
- - gem update --system
15
- - gem install bundler
16
- install:
17
- - bundle install --jobs=3 --retry=3
18
- script:
19
- - bundle exec rspec
20
- - bundle exec rubocop
21
- - bundle exec fasterer
22
- notifications:
23
- email: false
24
- slack:
25
- secure: ymrsJTXpcQPEf9MmDKJHIjVo4eLkpuO/Oudt+4uHjqbOukfL4pMbER5FBFEgIqFKR9dM10cCwd5wJf73187CeWQpvm+2Ih2xtenKI/8z5e6iSNvB4+NZiWeIjRmTErAi2qk74m5nOMQ2nGlaKZLvw9VVD0rAQhhem7ec+Ui+ovPH97pNUlDxOgmKUDTtzeaP/jnN0c6kjksAalabg4xnSUhDmImfrRiPux+bTum142bnTx4ahiFQ7tYEi6A9Z4W5IHCgu+YwpT8Hz6OLPWm0BDOLA5sbjgcz2l0SFmwebcPRknDUeBT9+NTZOrhxRWvmJ/TR69hihhZj5k8WQ9wZKCvfl9U7bRFBQdQpU0BD3+cCTnE+sMRzcBaNOp7oXwHpZzeStcZGq0J2qF8lCvqFp2AgpAAnJ/GyC29rLFpWwwMsigFBgjFJnGrv2ZbiKHHbspXRJnGZY79kySfM5CeoY/q74+Jn12712636n2YmpXDglPqhumm6pJ8NvyoMRphRuIt4B9Ar5P1Q0u4QoEdvaCFB9HXR/nOmt/LRskSpCoK7Z0HZJ14YGu58kVR3guviI3ah6bVAzJ1PZZVIn3xUqTApA6csV3uoVh0ZiI8nF+gWbSsFofphRBhAM584D97toT7L5UctZ+KA/oD0Tknc6qXhOo2OLemjvYNW+Cl1g1k=