Sha256: c57324417975a004bb2fc05092b0fb81babbdc32f5cde4f5ff15ea910fdac140

Contents?: true

Size: 849 Bytes

Versions: 1

Compression:

Stored size: 849 Bytes

Contents

module ToSource
  class Emitter
    # Emitter for multiple assignment nodes
    class MultipleAssignment < self

      handle(Rubinius::AST::MultipleAssignment)

    private

      # Perform dispatch
      #
      # @return [undefined]
      #
      # @api private
      #
      def dispatch
        emit_left
        emit(' = ')
        emit_right
      end

      # Emit left
      #
      # @return [undefined]
      #
      # @api private
      #
      def emit_left
        run(Util::DelimitedBody, node.left.body)
      end

      # Emit left
      #
      # @return [undefined]
      #
      # @api private
      #
      def emit_right
        right = node.right
        if right.kind_of?(Rubinius::AST::ArrayLiteral)
          run(Util::DelimitedBody, right.body)
        else
          visit(right)
        end
      end

    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
to_source-0.2.16 lib/to_source/emitter/multiple_assignment.rb