class FormDataParser
def self.escape_single_quote(form_data)
substitute(form_data, '\'', ''')
end
def self.unescape_single_quote(form_data)
substitute(form_data, ''', '\'')
end
private
def self.substitute(form_data, pattern, replace)
doc = Nokogiri::HTML::DocumentFragment.parse(form_data, 'UTF-8')
doc.xpath('.//field').each do |field|
field.attributes['name'].value = field.attributes['name'].value.gsub(pattern, replace)
end
doc.xpath('.//widget').each do |widget|
widget.attributes['field'].value = widget.attributes['field'].value.gsub(pattern, replace)
end
doc.xpath('.//ffield').each do |ffield|
ffield.attributes['name'].value = ffield.attributes['name'].value.gsub(pattern, replace)
end
doc
end
end