be_valid 0.1.2 → 0.1.7

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a5f38ecbc3d88533c9f6eb879796b4b03cb76df5b21f6c4f8e0b7060dc763cea
4
- data.tar.gz: 9917a523c4042fdf20f4cfb70dea14f1fe148671092706d54fa5b23c9a514e40
3
+ metadata.gz: 7edccd354585b1c23c1b623e936e48a442e63084ffdb50ec723c8e6c484d88dc
4
+ data.tar.gz: 8f1a9f325cf407a462749673476eedba4257df10d9a58520bfa686b31d9cadda
5
5
  SHA512:
6
- metadata.gz: c4ca1edbdd427368c74d63f42ffbc9e13a09bd8ad774d6e169a75226fa58c9740d384aa956c8b0e9bac9ed92fd9c08730d1eb9f030fafe181aeb48fa0fa4aa12
7
- data.tar.gz: 4bf6eaf4377ee7cb15d321ea21fa8d106fe9a3ba0fe735196f3ca75e8751dc9a72747b6ee7f7fca8f69204bd1f925597d5519ccf9de339ffcec5dd6dcfc3dc7a
6
+ metadata.gz: f870bf1181a47bef15e48054ca0276090a55a9340f93dccb538e6ea94a62e15949c1b47c0c688c3347fa8f51ea6c0cbccfba19c51c23480acdb440f2c15d53b7
7
+ data.tar.gz: 36de4519138b8e10897ac761b99c71fb3b7726808ff11e3ef2ad5bc94cff19852dea31b8d4dedf835b3c025598ed1a832b08941053ba7adf1ebf5a3587d899a1
@@ -0,0 +1,24 @@
1
+ name: Ruby
2
+
3
+ on:
4
+ push:
5
+ branches: [ main ]
6
+ pull_request:
7
+ branches: [ main ]
8
+
9
+ jobs:
10
+ test:
11
+ runs-on: ubuntu-latest
12
+ strategy:
13
+ matrix:
14
+ ruby-version: ['2.6', '2.7', '3.0']
15
+
16
+ steps:
17
+ - uses: actions/checkout@v2
18
+ - name: Set up Ruby
19
+ uses: ruby/setup-ruby@v1
20
+ with:
21
+ ruby-version: ${{ matrix.ruby-version }}
22
+ bundler-cache: true # runs 'bundle install' and caches installed gems automatically
23
+ - name: Run tests
24
+ run: bundle exec rake
data/Gemfile.lock CHANGED
@@ -1,43 +1,42 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- be_valid (0.1.0)
4
+ be_valid (0.1.6)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
8
8
  specs:
9
- activemodel (5.2.5)
10
- activesupport (= 5.2.5)
11
- activerecord (5.2.5)
12
- activemodel (= 5.2.5)
13
- activesupport (= 5.2.5)
14
- arel (>= 9.0)
15
- activesupport (5.2.5)
9
+ activemodel (6.1.3.2)
10
+ activesupport (= 6.1.3.2)
11
+ activerecord (6.1.3.2)
12
+ activemodel (= 6.1.3.2)
13
+ activesupport (= 6.1.3.2)
14
+ activesupport (6.1.3.2)
16
15
  concurrent-ruby (~> 1.0, >= 1.0.2)
17
- i18n (>= 0.7, < 2)
18
- minitest (~> 5.1)
19
- tzinfo (~> 1.1)
20
- arel (9.0.0)
16
+ i18n (>= 1.6, < 2)
17
+ minitest (>= 5.1)
18
+ tzinfo (~> 2.0)
19
+ zeitwerk (~> 2.3)
21
20
  concurrent-ruby (1.1.8)
22
21
  i18n (1.8.10)
23
22
  concurrent-ruby (~> 1.0)
24
23
  minitest (5.14.4)
25
24
  rake (10.5.0)
26
25
  sqlite3 (1.4.2)
27
- thread_safe (0.3.6)
28
- tzinfo (1.2.9)
29
- thread_safe (~> 0.1)
26
+ tzinfo (2.0.4)
27
+ concurrent-ruby (~> 1.0)
28
+ zeitwerk (2.4.2)
30
29
 
31
30
  PLATFORMS
32
31
  ruby
33
32
 
34
33
  DEPENDENCIES
35
- activerecord (~> 5)
34
+ activerecord (~> 6)
36
35
  be_valid!
37
- bundler (~> 1.17)
36
+ bundler (~> 2)
38
37
  minitest (~> 5.0)
39
38
  rake (~> 10.0)
40
39
  sqlite3 (~> 1.4)
41
40
 
42
41
  BUNDLED WITH
43
- 1.17.2
42
+ 2.2.17
data/be_valid.gemspec CHANGED
@@ -25,9 +25,9 @@ Gem::Specification.new do |spec|
25
25
 
26
26
  spec.required_ruby_version = '>= 2.3'
27
27
 
28
- spec.add_development_dependency "bundler", "~> 1.17"
28
+ spec.add_development_dependency "bundler", "~> 2"
29
29
  spec.add_development_dependency "rake", "~> 10.0"
30
30
  spec.add_development_dependency "minitest", "~> 5.0"
31
- spec.add_development_dependency "activerecord", "~> 5"
31
+ spec.add_development_dependency "activerecord", "~> 6"
32
32
  spec.add_development_dependency "sqlite3", "~> 1.4"
33
33
  end
data/lib/be_valid.rb CHANGED
@@ -4,6 +4,6 @@ begin
4
4
  require 'validators/date_validator'
