Class: PaperTrailDiff::CollectionAssociationDiff

Inherits:
Object
  • Object
show all
Defined in:
lib/paper_trail_diff/value_objects.rb,
sig/generated/paper_trail_diff/value_objects.rbs

Overview

Membership and associated-record changes for has_many.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(kind:, added:, removed:, changed:) ⇒ CollectionAssociationDiff

: (kind: Symbol, added: Array, removed: Array, changed: Array) -> void

Parameters:



82
83
84
85
86
87
88
# File 'lib/paper_trail_diff/value_objects.rb', line 82

def initialize(kind:, added:, removed:, changed:)
  @kind = kind
  @added = added.dup.freeze
  @removed = removed.dup.freeze
  @changed = changed.dup.freeze
  freeze
end

Instance Attribute Details

#addedArray[RecordSnapshot] (readonly)

Signature:

  • Array[RecordSnapshot]

Returns:



77
78
79
# File 'lib/paper_trail_diff/value_objects.rb', line 77

def added
  @added
end

#changedArray[RecordChange] (readonly)

Signature:

  • Array[RecordChange]

Returns:



79
80
81
# File 'lib/paper_trail_diff/value_objects.rb', line 79

def changed
  @changed
end

#kindSymbol (readonly)

Signature:

  • Symbol

Returns:

  • (Symbol)


76
77
78
# File 'lib/paper_trail_diff/value_objects.rb', line 76

def kind
  @kind
end

#removedArray[RecordSnapshot] (readonly)

Signature:

  • Array[RecordSnapshot]

Returns:



78
79
80
# File 'lib/paper_trail_diff/value_objects.rb', line 78

def removed
  @removed
end

Instance Method Details

#empty?Boolean

: () -> bool

Returns:

  • (Boolean)


91
92
93
# File 'lib/paper_trail_diff/value_objects.rb', line 91

def empty?
  added.empty? && removed.empty? && changed.empty?
end

#to_hHash[Symbol, untyped]

: () -> Hash[Symbol, untyped]

Returns:

  • (Hash[Symbol, untyped])


96
97
98
99
100
101
102
103
# File 'lib/paper_trail_diff/value_objects.rb', line 96

def to_h
  {
    kind: kind,
    added: Support.serialize(added),
    removed: Support.serialize(removed),
    changed: Support.serialize(changed)
  }
end