Class: Prism::Result

Inherits:
Object
  • Object
show all
Defined in:
lib/prism/parse_result.rb,
ext/prism/extension.c

Overview

This represents the result of a call to ::parse or ::parse_file. It contains the requested structure, any comments that were encounters, and any errors that were encountered.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(comments, magic_comments, data_loc, errors, warnings, source) ⇒ Result

Create a new result object with the given values.



689
690
691
692
693
694
695
696
# File 'lib/prism/parse_result.rb', line 689

def initialize(comments, magic_comments, data_loc, errors, warnings, source)
  @comments = comments
  @magic_comments = magic_comments
  @data_loc = data_loc
  @errors = errors
  @warnings = warnings
  @source = source
end

Instance Attribute Details

#commentsObject (readonly)

The list of comments that were encountered during parsing.



669
670
671
# File 'lib/prism/parse_result.rb', line 669

def comments
  @comments
end

#data_locObject (readonly)

An optional location that represents the location of the __END__ marker and the rest of the content of the file. This content is loaded into the DATA constant when the file being parsed is the main file being executed.



677
678
679
# File 'lib/prism/parse_result.rb', line 677

def data_loc
  @data_loc
end

#errorsObject (readonly)

The list of errors that were generated during parsing.



680
681
682
# File 'lib/prism/parse_result.rb', line 680

def errors
  @errors
end

#magic_commentsObject (readonly)

The list of magic comments that were encountered during parsing.



672
673
674
# File 'lib/prism/parse_result.rb', line 672

def magic_comments
  @magic_comments
end

#sourceObject (readonly)

A Source instance that represents the source code that was parsed.



686
687
688
# File 'lib/prism/parse_result.rb', line 686

def source
  @source
end

#warningsObject (readonly)

The list of warnings that were generated during parsing.



683
684
685
# File 'lib/prism/parse_result.rb', line 683

def warnings
  @warnings
end

Instance Method Details

#code_units_cache(encoding) ⇒ Object

Create a code units cache for the given encoding.



721
722
723
# File 'lib/prism/parse_result.rb', line 721

def code_units_cache(encoding)
  source.code_units_cache(encoding)
end

#deconstruct_keys(keys) ⇒ Object

Implement the hash pattern matching interface for Result.



699
700
701
# File 'lib/prism/parse_result.rb', line 699

def deconstruct_keys(keys)
  { comments: comments, magic_comments: magic_comments, data_loc: data_loc, errors: errors, warnings: warnings }
end

#encodingObject

Returns the encoding of the source code that was parsed.



704
705
706
# File 'lib/prism/parse_result.rb', line 704

def encoding
  source.encoding
end

#failure?Boolean

Returns true if there were errors during parsing and false if there were not.

Returns:

  • (Boolean)


716
717
718
# File 'lib/prism/parse_result.rb', line 716

def failure?
  !success?
end

#success?Boolean

Returns true if there were no errors during parsing and false if there were.

Returns:

  • (Boolean)


710
711
712
# File 'lib/prism/parse_result.rb', line 710

def success?
  errors.empty?
end