Sha256: 62515f79ac55559f2b6f86c57bcd77f7a65a57831296e9973a7555cab5a1ba11

Contents?: true

Size: 581 Bytes

Versions: 1

Compression:

Stored size: 581 Bytes

Contents

module Tc211::Termbase

class Concept < Hash
  attr_accessor :id
  attr_accessor :terms

  def initialize(options={})
    terms = options.delete(:terms) || []
    terms.each do |term|
      add_term(term)
    end

    options.each_pair do |k,v|
      self.send("#{k}=", v)
    end
  end

  def add_term(term)
    self[term.language_code] = term
  end

  def to_hash
    self.inject({}) do |acc, (lang, term)|
      acc.merge!(lang => term.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

1 entries across 1 versions & 1 rubygems

Version Path
tc211-termbase-0.1.0 lib/tc211/termbase/concept.rb