Class: RailsLens::Parsers::ParserResult

Inherits:
Object
  • Object
show all
Defined in:
lib/rails_lens/parsers/parser_result.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(classes:, modules:, file_path:) ⇒ ParserResult

Returns a new instance of ParserResult.



8
9
10
11
12
# File 'lib/rails_lens/parsers/parser_result.rb', line 8

def initialize(classes:, modules:, file_path:)
  @classes = classes
  @modules = modules
  @file_path = file_path
end

Instance Attribute Details

#classesObject (readonly)

Returns the value of attribute classes.



6
7
8
# File 'lib/rails_lens/parsers/parser_result.rb', line 6

def classes
  @classes
end

#file_pathObject (readonly)

Returns the value of attribute file_path.



6
7
8
# File 'lib/rails_lens/parsers/parser_result.rb', line 6

def file_path
  @file_path
end

#modulesObject (readonly)

Returns the value of attribute modules.



6
7
8
# File 'lib/rails_lens/parsers/parser_result.rb', line 6

def modules
  @modules
end

Instance Method Details

#class_namesObject



22
23
24
# File 'lib/rails_lens/parsers/parser_result.rb', line 22

def class_names
  classes.map(&:full_name)
end

#empty?Boolean

Returns:

  • (Boolean)


30
31
32
# File 'lib/rails_lens/parsers/parser_result.rb', line 30

def empty?
  classes.empty? && modules.empty?
end

#find_class(name) ⇒ Object



14
15
16
# File 'lib/rails_lens/parsers/parser_result.rb', line 14

def find_class(name)
  classes.find { |cls| cls.matches?(name) }
end

#find_module(name) ⇒ Object



18
19
20
# File 'lib/rails_lens/parsers/parser_result.rb', line 18

def find_module(name)
  modules.find { |mod| mod.name == name || mod.full_name == name }
end

#inspectObject



50
51
52
# File 'lib/rails_lens/parsers/parser_result.rb', line 50

def inspect
  "#<ParserResult file=#{file_path} classes=#{classes.size} modules=#{modules.size}>"
end

#module_namesObject



26
27
28
# File 'lib/rails_lens/parsers/parser_result.rb', line 26

def module_names
  modules.map(&:full_name)
end

#to_sObject



34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/rails_lens/parsers/parser_result.rb', line 34

def to_s
  lines = ["File: #{file_path}"]

  unless modules.empty?
    lines << 'Modules:'
    modules.each { |mod| lines << "  #{mod}" }
  end

  unless classes.empty?
    lines << 'Classes:'
    classes.each { |cls| lines << "  #{cls}" }
  end

  lines.join("\n")
end