class Prism::Pack::Format

The result of parsing a pack template.

Attributes

directives [R]

A list of the directives in the template.

encoding [R]

The encoding of the template.

Public Class Methods

new (directives, encoding)

Create a new Format with the given directives and encoding.

# File lib/prism/pack.rb, line 206
def initialize(directives, encoding)
  @directives = directives
  @encoding = encoding
end

Public Instance Methods

describe ()

Provide a human-readable description of the format.

# File lib/prism/pack.rb, line 212
def describe
  source_width = directives.map { |d| d.source.inspect.length }.max
  directive_lines = directives.map do |directive|
    if directive.type == SPACE
      source = directive.source.inspect
    else
      source = directive.source
    end
    # @type var source_width: Integer
    "  #{source.ljust(source_width)}  #{directive.describe}"
  end

  (["Directives:"] + directive_lines + ["Encoding:", "  #{encoding}"]).join("\n")
end