Module: RaceGuard::IndexIntegrity::TableInference

Defined in:
lib/race_guard/index_integrity/table_inference.rb

Overview

Internal: infer AR table name from app/models path (Epic 5.3).

Class Method Summary collapse

Class Method Details

.table_for_model_path(filename) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/race_guard/index_integrity/table_inference.rb', line 15

def table_for_model_path(filename)
  path = filename.to_s.tr('\\', '/')
  return nil if path.include?('/concerns/')

  rel = path.sub(%r{.*?app/models/}i, '')
  return nil if rel.empty?

  rel = rel.sub(/\.rb\z/i, '')
  segments = rel.split('/').compact.reject(&:empty?)
  return nil if segments.empty?

  infer_from_segments(segments)
end