Class: Stepmod::Utils::Converters::Term

Inherits:
Base
  • Object
show all
Defined in:
lib/stepmod/utils/converters/term.rb

Constant Summary

Constants inherited from Base

Base::PREFIXES_REGEX

Instance Method Summary collapse

Instance Method Details

#convert(node, state = {}) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/stepmod/utils/converters/term.rb', line 19

def convert(node, state = {})
  first_child = node.children.find do |child|
    child.name == "text" && !child.text.to_s.strip.empty?
  end

  unless first_child &&
      node.text.split(";").length == 2 &&
      defined?(Stepmod::Utils::Converters::Synonym)

    return Stepmod::Utils::Term.from_h(
      "definition" => treat_children(node, state).strip,
    ).to_mn_adoc
  end

  term_def, alt = node.text.split(";")
  alt_xml = Nokogiri::XML::Text.new(alt, Nokogiri::XML::Document.new)
  converted_alt = Stepmod::Utils::Converters::Synonym.new.convert(alt_xml)

  Stepmod::Utils::Term.from_h(
    "definition" => term_def,
    "synonyms" => [converted_alt],
  ).to_mn_adoc
end

#treat_children(node, state) ⇒ Object

We strip all the children in the case for “stem:-manifold” vs “stem: -manifold”



14
15
16
17
# File 'lib/stepmod/utils/converters/term.rb', line 14

def treat_children(node, state)
  res = node.children.map { |child| treat(child, state) }
  res.map(&:strip).reject(&:empty?).join("")
end