Module: RaceGuard::IndexIntegrity::ModelScanner

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

Class Method Summary collapse

Class Method Details

.scan_file(path) ⇒ Object



16
17
18
19
20
21
# File 'lib/race_guard/index_integrity/model_scanner.rb', line 16

def scan_file(path)
  src = File.read(path, encoding: 'UTF-8')
  scan_source(src, filename: path)
rescue Errno::ENOENT, ArgumentError
  []
end

.scan_source(source, filename: '(string)') ⇒ Object



23
24
25
26
27
28
29
30
31
32
# File 'lib/race_guard/index_integrity/model_scanner.rb', line 23

def scan_source(source, filename: '(string)')
  ast = Parser::CurrentRuby.parse(source)
  return [] unless ast

  out = []
  walk(ast) { |node| maybe_record_validates_uniqueness!(node, out, filename) }
  out
rescue Parser::SyntaxError
  []
end