class RqlParser::Services::Format
Formats input into parser-understandable string
Constants
- RQL_FORMAT
Public Instance Methods
execute()
click to toggle source
# File lib/rql_parser/services/format.rb, line 11 def execute res = remove_whitespace(rql) replace_shorthands(res) unless errors.any? end
Private Instance Methods
remove_whitespace(rql)
click to toggle source
# File lib/rql_parser/services/format.rb, line 18 def remove_whitespace(rql) if /[0-9a-zA-Z] [0-9a-zA-Z(]/.match?(rql) errors.add(:rql, 'has invalid whitespace') else rql.delete(' ') end end
replace_shorthands(rql)
click to toggle source
# File lib/rql_parser/services/format.rb, line 26 def replace_shorthands(rql) res = without_shorthands(rql) if /[!<>=]/.match?(res) errors.add(:rql, 'has invalid shorthands') else res end end
without_shorthands(rql)
click to toggle source
# File lib/rql_parser/services/format.rb, line 35 def without_shorthands(rql) rql.gsub(/([0-9A-Za-z_]+)=(eq|ne|lt|le|gt|ge)=([0-9A-Za-z_]+)/, '\2(\1,\3)') .gsub(/([0-9A-Za-z_]+)!=([0-9A-Za-z_]+)/, 'ne(\1,\2)') .gsub(/([0-9A-Za-z_]+)<([0-9A-Za-z_]+)/, 'lt(\1,\2)') .gsub(/([0-9A-Za-z_]+)<=([0-9A-Za-z_]+)/, 'le(\1,\2)') .gsub(/([0-9A-Za-z_]+)>([0-9A-Za-z_]+)/, 'gt(\1,\2)') .gsub(/([0-9A-Za-z_]+)>=([0-9A-Za-z_]+)/, 'ge(\1,\2)') .gsub(/([0-9A-Za-z_]+)=([0-9A-Za-z_]+)/, 'eq(\1,\2)') end