paper_trail-hashdiff 0.0.6 → 0.1.0

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 +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: '08d1d49d327c3469162213a282bee218a12f8007a90ee2012f9aad49650e5ee3'
4
- data.tar.gz: 731f5dfc626f9237b9eb6ab4f4feb5ecee26852a1d20836511c86d7b76a1d914
3
+ metadata.gz: 251dd60eb103f5d4a523182092e1f3210d4fdaded0c05f32bec6306bc5ee8f31
4
+ data.tar.gz: 2a339767c1988bac2dd544800c37dabc0dce7fa591027ecb31e14b7ca4a06fdc
5
5
  SHA512:
6
- metadata.gz: 265624a98775ec5c40169d39e14746de1d3baf940be778f3995aed102fdd82156a7b90b42442a7e7b7846754e99c032385b6b0ac9ef6aefd8f6b1978bf389c72
7
- data.tar.gz: 38bb6a40efd479fea686a2437ea9dcf1b009a73a1b0b5ff12dd53786c3000c3f04599d8c2a390d16aa83a3a439d9e688c39462051a4c937d405f2f0f88c0d27d
6
+ metadata.gz: a0598ff96236088341b5679b4540157dce805c61943c344f159fb63c48f7802c8003ddc08de086361b24c69a48a1523df35df70dc4017e6ff7b6e3d96a37e63f
7
+ data.tar.gz: 23e0be45dd69f7483cf1c8feb7d947d103d7c17d3143faec4e590bdabf1132a6b68107ee55ff4635df8a51546284d8df6bfba933ff4d43fdb782291f6fd284fd
@@ -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
+ if (
16
+ !only_objects ||
17
+ (value_changes[0] && (value_changes[0].is_a?(Hash) || value_changes[0].is_a?(Array))) ||
18
+ (value_changes[1] && (value_changes[1].is_a?(Hash) || value_changes[1].is_a?(Array)))
19
+ )
20
+ diff_changes[field] = Hashdiff.diff(value_changes[0], value_changes[1], array_path: true)
21
+ else
22
+ diff_changes[field] = 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.6
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ashwin Hegde