Sha256: be5baf41c531c4cfbae45fe5fb3e49997d46823712621656f7a1fb7212184d32

Contents?: true

Size: 706 Bytes

Versions: 4

Compression:

Stored size: 706 Bytes

Contents

# frozen_string_literal: true

module Unparser
  class Emitter
    # Emitter for Hash literals
    class Hash < self
      handle :hash

      def emit_heredoc_reminders
        children.each(&method(:emit_heredoc_reminder_member))
      end

    private

      def dispatch
        if children.empty?
          write('{}')
        else
          parentheses('{', '}') do
            write(' ')
            emit_hash_body
            write(' ')
          end
        end
      end

      def emit_heredoc_reminder_member(node)
        emitter(node.children.last).emit_heredoc_reminders
      end

      def emit_hash_body
        delimited(children)
      end
    end # Hash
  end # Emitter
end # Unparser

Version data entries

4 entries across 4 versions & 2 rubygems

Version Path
unparser-0.6.8 lib/unparser/emitter/hash.rb
devcycle-ruby-server-sdk-2.0.0 vendor/bundle/ruby/3.0.0/gems/unparser-0.6.7/lib/unparser/emitter/hash.rb
unparser-0.6.7 lib/unparser/emitter/hash.rb
unparser-0.6.6 lib/unparser/emitter/hash.rb