Sha256: 2b7a5fe85e971e99cc39117d259eddbe9cf297ba7a5ff7a9febc9190cc7caed4
Contents?: true
Size: 961 Bytes
Versions: 2
Compression:
Stored size: 961 Bytes
Contents
module Tc211::Termbase class Concept < Hash attr_accessor :id attr_accessor :terms DEFAULT_LANGUAGE = "eng" 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 default_term if self[DEFAULT_LANGUAGE] self[DEFAULT_LANGUAGE] else puts "[tc211-termbase] term (lang: #{keys.first}, ID: #{id}) is missing a corresponding English term, probably needs updating." self[keys.first] end end def to_hash default_hash = { "term" => default_term.term, "termid" => id } self.inject(default_hash) 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
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
tc211-termbase-0.1.2 | lib/tc211/termbase/concept.rb |
tc211-termbase-0.1.1 | lib/tc211/termbase/concept.rb |