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
|