Class: Rdm::SpecRunner::SpecFilenameMatcher

Inherits:
Object
  • Object
show all
Defined in:
lib/rdm/spec_runner/spec_filename_matcher.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(package_path, spec_matcher) ⇒ SpecFilenameMatcher

Returns a new instance of SpecFilenameMatcher.



8
9
10
11
# File 'lib/rdm/spec_runner/spec_filename_matcher.rb', line 8

def initialize(package_path, spec_matcher)
  @package_path = package_path
  @spec_matcher = spec_matcher
end

Class Method Details

.find_matches(package_path:, spec_matcher:) ⇒ Object



3
4
5
# File 'lib/rdm/spec_runner/spec_filename_matcher.rb', line 3

def find_matches(package_path:, spec_matcher:)
  Rdm::SpecRunner::SpecFilenameMatcher.new(package_path, spec_matcher).find_matches
end

Instance Method Details

#find_matchesObject



13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/rdm/spec_runner/spec_filename_matcher.rb', line 13

def find_matches
  expected_filename = File.join(@package_path, @spec_matcher)

  if File.exists?(expected_filename)
    return Rdm::Utils::FileUtils.relative_path(path: expected_filename, from: @package_path).split
  end

  Dir.glob(File.join(@package_path, '**/*_spec.rb'))
    .select { |fn| File.file?(fn) }
    .map {|file| Rdm::Utils::FileUtils.relative_path(path: file, from: @package_path) }
    .grep(/#{@spec_matcher.split('').join('.*')}/)
end