Sha256: a86cfe6498adce97592b28a9e567c9ea75fb8b09121638d70743e1dc9a28b2c0

Contents?: true

Size: 1.43 KB

Versions: 34

Compression:

Stored size: 1.43 KB

Contents

module Spec
  module Example
    class ExampleMatcher
      def initialize(example_group_description, example_name)
        @example_group_description = example_group_description
        @example_name = example_name
      end

      def matches?(specified_examples)
        specified_examples.any? do |specified_example|
          matches_literal_example?(specified_example) || matches_example_not_considering_modules?(specified_example)
        end
      end

      protected
      def matches_literal_example?(specified_example)
        specified_example =~ /(^#{example_group_regex} #{example_regexp}$|^#{example_group_regex}$|^#{example_group_with_before_all_regexp}$|^#{example_regexp}$)/
      end

      def matches_example_not_considering_modules?(specified_example)
        specified_example =~ /(^#{example_group_regex_not_considering_modules} #{example_regexp}$|^#{example_group_regex_not_considering_modules}$|^#{example_regexp}$)/
      end

      def example_group_regex
        Regexp.escape(@example_group_description)
      end

      def example_group_with_before_all_regexp
        Regexp.escape("#{@example_group_description} before(:all)")
      end

      def example_group_regex_not_considering_modules
        Regexp.escape(@example_group_description.split('::').last)
      end

      def example_regexp
        Regexp.escape(@example_name) if @example_name
      end
    end

    ExampleGroupMethods.matcher_class = ExampleMatcher
  end
end

Version data entries

34 entries across 34 versions & 11 rubygems

Version Path
rspec-instructure-1.3.3 lib/spec/example/example_matcher.rb
radiant-1.0.0 ruby-debug/ruby/1.8/gems/rspec-1.3.2/lib/spec/example/example_matcher.rb
rspec-1.3.2 lib/spec/example/example_matcher.rb
rspec-1.3.1 lib/spec/example/example_matcher.rb
rspec-1.3.1.rc lib/spec/example/example_matcher.rb
rspec-1.3.0 lib/spec/example/example_matcher.rb
hubbub-0.0.11 lib/vendor/plugins/rspec/lib/spec/example/example_matcher.rb
hubbub-0.0.10 lib/vendor/plugins/rspec/lib/spec/example/example_matcher.rb
hubbub-0.0.9 lib/vendor/plugins/rspec/lib/spec/example/example_matcher.rb
hubbub-0.0.8 lib/vendor/plugins/rspec/lib/spec/example/example_matcher.rb
hubbub-0.0.6 lib/vendor/plugins/rspec/lib/spec/example/example_matcher.rb
simple-templater-0.0.1.4 gems/gems/rspec-1.2.9/lib/spec/example/example_matcher.rb
media-path-0.1.2 vendor/rspec/lib/spec/example/example_matcher.rb
simple-templater-0.0.1.3 vendor/rspec/lib/spec/example/example_matcher.rb
pupu-0.0.2.pre vendor/rspec/lib/spec/example/example_matcher.rb
media-path-0.1.1.pre vendor/rspec/lib/spec/example/example_matcher.rb
simple-templater-0.0.1.2 vendor/rspec/lib/spec/example/example_matcher.rb
media-path-0.1.1 vendor/rspec/lib/spec/example/example_matcher.rb
simple-templater-0.0.1.1 vendor/rspec/lib/spec/example/example_matcher.rb
pupu-0.0.2 vendor/rspec/lib/spec/example/example_matcher.rb