Sha256: ebb903485a8e87868a6dc5b3904f5f54486032f707b5b9118afee2ab5808dd03

Contents?: true

Size: 694 Bytes

Versions: 11

Compression:

Stored size: 694 Bytes

Contents

class SpecMatcher

  def initialize(context_and_or_spec_name, context_name)
    @context_name = context_name
    @name_to_match = context_and_or_spec_name
  end
  
  def matches?(spec_name)
    return true if matches_context? && (matches_spec?(spec_name) || context_only?)
    return true if matches_spec?(spec_name) && spec_only?(spec_name)
    return false
  end
  
  private
  
  def spec_only? spec
    @name_to_match == spec
  end
  
  def context_only?
    @name_to_match == @context_name
  end
  
  def matches_context?
    @name_to_match =~ /^#{Regexp.escape(@context_name)}\b/
  end
  
  def matches_spec?(spec_name)
    @name_to_match =~ /\b#{Regexp.escape(spec_name)}$/
  end
  
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
rspec-0.6.3 lib/spec/runner/spec_matcher.rb
rspec-0.6.4 lib/spec/runner/spec_matcher.rb
rspec-0.6.1 lib/spec/runner/spec_matcher.rb
rspec-0.6.2 lib/spec/runner/spec_matcher.rb
rspec-0.7.0 lib/spec/runner/spec_matcher.rb
rspec-0.7.1 lib/spec/runner/spec_matcher.rb
rspec-0.7.2 lib/spec/runner/spec_matcher.rb
rspec-0.7.3 lib/spec/runner/spec_matcher.rb
rspec-0.7.4 lib/spec/runner/spec_matcher.rb
rspec-0.7.5 lib/spec/runner/spec_matcher.rb
rspec-0.7.5.1 lib/spec/runner/spec_matcher.rb