validates_unchangeable 0.1.1 → 0.1.2

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: 7200b06000c9c49447830bb77d921b350b4f786b1e70549a82519fe434283b39
4
- data.tar.gz: 40551a957c3e544125600f50777284eda016b13e2e5fa821c102226ddbb338da
3
+ metadata.gz: 39fc55822ab044b146e8338575a9b8e678c9fe3c167eeb28290cde8373268c71
4
+ data.tar.gz: 4be3948be8335c367a6c370812f21b54132d4c5ce2e1de33fc57a527c042259c
5
5
  SHA512:
6
- metadata.gz: 50e74d7bb8a86ee794c52bb53fc59a8a844232eb1cce4357b460cb6c4192fbeed9d154ece37e1c0cf2635367951f89387147d274f2b747240dec955b59700e57
7
- data.tar.gz: 76d2606f95c66a7b108faaef7ed2a6e02954741367325f364f0112451ab2edf6a2208dd46d4d4809a84796efd3aefc45ab7f8bbea9061fe57c2fd4d1fb9af075
6
+ metadata.gz: 482999348c3917f6374c6b41bb8cdd5cda97e6c7e76c372488223a9e1871067a00c22553db9f17b1f0237d02144ef0b107ebddfa0f26953fb5490039010dda04
7
+ data.tar.gz: a106901c613e358ece6a8ca907506610afd3615a767e7f1c5434942cff68ef09c4ef0c6f015d30b55a136b75ee536368198623a8cec838021bbad427b03e84d6
data/Gemfile.lock CHANGED
@@ -77,4 +77,4 @@ DEPENDENCIES
77
77
  validates_unchangeable!
78
78
 
79
79
  BUNDLED WITH
80
- 1.17.3
80
+ 2.2.15
@@ -6,10 +6,21 @@ module ActiveModel
6
6
  module Validations
7
7
  class UnchangeableValidator < ActiveModel::EachValidator
8
8
  def validate_each(record, attribute, _value)
9
- return if !record.public_send("#{attribute}_changed?") || record.public_send("#{attribute}_was").nil?
9
+ if !record.public_send("#{attribute}_changed?") ||
10
+ record.public_send("#{attribute}_was") == default_value_for(record, attribute)
11
+ return
12
+ end
10
13
 
11
14
  record.errors.add(attribute, :unchangeable)
12
15
  end
16
+
17
+ private
18
+
19
+ def default_value_for(record, attribute)
20
+ return unless record.class.respond_to?(:column_defaults)
21
+
22
+ record.class.column_defaults[attribute.to_s]
23
+ end
13
24
  end
14
25
  end
15
26
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ValidatesUnchangeable
4
- VERSION = '0.1.1'
4
+ VERSION = '0.1.2'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: validates_unchangeable
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vital Ryabchinskiy
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-10-11 00:00:00.000000000 Z
11
+ date: 2021-03-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -177,7 +177,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
177
177
  - !ruby/object:Gem::Version
178
178
  version: '0'
179
179
  requirements: []
180
- rubygems_version: 3.0.8
180
+ rubygems_version: 3.2.3
181
181
  signing_key:
182
182
  specification_version: 4
183
183
  summary: Library for validating unchangeable attributes.