Class: PaperTrailDiff::ActivitySnapshotProvider

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

Overview

Optional full/partial snapshot operations consumed by the activity sequence.

Instance Method Summary collapse

Constructor Details

#initialize(snapshotter:, refresher:, preparer:) ⇒ ActivitySnapshotProvider

: (snapshotter: untyped, refresher: untyped, preparer: untyped) -> void

Parameters:

  • snapshotter: (Object)
  • refresher: (Object)
  • preparer: (Object)


8
9
10
11
12
# File 'lib/paper_trail_diff/activity_snapshot_sequence.rb', line 8

def initialize(snapshotter:, refresher:, preparer:)
  @snapshotter = snapshotter
  @refresher = refresher
  @preparer = preparer
end

Instance Method Details

#advance_root(root_endpoint, context_endpoint, previous_snapshot, event:) ⇒ RecordSnapshot?

: (untyped, untyped, RecordSnapshot?, event: ActivityEvent) -> RecordSnapshot?

Parameters:

Returns:



49
50
51
52
53
54
55
56
# File 'lib/paper_trail_diff/activity_snapshot_sequence.rb', line 49

def advance_root(root_endpoint, context_endpoint, previous_snapshot, event:)
  @refresher.advance_root(
    root_endpoint,
    context_endpoint,
    previous_snapshot,
    event: event
  )
end

#call(root_endpoint, context_endpoint) ⇒ RecordSnapshot?

: (untyped, untyped) -> RecordSnapshot?

Parameters:

  • (Object)
  • (Object)

Returns:



25
26
27
# File 'lib/paper_trail_diff/activity_snapshot_sequence.rb', line 25

def call(root_endpoint, context_endpoint)
  @snapshotter.call(root_endpoint, context_endpoint)
end

#prepare(record, root_versions, start_at: root_versions.first.created_at, end_at: root_versions.last.created_at) ⇒ void

This method returns an undefined value.

: (untyped, Array, ?start_at: untyped, ?end_at: untyped) -> void

Parameters:

  • (Object)
  • (Array[untyped])
  • start_at: (Object) (defaults to: root_versions.first.created_at)
  • end_at: (Object) (defaults to: root_versions.last.created_at)


15
16
17
18
19
20
21
22
# File 'lib/paper_trail_diff/activity_snapshot_sequence.rb', line 15

def prepare(
  record,
  root_versions,
  start_at: root_versions.first.created_at,
  end_at: root_versions.last.created_at
)
  @preparer.call(record, root_versions, start_at: start_at, end_at: end_at)
end

#refresh(root_endpoint, context_endpoint, previous_snapshot, branches, event:, isolated:) ⇒ RecordSnapshot?

: (untyped, untyped, RecordSnapshot?, Array, event: ActivityEvent, isolated: bool) -> RecordSnapshot?

Parameters:

Returns:



30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/paper_trail_diff/activity_snapshot_sequence.rb', line 30

def refresh( # rubocop:disable Metrics/ParameterLists
  root_endpoint,
  context_endpoint,
  previous_snapshot,
  branches,
  event:,
  isolated:
)
  @refresher.call(
    root_endpoint,
    context_endpoint,
    previous_snapshot,
    branches,
    event: event,
    isolated: isolated
  )
end