class Riml::AST_Rewriter::VarEqualsComparisonOperator
Constants
- COMPARISON_OPERATOR_MATCH
Public Instance Methods
match?(node)
click to toggle source
# File lib/riml/ast_rewriter.rb, line 371 def match?(node) Nodes === node && AssignNode === node.nodes[0] && BinaryOperatorNode === (op = node.nodes[0].rhs) && op.operator =~ COMPARISON_OPERATOR_MATCH end
replace(node)
click to toggle source
# File lib/riml/ast_rewriter.rb, line 378 def replace(node) binary_op = node.nodes[0].rhs old_set_var = node.nodes[0] assign_true = old_set_var.dup.tap {|assign_t| assign_t.rhs = TrueNode.new} assign_false = old_set_var.dup.tap {|assign_f| assign_f.rhs = FalseNode.new} node.nodes = [ IfNode.new(binary_op, Nodes.new([ assign_true, ElseNode.new(Nodes.new([ assign_false ])) ])) ] reestablish_parents(node) end