Sha256: fa354a0e71a02896ca7ffd8d78068b902c89cba51e42b8a50fa9b87ba7620f29

Contents?: true

Size: 954 Bytes

Versions: 9

Compression:

Stored size: 954 Bytes

Contents

# encoding: utf-8

module Unparser
  class Emitter
    class Send

      # Emitter for arguments of send nodes
      class Arguments < Emitter

      private

        # Perform dispatch
        #
        # @return [undefined]
        #
        # @api private
        #
        def dispatch
          return if children.empty?

          parentheses do
            delimited(effective_arguments)
          end
        end

        # Return effective arguments
        #
        # @return [Parser::AST::Node]
        #
        # @api private
        #
        def effective_arguments
          last = children.length - 1
          children.each_with_index.map do |argument, index|
            if last == index && argument.type == :hash && argument.children.any?
              argument.updated(:hash_body)
            else
              argument
            end
          end
        end

      end # Arguments
    end # Send
  end # Emitter
end # Unparser

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
unparser-0.1.14 lib/unparser/emitter/send/arguments.rb
unparser-0.1.13 lib/unparser/emitter/send/arguments.rb
unparser-0.1.12 lib/unparser/emitter/send/arguments.rb
unparser-0.1.11 lib/unparser/emitter/send/arguments.rb
unparser-0.1.10 lib/unparser/emitter/send/arguments.rb
unparser-0.1.9 lib/unparser/emitter/send/arguments.rb
unparser-0.1.8 lib/unparser/emitter/send/arguments.rb
unparser-0.1.7 lib/unparser/emitter/send/arguments.rb
unparser-0.1.6 lib/unparser/emitter/send/arguments.rb