Method: RbPath::Query#parse_string_query
- Defined in:
- lib/rbpath/query.rb
#parse_string_query(query) ⇒ Object
Parsing rules:
-
query keys are seperated by spaces, keys with spaces must be single quoted
-
brackets group keys into an NOR group
-
parens group keys into a OR group
-
valid keys names consist of [chars|nums|spaces|-|_|.], anything else can be used as a seperator inside the parens/brackets
17 18 19 20 21 22 23 |
# File 'lib/rbpath/query.rb', line 17 def parse_string_query(query) query.scan(/(\([^\)]+\)|\[[^\]]+\]|'[^']+'|[^\s]+)/) .flatten .map { |keys| { multi: /\*\*/ === keys[0..1], neg: /[\[\*]/ === keys[0], keys: keys.scan(/[\w\d\s\-\_\.]+/) }} end |