Class: Jumbotron::Canonical::ChangeSet

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
app/models/jumbotron/canonical.rb

Overview

Transaction-local accumulator for material canonical attribute changes.

Defined Under Namespace

Classes: Entry

Instance Method Summary collapse

Constructor Details

#initializeChangeSet

Returns a new instance of ChangeSet.



93
94
95
# File 'app/models/jumbotron/canonical.rb', line 93

def initialize
  @entries = []
end

Instance Method Details

#eachObject



110
111
112
# File 'app/models/jumbotron/canonical.rb', line 110

def each(&)
  entries.each(&)
end

#record(subject:, attribute:, previous:, new_value:) ⇒ Object



97
98
99
100
101
102
103
104
105
106
# File 'app/models/jumbotron/canonical.rb', line 97

def record(subject:, attribute:, previous:, new_value:)
  return if serialize(previous) == serialize(new_value)

  @entries << Entry.new(
    subject: subject,
    attribute: attribute.to_s,
    previous: previous,
    new_value: new_value
  )
end