Method: Onoma::Nomenclature.harvest

Defined in:
lib/onoma/nomenclature.rb

.harvest(element, options = {}) ⇒ Object



24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/onoma/nomenclature.rb', line 24

def harvest(element, options = {})
  notions = element.attr('notions').to_s.split(/\s*\,\s*/).map(&:to_sym)
  options[:notions] = notions if notions.any?
  options[:translateable] = element.attr('translateable').to_s != 'false'
  name = element.attr('name').to_s
  nomenclature = new(name, options)
  element.xpath('xmlns:properties/xmlns:property').each do |property|
    nomenclature.harvest_property(property)
  end
  element.xpath('xmlns:items/xmlns:item').each do |item|
    nomenclature.harvest_item(item)
  end
  nomenclature.list.each(&:fetch_parent)
  nomenclature.rebuild_tree!
  nomenclature
end