Module: RailsWayback::AssetProvenance

Defined in:
lib/rails_wayback/asset_provenance.rb

Constant Summary collapse

EVENT_PREFIX =
"rails_wayback.asset."
ORIGINS =
%i[historical current].freeze

Class Method Summary collapse

Class Method Details

.paths_by_origin(entries) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/rails_wayback/asset_provenance.rb', line 19

def paths_by_origin(entries)
  result = { historical: [], current: [] }
  Array(entries).each do |entry|
    event = entry_value(entry, :event)
    next unless event.start_with?(EVENT_PREFIX)

    origin = event.delete_prefix(EVENT_PREFIX).to_sym
    next unless result.key?(origin)

    identifier = entry_value(entry, :identifier)
    result[origin] << identifier unless identifier.empty?
  end
  result.transform_values(&:uniq)
end

.record(origin:, identifier:) ⇒ Object



10
11
12
13
14
15
16
17
# File 'lib/rails_wayback/asset_provenance.rb', line 10

def record(origin:, identifier:)
  return unless ORIGINS.include?(origin.to_sym)

  RailsWayback::RenderContext.current&.record(
    event: "#{EVENT_PREFIX}#{origin}",
    identifier: identifier
  )
end