class RubyDetective::SourceRepresentation::Entities::Klass
Attributes
data_store[R]
file_path[R]
inheritance_class_name[R]
lines_of_code[R]
name[R]
namespace[R]
Public Class Methods
new(name, namespace, inheritance_class_name: nil, file_path:, first_line:, last_line:)
click to toggle source
# File lib/ruby_detective/source_representation/entities/klass.rb, line 7 def initialize(name, namespace, inheritance_class_name: nil, file_path:, first_line:, last_line:) @name = name @namespace = namespace @file_path = file_path @inheritance_class_name = inheritance_class_name @lines_of_code = last_line - first_line + 1 @data_store = SourceRepresentation::DataStore.instance end
Public Instance Methods
constants()
click to toggle source
# File lib/ruby_detective/source_representation/entities/klass.rb, line 16 def constants data_store .query .constants(where: { caller: self }) end
dependencies()
click to toggle source
# File lib/ruby_detective/source_representation/entities/klass.rb, line 22 def dependencies constants .map(&:refers_to) .compact .reject{ |c| c.name == name } # Removes circular dependencies end
dependents()
click to toggle source
# File lib/ruby_detective/source_representation/entities/klass.rb, line 29 def dependents data_store.query .constants(where: { refers_to: self }) .map(&:caller) .compact .reject{ |c| c.name == name } # Removes circular dependencies end
merge(duplicate)
click to toggle source
# File lib/ruby_detective/source_representation/entities/klass.rb, line 37 def merge(duplicate) @inheritance_class_name ||= duplicate.inheritance_class_name @lines_of_code += duplicate.lines_of_code end