Class: Prism::MagicComment

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

Overview

This represents a magic comment that was encountered during parsing.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(key_loc, value_loc) ⇒ MagicComment

Create a new magic comment object with the given key and value locations.



579
580
581
582
# File 'lib/prism/parse_result.rb', line 579

def initialize(key_loc, value_loc)
  @key_loc = key_loc
  @value_loc = value_loc
end

Instance Attribute Details

#key_locObject (readonly)

A Location object representing the location of the key in the source.



573
574
575
# File 'lib/prism/parse_result.rb', line 573

def key_loc
  @key_loc
end

#value_locObject (readonly)

A Location object representing the location of the value in the source.



576
577
578
# File 'lib/prism/parse_result.rb', line 576

def value_loc
  @value_loc
end

Instance Method Details

#deconstruct_keys(keys) ⇒ Object

Implement the hash pattern matching interface for MagicComment.



595
596
597
# File 'lib/prism/parse_result.rb', line 595

def deconstruct_keys(keys)
  { key_loc: key_loc, value_loc: value_loc }
end

#inspectObject

Returns a string representation of this magic comment.



600
601
602
# File 'lib/prism/parse_result.rb', line 600

def inspect
  "#<Prism::MagicComment @key=#{key.inspect} @value=#{value.inspect}>"
end

#keyObject

Returns the key of the magic comment by slicing it from the source code.



585
586
587
# File 'lib/prism/parse_result.rb', line 585

def key
  key_loc.slice
end

#valueObject

Returns the value of the magic comment by slicing it from the source code.



590
591
592
# File 'lib/prism/parse_result.rb', line 590

def value
  value_loc.slice
end