Class: Red::ConditionalNode::CaseNode

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

Overview

:nodoc:

Instance Method Summary collapse

Constructor Details

#initialize(switch, *cases) ⇒ CaseNode

Returns a new instance of CaseNode.



28
29
30
31
# File 'lib/red/conditional_nodes.rb', line 28

def initialize(switch, *cases)
  @switch, @else_case = [switch, cases.pop].build_nodes
  @when_cases = cases.build_nodes
end

Instance Method Details

#compile_internals(options = {}) ⇒ Object



37
38
39
40
41
42
# File 'lib/red/conditional_nodes.rb', line 37

def compile_internals(options = {})
  switch, else_case = [@switch, @else_case].compile_nodes
  when_cases = @when_cases.compile_nodes.join
  default = "default:%s;" % [else_case] unless else_case.empty?
  return [switch, when_cases, default]
end

#compile_node(options = {}) ⇒ Object



33
34
35
# File 'lib/red/conditional_nodes.rb', line 33

def compile_node(options = {})
  return "switch (%s) { %s%s }" % self.compile_internals
end