Sha256: 5e1218d40bd69d464d138090f34d0632ca1f562d94f67389b47ca5d9cde44a64

Contents?: true

Size: 591 Bytes

Versions: 1

Compression:

Stored size: 591 Bytes

Contents

# frozen_string_literal: true

module Umwelt::History
  class Follow < Umwelt::Abstract::Interactor
    expose :episodes

    def initialize(
      reader: Umwelt::Episode::File::Restore,
      path: '.umwelt'
    )
      @reader = reader.new(path: path)
    end

    def call(phases)
      @episodes = phases.map { |phase| episode(phase) }
    end

    private

    def episode(phase)
      restored = restore_episode(phase.id)
      error! restored.errors if restored.failure?
      restored.struct
    end

    def restore_episode(phase_id)
      @reader.call(phase_id)
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
umwelt-0.2 lib/umwelt/history/follow.rb