Sha256: e7bc483bf768b51250d0fd0bbc88c3a7146f822b939743389f11bfa3795c2b36

Contents?: true

Size: 723 Bytes

Versions: 6

Compression:

Stored size: 723 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 if n_pair?(node)
      end

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

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
unparser-0.6.15 lib/unparser/emitter/hash.rb
unparser-0.6.14 lib/unparser/emitter/hash.rb
unparser-0.6.13 lib/unparser/emitter/hash.rb
unparser-0.6.12 lib/unparser/emitter/hash.rb
unparser-0.6.10 lib/unparser/emitter/hash.rb
unparser-0.6.9 lib/unparser/emitter/hash.rb