Sha256: e55c33cc153d35cb4c6dba88477718aa2e6f377343baa75aad3f134b7dd52246

Contents?: true

Size: 900 Bytes

Versions: 8

Compression:

Stored size: 900 Bytes

Contents

require 'forwardable'

module BEL
  module Model
    class Metadata

      attr_reader :values

      extend Forwardable
      include Enumerable

      DOCUMENT_HEADER = :document_header

      def initialize(values = {})
        if values.is_a? Array
          @values = Hash[values.map { |item| item.values_at(:name, :value) }]
        else
          @values = values
        end
      end

      def document_header
        @values[DOCUMENT_HEADER] ||= {}
      end

      def document_header=(document_header)
        @values[DOCUMENT_HEADER] = document_header
      end

      def to_a
        @values.each_pair.map { |key, value|
          {
            name:  key,
            value: value
          }
        }
      end

      def_delegators :@values, :[],    :"[]=", :delete_if, :each, :each_pair,
                               :fetch, :keys,  :size,      :sort, :store
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
bel-0.4.0.beta.9 lib/bel/evidence_model/metadata.rb
bel-0.4.0.beta.8 lib/bel/evidence_model/metadata.rb
bel-0.4.0.beta.7 lib/bel/evidence_model/metadata.rb
bel-0.4.0.beta.5 lib/bel/evidence_model/metadata.rb
bel-0.4.0.beta.4 lib/bel/evidence_model/metadata.rb
bel-0.4.0.beta.3 lib/bel/evidence_model/metadata.rb
bel-0.4.0.beta.2 lib/bel/evidence_model/metadata.rb
bel-0.4.0.beta1 lib/bel/evidence_model/metadata.rb