Sha256: 32e55840056fbc23901878054980f9c38a78bf452ba1296b968da0051356ca45

Contents?: true

Size: 621 Bytes

Versions: 3

Compression:

Stored size: 621 Bytes

Contents

# frozen_string_literal: true

require_relative '../structs/phase'
require_relative '../structs/fragment'

module Umwelt::Episode
  class Mapper < Umwelt::Abstract::Mapper
    def call(
      data = {
        phase: {},
        engaged: [],
        forgotten: []
      }
    )

      @struct = Struct::Episode.new(
        phase: phase(data[:phase]),
        engaged: fragments(data[:engaged]),
        forgotten: data[:forgotten]
      )
    end

    private

    def fragments(array)
      array.map { |data| fill(Struct::Fragment, data) }
    end

    def phase(data)
      fill(Struct::Phase, data)
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
umwelt-0.2 lib/umwelt/episode/mapper.rb
umwelt-0.1.1 lib/umwelt/episode/mapper.rb
umwelt-0.1.0 lib/umwelt/episode/mapper.rb