Sha256: 7b782985c6abbbcdb421f87573d4e8f12e5cac5753018afe9980d55fc66979ec

Contents?: true

Size: 784 Bytes

Versions: 4

Compression:

Stored size: 784 Bytes

Contents

# frozen_string_literal: true

module Glossarist
  # An adapter to read concepts in V1 format, converts them to v2 format and
  # load into glossarist concept model.
  class V1Reader
    def self.load_concept_from_file(filename)
      new.load_concept_from_file(filename)
    end

    def load_concept_from_file(filename)
      concept_hash = Psych.safe_load(File.read(filename), permitted_classes: [Date])
      ManagedConcept.new(generate_v2_concept_hash(concept_hash))
    end

    private

    def generate_v2_concept_hash(concept_hash)
      v2_concept = { "groups" => concept_hash["groups"] }
      v2_concept["data"] = {
        "identifier" => concept_hash["termid"],
        "localized_concepts" => concept_hash.values.grep(Hash),
      }

      v2_concept
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
glossarist-2.0.4 lib/glossarist/v1_reader.rb
glossarist-2.0.3 lib/glossarist/v1_reader.rb
glossarist-2.0.2 lib/glossarist/v1_reader.rb
glossarist-2.0.1 lib/glossarist/v1_reader.rb