class ABCing::Scanner
Public Class Methods
new(params)
click to toggle source
# File lib/abcing/scanner.rb, line 3 def initialize(params) @app_directories = params.fetch(:app_directories) @test_directories = params.fetch(:test_directories) end
Public Instance Methods
results()
click to toggle source
# File lib/abcing/scanner.rb, line 8 def results test_classes = [] app_class_names.each do |a| @test_directories.each do |t| entries = test_class_names(a) test_classes << entries unless entries.empty? end end { test_letter_matches: first_letters(test_classes.flatten.uniq), app_letter_matches: first_letters(app_class_names) } end
Private Instance Methods
app_class_names()
click to toggle source
# File lib/abcing/scanner.rb, line 28 def app_class_names class_names contents(files @app_directories) end
class_names(file_contents)
click to toggle source
# File lib/abcing/scanner.rb, line 44 def class_names(file_contents) ABCing::ClassNameFinder.new(file_contents).find end
contents(files)
click to toggle source
# File lib/abcing/scanner.rb, line 32 def contents(files) files.collect { |f| File.read(f) } end
files(directories)
click to toggle source
# File lib/abcing/scanner.rb, line 40 def files(directories) ABCing::ClassFileFinder.new(directories).find end
first_letters(class_names)
click to toggle source
# File lib/abcing/scanner.rb, line 48 def first_letters(class_names) ABCing::AlphabetMatch.new(class_names).letters end
test_class_names(app_class_name)
click to toggle source
# File lib/abcing/scanner.rb, line 24 def test_class_names(app_class_name) contents(test_files).collect { |e| e.scan(/^.*(#{app_class_name}).*$/) }.flatten end
test_files()
click to toggle source
# File lib/abcing/scanner.rb, line 36 def test_files @test_directories.collect { |dir| Dir["#{dir}/**/*.rb"] }.flatten end