Class: Kaisoku::StaticAnalysis::Analyzer
- Inherits:
-
Object
- Object
- Kaisoku::StaticAnalysis::Analyzer
- Defined in:
- lib/kaisoku/static_analysis/analyzer.rb
Instance Method Summary collapse
- #conventional_tests_for(path) ⇒ Object
- #inferred_dependencies_for_test(path) ⇒ Object
-
#initialize(configuration: Configuration.new) ⇒ Analyzer
constructor
A new instance of Analyzer.
Constructor Details
#initialize(configuration: Configuration.new) ⇒ Analyzer
Returns a new instance of Analyzer.
8 9 10 |
# File 'lib/kaisoku/static_analysis/analyzer.rb', line 8 def initialize(configuration: Configuration.new) @configuration = configuration end |
Instance Method Details
#conventional_tests_for(path) ⇒ Object
25 26 27 28 29 30 31 32 33 34 |
# File 'lib/kaisoku/static_analysis/analyzer.rb', line 25 def conventional_tests_for(path) relative = @configuration.relative_path(path) stem = relative.sub(%r{\A(app|lib)/}, '').sub(/\.rb\z/, '') candidates = [ "spec/#{stem}_spec.rb", "test/#{stem}_test.rb" ] candidates.select { |candidate| File.file?(@configuration.absolute_path(candidate)) } end |
#inferred_dependencies_for_test(path) ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/kaisoku/static_analysis/analyzer.rb', line 12 def inferred_dependencies_for_test(path) absolute = @configuration.absolute_path(path) return [] unless File.file?(absolute) result = Prism.parse_file(absolute) return [] unless result.success? program = result.value (requires(program, absolute) + constants(program)).uniq rescue StandardError [] end |