summaryrefslogtreecommitdiff
path: root/spec/support/patches/rspec_example_prepended_methods.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/support/patches/rspec_example_prepended_methods.rb')
-rw-r--r--spec/support/patches/rspec_example_prepended_methods.rb26
1 files changed, 26 insertions, 0 deletions
diff --git a/spec/support/patches/rspec_example_prepended_methods.rb b/spec/support/patches/rspec_example_prepended_methods.rb
new file mode 100644
index 00000000000..ea918b1e08f
--- /dev/null
+++ b/spec/support/patches/rspec_example_prepended_methods.rb
@@ -0,0 +1,26 @@
+# frozen_string_literal: true
+
+module RSpec
+ module Core
+ module ExamplePrependedMethods
+ # Based on https://github.com/rspec/rspec-core/blob/d57c371ee92b16211b80ac7b0b025968438f5297/lib/rspec/core/example.rb#L96-L104,
+ # Same as location_rerun_argument but with line number
+ def file_path_rerun_argument
+ loaded_spec_files = RSpec.configuration.loaded_spec_files
+
+ RSpec::Core::Metadata.ascending(metadata) do |meta|
+ break meta[:file_path] if loaded_spec_files.include?(meta[:absolute_file_path])
+ end
+ end
+ end
+
+ module ExampleProcsyPrependedMethods
+ def file_path_rerun_argument
+ example.file_path_rerun_argument
+ end
+ end
+ end
+end
+
+RSpec::Core::Example.prepend(RSpec::Core::ExamplePrependedMethods)
+RSpec::Core::Example::Procsy.prepend(RSpec::Core::ExampleProcsyPrependedMethods)