class Stepmod::Utils::Converters::Term

Public Instance Methods

convert(node, state = {}) click to toggle source
# File lib/stepmod/utils/converters/term.rb, line 9
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 "=== #{treat_acronym(treat_children(node, state).strip)}"
  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)
  "=== #{treat_acronym(term_def)}\n\n#{converted_alt}"
end

Private Instance Methods

treat_acronym(term_def) click to toggle source
# File lib/stepmod/utils/converters/term.rb, line 27
def treat_acronym(term_def)
  return term_def if term_def !~ /.+\(.+?\)$/

  _, term_text, term_acronym = term_def.match(/(.+?)(\(.+\))$/).to_a
  "#{term_text}\nalt:[#{term_acronym.gsub(/\(|\)/, '')}]"
end