module Prism::Serialize - prism: Ruby Standard Library Documentation

# module Prism::Serialize

A module responsible for deserializing parse results.

### Constants

MAJOR_VERSION

  The major version of prism that we are expecting to find in the serialized strings.

MINOR_VERSION

  The minor version of prism that we are expecting to find in the serialized strings.

PATCH_VERSION

  The patch version of prism that we are expecting to find in the serialized strings.

TOKEN_TYPES

  The token types that can be indexed by their enum values.

### Public Class Methods

load(input, serialized) click to toggle source

Deserialize the AST represented by the given string into a parse result.

    # File prism/serialize.rb, line 28
    def self.load(input, serialized)
      input = input.dup
      source = Source.for(input)

      loader = Loader.new(source, serialized)
      result = loader.load_result

      input.force_encoding(loader.encoding)

      # This is an extremely niche use-case where the file was marked as binary
      # but it contained UTF-8-encoded characters. In that case we will actually
      # put it back to UTF-8 to give the location APIs the best chance of being
      # correct.
      if !input.ascii_only? && input.encoding == Encoding::BINARY
        input.force_encoding(Encoding::UTF_8)
        input.force_encoding(Encoding::BINARY) unless input.valid_encoding?
      end

      result
    end

load_tokens(source, serialized) click to toggle source

Deserialize the tokens represented by the given string into a parse result.

    # File prism/serialize.rb, line 51
    def self.load_tokens(source, serialized)
      Loader.new(source, serialized).load_tokens_result
    end