Sha256: 2b725d2935e1f9a4b9ed09528e6b2711bc327d73984d04fdb748fb20f29b8484

Contents?: true

Size: 917 Bytes

Versions: 1

Compression:

Stored size: 917 Bytes

Contents

module ToSource
  class Emitter
    # Emitter for binary operator methods
    class BinaryOperatorMethod < self

    private

      # Perform dispatch
      #
      # @return [undefined]
      #
      # @api private
      #
      def dispatch
        parantheses do
          emit_left
          emit(" #{node.name} ")
          emit_right
        end
      end

      # Emit right
      #
      # @return [undefined]
      #
      # @api private
      #
      def emit_right
        parantheses do
          visit(right)
        end
      end

      # Emit left
      #
      # @return [undefined]
      #
      # @api private
      #
      def emit_left
        parantheses do
          visit(node.receiver)
        end
      end

      # Return right
      #
      # @return [Rubinius::AST::Node]
      #
      # @api private
      #
      def right
        node.arguments.array.first
      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/binary_operator_method.rb