Sha256: bf05965c5aec55aec855e8074934c90c51e3101afbe305d966f94823826d7d1f

Contents?: true

Size: 503 Bytes

Versions: 14

Compression:

Stored size: 503 Bytes

Contents

require_relative "concept"

module Tc211::Termbase

class ConceptCollection < Hash

  def add_term(term)
    if self[term.id]
      self[term.id].add_term(term)
    else
      self[term.id] = Concept.new(
        id: term.id,
        terms: [term]
      )
    end
  end

  def to_hash
    self.inject({}) do |acc, (id, concept)|
      acc.merge!(id => concept.to_hash)
    end
  end

  def to_file(filename)
    File.open(filename,"w") do |file|
      file.write(to_hash.to_yaml)
    end
  end

end

end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
tc211-termbase-0.2.1 lib/tc211/termbase/concept_collection.rb
tc211-termbase-0.1.13 lib/tc211/termbase/concept_collection.rb
tc211-termbase-0.1.12 lib/tc211/termbase/concept_collection.rb
tc211-termbase-0.1.11 lib/tc211/termbase/concept_collection.rb
tc211-termbase-0.1.10 lib/tc211/termbase/concept_collection.rb
tc211-termbase-0.1.9 lib/tc211/termbase/concept_collection.rb
tc211-termbase-0.1.8 lib/tc211/termbase/concept_collection.rb
tc211-termbase-0.1.7 lib/tc211/termbase/concept_collection.rb
tc211-termbase-0.1.6 lib/tc211/termbase/concept_collection.rb
tc211-termbase-0.1.5 lib/tc211/termbase/concept_collection.rb
tc211-termbase-0.1.4 lib/tc211/termbase/concept_collection.rb
tc211-termbase-0.1.2 lib/tc211/termbase/concept_collection.rb
tc211-termbase-0.1.1 lib/tc211/termbase/concept_collection.rb
tc211-termbase-0.1.0 lib/tc211/termbase/concept_collection.rb