validates_unchangeable 0.1.1 → 0.1.2

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: 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.