Class: WhyClasses::SourceFile

Inherits:
Object
  • Object
show all
Defined in:
lib/why_classes/source_file.rb

Overview

A single Ruby source file: its path, raw source and lazily-parsed AST.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(path, source) ⇒ SourceFile

Returns a new instance of SourceFile.



14
15
16
17
# File 'lib/why_classes/source_file.rb', line 14

def initialize(path, source)
  @path = path
  @source = source
end

Instance Attribute Details

#pathObject (readonly)

Returns the value of attribute path.



8
9
10
# File 'lib/why_classes/source_file.rb', line 8

def path
  @path
end

#sourceObject (readonly)

Returns the value of attribute source.



19
20
21
# File 'lib/why_classes/source_file.rb', line 19

def source
  @source
end

Class Method Details

.from_path(path) ⇒ Object



10
11
12
# File 'lib/why_classes/source_file.rb', line 10

def self.from_path(path)
  new(path, File.read(path))
end

Instance Method Details

#astObject



25
26
27
# File 'lib/why_classes/source_file.rb', line 25

def ast
  result.ast
end

#bufferObject



29
30
31
# File 'lib/why_classes/source_file.rb', line 29

def buffer
  result.buffer
end

#commentsObject



33
34
35
# File 'lib/why_classes/source_file.rb', line 33

def comments
  result.comments
end

#parse_errorObject



41
42
43
# File 'lib/why_classes/source_file.rb', line 41

def parse_error
  result.error
end

#parsed?Boolean

Returns:

  • (Boolean)


37
38
39
# File 'lib/why_classes/source_file.rb', line 37

def parsed?
  !ast.nil?
end

#resultObject



21
22
23
# File 'lib/why_classes/source_file.rb', line 21

def result
  @result ||= Parser.parse(@source, @path)
end