delta_changes 2.2.1 → 2.2.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: 5098ae34ad5c3463ae089a94bf3736e15b47ae4f8c9d185a4208841ebec00f69
4
- data.tar.gz: 540276c58ac91875d021e4fa86a59d983f542059d5ad1828b2c76e55fdd017f0
3
+ metadata.gz: da863383cd4382362669bc42a36e7e0a361ac634d1bbad7448fb44b64468dcdc
4
+ data.tar.gz: d9d49ffcc2118d0bfe02fa47a2346486f28e938addc3d88f891e976be99f6e1f
5
5
  SHA512:
6
- metadata.gz: d46bf7b19b2678cd0c44318d234e42a6dd11a0bb16427f645ad60e28127badebcbeb0db3738d80f903c65b03fd0b0bf0dcb5d592337fdd5353ebe6792e1455bb
7
- data.tar.gz: 78c00a7637ef11280224edad95d55e3823c4ef5ae591f925dfb0e7ea9e417b479c10dc3b118e1c258f3505e9ec759a612b854b38f945f7e51dd5e22fd9c10864
6
+ metadata.gz: 7d1df5f621ad803e4d58da4f7ee2c7066d613ea71187706fe7b72861f490622f3b3234feb7c9c93c2d8cd919093dbc487deb16d5c7fb2a5c0ab86b555853e034
7
+ data.tar.gz: 928d3e1e59233443aa028903ed653f8143b690251108587a739a55d566d21f940c7b93ce009d852ac967b9584d52511494ae63074fa6ffb2eb54aaab2b0c332b
data/lib/delta_changes.rb CHANGED
@@ -6,8 +6,11 @@ module DeltaChanges
6
6
  base.extend(ClassMethods)
7
7
  base.cattr_accessor :delta_changes_options
8
8
  base.attribute_method_suffix '_delta_changed?', '_delta_change', '_delta_was', '_delta_will_change!'
9
- base.send(:alias_method, :write_attribute_without_delta_changes, :write_attribute)
10
- base.send(:alias_method, :write_attribute, :write_attribute_with_delta_changes)
9
+ if ::ActiveRecord.version < Gem::Version.new('5.2')
10
+ base.send(:prepend, InstanceMethodsLegacy)
11
+ else
12
+ base.send(:prepend, InstanceMethods)
13
+ end
11
14
  end
12
15
 
13
16
  module ClassMethods
@@ -42,6 +45,50 @@ module DeltaChanges
42
45
  end
43
46
  end
44
47
 
48
+ # Rails < 5.2
49
+ module InstanceMethodsLegacy
50
+ # Wrap write_attribute to remember original attribute value.
51
+ def write_attribute(attr, value)
52
+ attr = attr.to_s
53
+
54
+ unless self.class.delta_changes_options[:columns].include?(attr)
55
+ return super(attr, value)
56
+ end
57
+
58
+ # The attribute already has an unsaved change.
59
+ if delta_changed_attributes.include?(attr)
60
+ old = delta_changed_attributes[attr]
61
+ super(attr, value)
62
+ delta_changed_attributes.delete(attr) unless delta_changes_field_changed?(attr, old, value)
63
+ else
64
+ old = respond_to?(:clone_attribute_value) ? clone_attribute_value(:read_attribute, attr) : read_attribute(attr).dup
65
+ super(attr, value)
66
+ delta_changed_attributes[attr] = old if delta_changes_field_changed?(attr, old, value)
67
+ end
68
+ end
69
+ end
70
+
71
+ module InstanceMethods
72
+ def _write_attribute(attr, value)
73
+ attr = attr.to_s
74
+
75
+ unless self.class.delta_changes_options[:columns].include?(attr)
76
+ return super(attr, value)
77
+ end
78
+
79
+ # The attribute already has an unsaved change.
80
+ if delta_changed_attributes.include?(attr)
81
+ old = delta_changed_attributes[attr]
82
+ super(attr, value)
83
+ delta_changed_attributes.delete(attr) unless delta_changes_field_changed?(attr, old, value)
84
+ else
85
+ old = read_attribute(attr).dup
86
+ super(attr, value)
87
+ delta_changed_attributes[attr] = old if delta_changes_field_changed?(attr, old, value)
88
+ end
89
+ end
90
+ end
91
+
45
92
  def delta_changes
46
93
  delta_changed_attributes.keys.inject({}) { |h, attr| h[attr] = attribute_delta_change(attr); h }
47
94
  end
@@ -89,26 +136,6 @@ module DeltaChanges
89
136
  delta_changed_attributes[attr] = attribute_value
90
137
  end
91
138
 
92
- # Wrap write_attribute to remember original attribute value.
93
- def write_attribute_with_delta_changes(attr, value)
94
- attr = attr.to_s
95
-
96
- unless self.class.delta_changes_options[:columns].include?(attr)
97
- return write_attribute_without_delta_changes(attr, value)
98
- end
99
-
100
- # The attribute already has an unsaved change.
101
- if delta_changed_attributes.include?(attr)
102
- old = delta_changed_attributes[attr]
103
- write_attribute_without_delta_changes(attr, value)
104
- delta_changed_attributes.delete(attr) unless delta_changes_field_changed?(attr, old, value)
105
- else
106
- old = respond_to?(:clone_attribute_value) ? clone_attribute_value(:read_attribute, attr) : read_attribute(attr).dup
107
- write_attribute_without_delta_changes(attr, value)
108
- delta_changed_attributes[attr] = old if delta_changes_field_changed?(attr, old, value)
109
- end
110
- end
111
-
112
139
  def delta_changes_field_changed?(attr, old, value)
113
140
  return true if !old.present? && value.present?
114
141
 
@@ -1,3 +1,3 @@
1
1
  module DeltaChanges
2
- VERSION = "2.2.1"
2
+ VERSION = "2.2.2"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: delta_changes
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.1
4
+ version: 2.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Grosser
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-02-11 00:00:00.000000000 Z
11
+ date: 2021-02-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -19,7 +19,7 @@ dependencies:
19
19
  version: 3.2.22
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
- version: '5.2'
22
+ version: '6.3'
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
@@ -29,7 +29,7 @@ dependencies:
29
29
  version: 3.2.22
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
- version: '5.2'
32
+ version: '6.3'
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: rake
35
35
  requirement: !ruby/object:Gem::Requirement
@@ -87,7 +87,7 @@ dependencies:
87
87
  - !ruby/object:Gem::Version
88
88
  version: '0'
89
89
  - !ruby/object:Gem::Dependency
90
- name: wwtd
90
+ name: byebug
91
91
  requirement: !ruby/object:Gem::Requirement
92
92
  requirements:
93
93
  - - ">="
@@ -101,7 +101,7 @@ dependencies:
101
101
  - !ruby/object:Gem::Version
102
102
  version: '0'
103
103
  - !ruby/object:Gem::Dependency
104
- name: byebug
104
+ name: matching_bundle
105
105
  requirement: !ruby/object:Gem::Requirement
106
106
  requirements:
107
107
  - - ">="