Class: Red::ControlNode::UntilNode

Inherits:
Object
  • Object
show all
Defined in:
lib/red/control_nodes.rb

Overview

:nodoc:

Instance Method Summary collapse

Constructor Details

#initialize(condition, body, run_only_if_condition_met) ⇒ UntilNode

Returns a new instance of UntilNode.



77
78
79
80
# File 'lib/red/control_nodes.rb', line 77

def initialize(condition, body, run_only_if_condition_met)
  @condition, @body = [condition, body].build_nodes
  @do_while_loop = !run_only_if_condition_met
end

Instance Method Details

#compile_internals(options = {}) ⇒ Object



90
91
92
93
# File 'lib/red/control_nodes.rb', line 90

def compile_internals(options = {})
  condition, body = [@condition, @body].compile_nodes
  return [condition, body]
end

#compile_node(options = {}) ⇒ Object



82
83
84
85
86
87
88
# File 'lib/red/control_nodes.rb', line 82

def compile_node(options = {})
  if @do_while_loop
    return "do { %s; } while (!(%s))" % self.compile_internals.reverse
  else
    return "while (!(%s)) { %s; }" % self.compile_internals
  end
end