Class: Red::ConditionalNode::CaseNode
- Inherits:
-
Object
- Object
- Red::ConditionalNode::CaseNode
- Defined in:
- lib/red/conditional_nodes.rb
Overview
:nodoc:
Instance Method Summary collapse
- #compile_internals(options = {}) ⇒ Object
- #compile_node(options = {}) ⇒ Object
-
#initialize(switch, *cases) ⇒ CaseNode
constructor
A new instance of CaseNode.
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( = {}) 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( = {}) return "switch (%s) { %s%s }" % self.compile_internals end |