Class: Rgviz::WhereVisitor

Inherits:
ColumnVisitor show all
Defined in:
lib/rgviz_rails/executor.rb

Instance Attribute Summary

Attributes inherited from ColumnVisitor

#string

Instance Method Summary collapse

Methods inherited from ColumnVisitor

#<<, #escaped_string, #initialize, #visit_aggregate_column, #visit_boolean_column, #visit_date_column, #visit_date_time_column, #visit_format, #visit_group_by, #visit_id_column, #visit_label, #visit_number_column, #visit_option, #visit_pivot, #visit_scalar_function_column, #visit_string_column, #visit_time_of_day_column

Constructor Details

This class inherits a constructor from Rgviz::ColumnVisitor

Instance Method Details

#visit_binary_expression(node) ⇒ Object



536
537
538
539
540
541
# File 'lib/rgviz_rails/executor.rb', line 536

def visit_binary_expression(node)
  node.left.accept self
  @string += " #{node.operator} "
  node.right.accept self
  false
end

#visit_logical_expression(node) ⇒ Object



526
527
528
529
530
531
532
533
534
# File 'lib/rgviz_rails/executor.rb', line 526

def visit_logical_expression(node)
  @string += "("
  node.operands.each_with_index do |operand, i|
    @string += " #{node.operator} " if i > 0
    operand.accept self
  end
  @string += ")"
  false
end

#visit_unary_expression(node) ⇒ Object



543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
# File 'lib/rgviz_rails/executor.rb', line 543

def visit_unary_expression(node)
  case node.operator
  when UnaryExpression::Not
    @string += 'not ('
    node.operand.accept self
    @string += ')'
  when UnaryExpression::IsNull
    node.operand.accept self
    @string += 'is null'
  when UnaryExpression::IsNotNull
    node.operand.accept self
    @string += 'is not null'
  end
  false
end