Sha256: 3bd269353e6397930bd5aab1674c8fd9b2e630b7851ebd497f11a8bca4e942e4
Contents?: true
Size: 1.62 KB
Versions: 2
Compression:
Stored size: 1.62 KB
Contents
module Predicator module Visitors class String < Visitor private def terminal node node.left.to_s end def visit_STRING node "'#{node.left}'" end def visit_ARRAY node contents = node.left.map{ |item| visit item }.join(", ") "[#{contents}]" end def visit_NOT node "!#{visit node.left}" end def visit_GROUP node "(#{visit node.left})" end def visit_EQ node [visit(node.left), " = ", visit(node.right)].join end def visit_GT node [visit(node.left), " > ", visit(node.right)].join end def visit_LT node [visit(node.left), " < ", visit(node.right)].join end def visit_AND node [visit(node.left), " and ", visit(node.right)].join end def visit_OR node [visit(node.left), " or ", visit(node.right)].join end def visit_BETWEEN node [visit(node.left), " between ", visit(node.middle), " and ", visit(node.right)].join end def visit_IN node [visit(node.left), " in ", visit(node.right)].join end def visit_NOTIN node [visit(node.left), " not in ", visit(node.right)].join end def visit_STRSTARTSWITH node [visit(node.left), " starts with ", visit(node.right)].join end def visit_STRENDSWITH node [visit(node.left), " ends with ", visit(node.right)].join end def visit_DATEAGO node visit(node.left) + " ago" end def visit_DATEFROMNOW node visit(node.left) + " from now" end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
predicator-1.2.1 | lib/predicator/visitors/string.rb |
predicator-1.2.0 | lib/predicator/visitors/string.rb |