Sha256: f12556127e7890d2f3714655bf28718e159f01b17dd87efc545c7d44337d0a02

Contents?: true

Size: 592 Bytes

Versions: 2

Compression:

Stored size: 592 Bytes

Contents

# frozen_string_literal: true

module Umwelt::History
  class Follow
    include Hanami::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

2 entries across 2 versions & 1 rubygems

Version Path
umwelt-0.1.1 lib/umwelt/history/follow.rb
umwelt-0.1.0 lib/umwelt/history/follow.rb