Module: ParseUtil

Defined in:
lib/oddb2xml/parslet_compositions.rb

Defined Under Namespace

Classes: HandleSwissmedicErrors

Class Method Summary collapse

Class Method Details

.capitalize(string) ⇒ Object



63
64
65
# File 'lib/oddb2xml/parslet_compositions.rb', line 63

def ParseUtil.capitalize(string)
  string.split(/\s+/u).collect { |word| word.capitalize }.join(' ').strip
end

.parse_compositions(composition_text, active_agents_string = '') ⇒ Object



67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
# File 'lib/oddb2xml/parslet_compositions.rb', line 67

def ParseUtil.parse_compositions(composition_text, active_agents_string = '')
  active_agents = active_agents_string ? active_agents_string.downcase.split(/,\s+/) : []
  comps = []
  lines = composition_text.gsub(/\r\n?/u, "\n").split(/\n/u)
  lines.select {
    |line|
    composition =  ParseComposition.from_string(line)
    if composition.is_a?(ParseComposition)
      composition.substances.each {
        |substance_item|
        substance_item.is_active_agent = (active_agents.find {|x| x.downcase.eql?(substance_item.name.downcase) } != nil)
        substance_item.is_active_agent = true if substance_item.chemical_substance and active_agents.find {|x| x.downcase.eql?(substance_item.chemical_substance.name.downcase) }
       }
      comps << composition
    end
  }
  comps << ParseComposition.new(composition_text.split(/,|:|\(/)[0]) if comps.size == 0
  comps
end