Class: EagerEye::Analyzer

Inherits:
Object
  • Object
show all
Defined in:
lib/eager_eye/analyzer.rb

Constant Summary collapse

DETECTOR_CLASSES =
{
  loop_association: Detectors::LoopAssociation,
  serializer_nesting: Detectors::SerializerNesting,
  missing_counter_cache: Detectors::MissingCounterCache,
  custom_method_query: Detectors::CustomMethodQuery,
  count_in_iteration: Detectors::CountInIteration,
  callback_query: Detectors::CallbackQuery,
  pluck_to_array: Detectors::PluckToArray
}.freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(paths: nil) ⇒ Analyzer

Returns a new instance of Analyzer.



19
20
21
22
23
# File 'lib/eager_eye/analyzer.rb', line 19

def initialize(paths: nil)
  @paths = Array(paths || EagerEye.configuration.app_path)
  @issues = []
  @association_preloads = {}
end

Instance Attribute Details

#association_preloadsObject (readonly)

Returns the value of attribute association_preloads.



17
18
19
# File 'lib/eager_eye/analyzer.rb', line 17

def association_preloads
  @association_preloads
end

#issuesObject (readonly)

Returns the value of attribute issues.



17
18
19
# File 'lib/eager_eye/analyzer.rb', line 17

def issues
  @issues
end

#pathsObject (readonly)

Returns the value of attribute paths.



17
18
19
# File 'lib/eager_eye/analyzer.rb', line 17

def paths
  @paths
end

Instance Method Details

#runObject



25
26
27
28
29
30
# File 'lib/eager_eye/analyzer.rb', line 25

def run
  @issues = []
  collect_association_preloads
  analyze_files
  @issues
end