Sha256: 5109f73ad1890b2ef90b23b0be20a220009417e5cdb7b0ae5edae7c7a9f3cf34

Contents?: true

Size: 728 Bytes

Versions: 1

Compression:

Stored size: 728 Bytes

Contents

module Prettyrb
  MAX_LINE_LENGTH = 100

  class Formatter
    def initialize(code)
      @code = code
    end

    def format
      parser = Parser::CurrentRuby.new(Prettyrb::Builder.new)

      parser.diagnostics.all_errors_are_fatal = true
      parser.diagnostics.ignore_warnings      = true

      parser.diagnostics.consumer = lambda do |diagnostic|
        $stderr.puts(diagnostic.render)
      end

      root_node, _comments = parser.parse_with_comments(
        Parser::CurrentRuby.send(:setup_source_buffer, "file='(string)'", 1, @code, parser.default_encoding)
      )

      visitor = Visitor.new(root_node)
      visitor.visit(root_node)

      visitor.output
    end

    private

    attr_reader :code
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
prettyrb-0.5.0 lib/prettyrb/formatter.rb