Sha256: f5f5b1b44bc8227ca2db0d9164eb18ee1fdf8f85855af6acb67eb62b4cc0ee38

Contents?: true

Size: 955 Bytes

Versions: 3

Compression:

Stored size: 955 Bytes

Contents

# frozen_string_literal: true

module Cistern::Coverage
  unless Kernel.respond_to? :caller_locations
    abort <<-ABORT
Cannot enable Cistern coverage reporting

Your ruby version ruby is: #{begin
                               RUBY_VERSION
                             rescue
                               'unknown'
                             end}
`Kernel` does not have the required method `caller_locations`

Try a newer ruby (should be > 2.0)
    ABORT
  end

  # returns the first caller_locations entry before entries in `file`
  def self.find_caller_before(file)
    enum = caller_locations.each

    call = nil

    # seek to the first entry from within `file`
    while (call = enum.next)
      break if call.path.end_with? file
    end

    # seek to the first entry thats not within `file`
    while (call = enum.next)
      break unless call.path.end_with? file
    end

    # the call location that called in to `file`
    call
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
cistern-2.10.0 lib/cistern/coverage.rb
cistern-2.8.2 lib/cistern/coverage.rb
cistern-2.8.1 lib/cistern/coverage.rb