Sha256: b38d4a184707fb6d07f3f409b8d44f34008b14d48a9de8b3f470fe81666eb3c1
Contents?: true
Size: 1.79 KB
Versions: 1
Compression:
Stored size: 1.79 KB
Contents
module FilterLexer class Expression def to_query return "#{query_string} #{query_variables}" end def query_string return elements.map(&:query_string).join(' ') end def query_variables return elements.map(&:query_variables).flatten end end class Group def query_string return "(#{elements.first.query_string})" end def query_variables return elements.first.query_variables end end class Filter def query_string return "#{identifier.sql} #{operator.sql} ?" end def query_variables return [data.sql] end end class Identifier def sql return "`#{text_value}`" end end class LogicOperator def query_string return sql end def query_variables return [] end end class OrOperator def sql return 'OR' end end class AndOperator def sql return 'AND' end end class Operator def query_string return sql end def query_variables return [] end end class EQOperator def sql return 'IS' if parent.data.is_a?(ValueSpecial) return '=' end end class NEQOperator def sql return 'IS NOT' if parent.data.is_a?(ValueSpecial) return '<>' end end class LTOperator def sql return '<' end end class LEOperator def sql return '<=' end end class GTOperator def sql return '>=' end end class GEOperator def sql return '>=' end end class NotLikeOperator def sql return 'NOT LIKE' end end class LikeOperator def sql return 'LIKE' end end class BooleanLiteralFalse def sql return 'FALSE' end end class BooleanLiteralTrue def sql return 'TRUE' end end class NullLiteral def sql return 'NULL' end end class StringLiteral def sql return text_value end end class NumberLiteral def sql return text_value end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
filter_lexer-0.1.1 | lib/filter_lexer/formatters/sql.rb |