Class: Red::AssignmentNode::OperatorNode::BracketNode

Inherits:
Red::AssignmentNode::OperatorNode show all
Defined in:
lib/red/assignment_nodes.rb

Overview

:nodoc:

Instance Method Summary collapse

Methods inherited from Red::AssignmentNode::OperatorNode

#call_to_increment?, #compile_increment, #compile_internals, #compile_node

Constructor Details

#initialize(receiver, bracket_contents, operation, expression) ⇒ BracketNode

Returns a new instance of BracketNode.



111
112
113
# File 'lib/red/assignment_nodes.rb', line 111

def initialize(receiver, bracket_contents, operation, expression)
  @receiver, @slot, @operation, @expression = [receiver, bracket_contents.last, operation, expression].build_nodes
end

Instance Method Details

#compile_receiver(receiver, slot) ⇒ Object



115
116
117
118
119
120
121
122
# File 'lib/red/assignment_nodes.rb', line 115

def compile_receiver(receiver, slot)
  if [:symbol, :string].include?((@slot.data_type rescue :node))
    "%s.%s"
  else
    slot = @slot.compile_node(:quotes => "'")
    "%s[%s]"
  end % [receiver, slot]
end