class RBS::Annotate::Formatter - rbs: Ruby Standard Library Documentation

# class RBS::Annotate::Formatter

### Attributes

buffer[R]

### Public Class Methods

each_part(doc) { |document| ... } click to toggle source

    # File rbs-3.8.0/lib/rbs/annotate/formatter.rb, line 60
    def self.each_part(doc, &block)
      if block
        document =
          case doc
          when String
            raise
          when RDoc::Comment
            document = doc.parse
          when RDoc::Markup::Document
            document = doc
          end

        if document.file
          yield document
        else
          document.each do |d|
            each_part(d, &block)
          end
        end
      else
        enum_for :each_part, doc
      end
    end

new() click to toggle source

    # File rbs-3.8.0/lib/rbs/annotate/formatter.rb, line 8
    def initialize()
      @buffer = +""
      @pending_separator = nil
    end

translate(doc) click to toggle source

    # File rbs-3.8.0/lib/rbs/annotate/formatter.rb, line 84
    def self.translate(doc)
      if doc.file
        formatter = RDoc::Markup::ToMarkdown.new
        doc.accept(formatter).strip.lines.map(&:rstrip).join("\n")
      end
    end

### Public Instance Methods

<<(s) click to toggle source

    # File rbs-3.8.0/lib/rbs/annotate/formatter.rb, line 13
    def <<(s)
      if s
        if s.is_a?(RDoc::Markup::Document)
          s = self.class.translate(s) or raise
        end

        s = s.rstrip

        unless s.empty?
          if ss = @pending_separator
            buffer << ss
            buffer << "\n"
            @pending_separator = nil
          end

          buffer << s
          buffer << "\n"
        end
      end

      self
    end

empty?() click to toggle source

    # File rbs-3.8.0/lib/rbs/annotate/formatter.rb, line 44
    def empty?
      buffer.empty?
    end

format(newline_at_end:) click to toggle source

    # File rbs-3.8.0/lib/rbs/annotate/formatter.rb, line 48
    def format(newline_at_end:)
      unless buffer.empty?
        if newline_at_end
          buffer.strip + "\n\n"
        else
          buffer.strip + "\n"
        end
      else
        buffer
      end
    end

margin(separator: "") click to toggle source

    # File rbs-3.8.0/lib/rbs/annotate/formatter.rb, line 36
    def margin(separator: "")
      unless buffer.empty?
        @pending_separator = separator
      end

      self
    end