Sha256: 11521b20404f6db935bcca01f859c48728a8975e25710ec1aca8bb161eb689bb

Contents?: true

Size: 1.44 KB

Versions: 4

Compression:

Stored size: 1.44 KB

Contents

module Spec
  module Example
    module ExampleMethods
      def identifier
        if ::Spec::VERSION::MAJOR == 1 &&
           ::Spec::VERSION::MINOR == 1 &&
           ::Spec::VERSION::TINY  >= 12
          file, line = eval("caller", @_implementation).first.split(/:/)
        else
          file, line = implementation_backtrace.first.split(/:/)
        end
        Identifier.new(file, line.to_i, self.class.description, description)
      end

      class Identifier
        attr_reader :file, :line, :group_description, :description
        def initialize(file, line, group_description, description)
          @file, @line, @group_description, @description = 
           file,  line,  group_description,  description
        end

        def ==(other)
          eql?(other)
        end

        def eql?(other)
          File.basename(file) == File.basename(other.file) && 
                         line == other.line &&
            group_description == other.group_description &&
                  description == other.description
        end

        def hash
          description.hash
        end

        def locate(groups)
          groups.each do |group|
            group.examples.each do |example|
              return example if example.identifier == self
            end
          end
          raise "Unable to locate example #{self}"
        end

        def to_s
          "#{group_description} #{description}"
        end
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 2 rubygems

Version Path
deep_test_pre-2.0 lib/deep_test/spec/extensions/example_methods.rb
jstorimer-deep-test-2.0.0 lib/deep_test/spec/extensions/example_methods.rb
jstorimer-deep-test-0.2.0 lib/deep_test/spec/extensions/example_methods.rb
jstorimer-deep-test-0.1.0 lib/deep_test/spec/extensions/example_methods.rb