Module: Caoutsearch::Search::Sanitizer
- Defined in:
- lib/caoutsearch/search/sanitizer.rb
Constant Summary collapse
- ESCAPED_CHARACTERS =
"+-&|!(){}[]^~*?:"
- ESCAPED_CHARACTERS_REGEXP =
/([+\-&|!(){}\[\]\^~*?:])/
Class Method Summary collapse
Class Method Details
.sanitize(value, characters = ESCAPED_CHARACTERS) ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/caoutsearch/search/sanitizer.rb', line 10 def sanitize(value, characters = ESCAPED_CHARACTERS) case value when Array value.map { |v| sanitize(v) } when Hash value.each { |k, v| value[k] = sanitize(v) } when String regexp = ESCAPED_CHARACTERS_REGEXP if characters == ESCAPED_CHARACTERS regexp ||= Regexp.new("([#{Regexp.escape(characters)}])") value.gsub(regexp, '\\\\\1') else value end end |