Sha256: d13c9da90cf4b29d42bc630008205686be03c2091757c30da841193cd6293007

Contents?: true

Size: 643 Bytes

Versions: 1

Compression:

Stored size: 643 Bytes

Contents

# frozen_string_literal: true

module Teton
  # Describe what data should be returned when requested.
  class Entry
    attr_reader :key, :data, :created_at, :updated_at

    def initialize(key, data: {}, created_at: Time.now.utc, updated_at: Time.now.utc)
      @key        = key.to_s
      @data       = (data || {}).transform_keys(&:to_s)
      @created_at = created_at || Time.now.utc
      @updated_at = updated_at || Time.now.utc

      freeze
    end

    def [](data_key)
      data[data_key.to_s]
    end

    def to_s
      "[#{key} |> #{created_at} | #{updated_at}] #{data.map { |k, v| "#{k}: #{v}" }.join(', ')}"
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
teton-0.0.3 lib/teton/entry.rb