5
5
  require 'validators/must_be_validator'
6
6
  rescue
7
- 'unable to loan be_valid validator'
7
+ 'unable to load be_valid validator'
8
8
  nil
9
9
  end
@@ -9,10 +9,10 @@ module BeValid
9
9
  end
10
10
 
11
11
  class Configuration
12
- attr_accessor :notice_rules
12
+ attr_accessor :rules
13
13
 
14
14
  def initialize
15
- @notice_rules= []
15
+ @rules = {}
16
16
  end
17
17
  end
18
18
  end
@@ -1,3 +1,3 @@
1
1
  module BeValid
2
- VERSION = "0.1.2"
2
+ VERSION = "0.1.7"
3
3
  end
@@ -14,15 +14,15 @@ class DateValidator < ActiveModel::EachValidator
14
14
 
15
15
  # display helpful date format validation message with original value
16
16
  message = options[:time] ? ": #{original_value} is not a valid value. Value must be a date in YYYY-MM-DD or YYYY-MM-DD HH:MM:SS format." : ": #{original_value} is not a valid value. Value must be a date in YYYY-MM-DD."
17
- @error_hash.add(attribute, (options[:message] || message))
17
+ @error_hash.add(attribute, (options[:message] || message), rule_name: options[:rule_name])
18
18
  else
19
19
  # handle validation options on valid date instances
20
20
  return unless value.respond_to?(:strftime)
21
21
  if(options[:after] && (after_message = validate_after_option(record, attribute, value, original_value)) != true)
22
- @error_hash.add(attribute, (options[:after_message] || "#{after_message}."))
22
+ @error_hash.add(attribute, (options[:after_message] || "#{after_message}."), rule_name: options[:rule_name])
23
23
  end
24
24
  if(options[:before] && (before_message = validate_before_option(record, attribute, value, original_value)) != true)
25
- @error_hash.add(attribute, (options[:before_message] || "#{before_message}."))
25
+ @error_hash.add(attribute, (options[:before_message] || "#{before_message}."), rule_name: options[:rule_name])
26
26
  end
27
27
  end
28
28
  end
@@ -11,14 +11,16 @@ module ActiveModel
11
11
  less_or_equal_to: :<=,
12
12
  not_equal_to: :!=,
13
13
  matching: :=~,
14
- # one_of: :in?
15
14
  }.freeze
15
+
16
+ REQD_OPTS = (MATCHERS.keys + [:blank, :present, :one_of, :not_any_of, :only_from, :before, :after])
16
17
 
17
18
  MESSAGE_PREFIX = "must be"
18
19
  ERRORS_METHOD = :errors
19
20
 
20
21
  def validate_each(record, attribute, value)
21
- raise "must_be_validator requires at least one comparison operator for attribute." unless options.slice(MATCHERS.keys + [:blank, :present])
22
+ raise "Requires at least one comparison operator for attribute." unless (options.keys & REQD_OPTS).length > 0
23
+ return if options[:rule_name] && BeValid.config.rules&.fetch(options[:rule_name], {})[:disabled]
22
24
 
23
25
  original_value = record.read_attribute_before_type_cast( attribute )
24
26
 
@@ -30,7 +32,7 @@ module ActiveModel
30
32
  return if options[:present] && value.present?
31
33
  message << " present" if options[:present]
32
34
 
33
- return if options[:one_of] && options[:one_of].include?(value)
35
+ return if options[:one_of] && Array(options[:one_of]).flatten.include?(value)
34
36
  message = ": '#{value}' is not a valid value" if options[:one_of]
35
37
 
36
38
  return if options[:not_any_of] && !(options[:not_any_of].include?(value))
@@ -73,8 +75,14 @@ module ActiveModel
73
75
  return if !values.match?(record[field])
74
76
  condition_errors << "#{field} = #{record[field]}"
75
77
  when Array
76
- return if !values.include?(record[field])
78
+ return if !values.flatten.include?(record[field])
77
79
  condition_errors << "#{field} = #{record[field]}"
80
+ when :blank
81
+ return unless record.send(field).blank?
82
+ condition_errors << "#{field} is #{values.to_s.gsub('?', '')}"
83
+ when :present
84
+ return unless record.send(field).present?
85
+ condition_errors << "#{field} is #{values.to_s.gsub('?', '')}"
78
86
  when Symbol
79
87
  return if !record.send(field)&.send(values)
80
88
  condition_errors << "#{field} is #{values.to_s.gsub('?', '')}"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: be_valid
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - John Stewart (johnsinco)
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-04-19 00:00:00.000000000 Z
11
+ date: 2021-08-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.17'
19
+ version: '2'
20
20
  type: :development
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: '1.17'
26
+ version: '2'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -58,14 +58,14 @@ dependencies:
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '5'
61
+ version: '6'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '5'
68
+ version: '6'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: sqlite3
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -87,6 +87,7 @@ executables: []
87
87
  extensions: []
88
88
  extra_rdoc_files: []
89
89
  files:
90
+ - ".github/workflows/ruby.yml"
90
91
  - ".gitignore"
91
92
  - Gemfile
92
93
  - Gemfile.lock
@@ -120,7 +121,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
120
121
  - !ruby/object:Gem::Version
121
122
  version: '0'
122
123
  requirements: []
123
- rubygems_version: 3.0.3
124
+ rubygems_version: 3.1.6
124
125
  signing_key:
125
126
  specification_version: 4
126
127
  summary: Custom Ruby on Rails Validation library supporting 'conditional' validation