paper_trail-hashdiff 0.0.4 → 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/paper_trail_hashdiff.rb +15 -1
  3. metadata +6 -7
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c6d9379b60da6369358df9b60636ce0e1cb5a9bbfafc2731919b6c4b9b267930
4
- data.tar.gz: e7d2930f22513518e77c0bd8d1cfa57d19c84c5a0b5e6b8ca9806dd9d404bb9a
3
+ metadata.gz: 8e1ce11ea61211ce5cccc2563dc333fd99fff0344009330240665e6e2933ecf0
4
+ data.tar.gz: ebb52d76f80de9e0945758a49941785c93bbb293519dcc224040d08652e8ee13
5
5
  SHA512:
6
- metadata.gz: 21ff034bd0e33b2335a2060a74dc26e9263ac775f2d296b756868594d919ba96e1b30a4a661834676ced90b33a22552c348b7f9a23bc2b99dec14521667648c3
7
- data.tar.gz: 5704709fb7baf3ab87a8ec35140fdef12895ac520e4e382bcf2409ac3649d45f09cdc8ff7a20037e46d0682b406cda682cb131421d4e26d456740bd17ac86876
6
+ metadata.gz: 7d466c77636c2ece0a8943e71e9ba1fb0fee89b68c5717bb7f1415571424196e10438b30af99e9cdb6fbf3f104e6a8fc0a98d5cef2294973c2d18271b58ef2b7
7
+ data.tar.gz: 4d7b8d629395134f7568bc0e463abf994742a3d0aa8b5d77d986e16e223dcc367b3e373cc251697858ede845b9311188faa73b659e14c0fe8f13c0a5cdbdb852
@@ -3,10 +3,24 @@
3
3
  # Allows storing only incremental changes in the object_changes column
4
4
  # Uses HashDiff (https://github.com/liufengyun/hashdiff)
5
5
  class PaperTrailHashDiff
6
+ attr_reader :only_objects
7
+
8
+ def initialize(only_objects: false)
9
+ @only_objects = only_objects
10
+ end
11
+
6
12
  def diff(changes)
7
13
  diff_changes = {}
8
14
  changes.each do |field, value_changes|
9
- diff_changes[field] = HashDiff.diff(value_changes[0], value_changes[1], array_path: true)
15
+ diff_changes[field] =
16
+ if !only_objects || (
17
+ value_changes[0] && value_changes[1] &&
18
+ (value_changes[0].is_a?(Hash) || value_changes[0].is_a?(Array))
19
+ )
20
+ Hashdiff.diff(value_changes[0], value_changes[1], array_path: true, use_lcs: false)
21
+ else
22
+ value_changes
23
+ end
10
24
  end
11
25
  diff_changes
12
26
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: paper_trail-hashdiff
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ashwin Hegde
@@ -16,28 +16,28 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0.3'
19
+ version: '1.0'
20
20
  type: :runtime
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: '0.3'
26
+ version: '1.0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rubocop
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '0.56'
33
+ version: '0.77'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '0.56'
40
+ version: '0.77'
41
41
  description: Allows storing only incremental changes in the object_changes column
42
42
  email: ashwin.hegde12@gmail.com
43
43
  executables: []
@@ -64,8 +64,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
64
64
  - !ruby/object:Gem::Version
65
65
  version: '0'
66
66
  requirements: []
67
- rubyforge_project:
68
- rubygems_version: 2.7.6
67
+ rubygems_version: 3.0.3
69
68
  signing_key:
70
69
  specification_version: 4
71
70
  summary: Paper Trail Hashdiff