Sha256: baec5d87beefca8fe10a3a6396ec76464c37a68e7c645b0820320a72a42c4b8e

Contents?: true

Size: 588 Bytes

Versions: 2

Compression:

Stored size: 588 Bytes

Contents

module Ddr::Models
  #
  # Maps vocabulary terms to names
  #
  class MetadataMapper
    extend MetadataMappers

    attr_reader :mapping

    # param vocab [MetadataVocabulary] the vocabulary
    def initialize(vocab)
      @mapping = vocab.terms.each_with_object({}) do |term, memo|
        memo[term.qualified_name] = term
      end
    end

    def terms
      mapping.values
    end

    def unqualified_names
      mapping.values.map(&:unqualified_name)
    end

    def merge(other)
      merged = self.dup
      merged.mapping.merge! other.mapping
      merged
    end

  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
ddr-models-3.0.0.alpha.2 lib/ddr/models/metadata/metadata_mapper.rb
ddr-models-3.0.0.alpha.1 lib/ddr/models/metadata/metadata_mapper.rb