Skip to content
This repository was archived by the owner on Nov 30, 2024. It is now read-only.

Commit 032acb1

Browse files
committed
Load SnippetExtractor and Source classes lazily
1 parent 1e41d6e commit 032acb1

File tree

3 files changed

+4
-5
lines changed

3 files changed

+4
-5
lines changed

lib/rspec/core/formatters/exception_presenter.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# encoding: utf-8
2-
RSpec::Support.require_rspec_core "formatters/snippet_extractor"
2+
RSpec::Support.require_rspec_support "encoded_string"
33

44
module RSpec
55
module Core
@@ -178,6 +178,7 @@ def read_failed_lines
178178

179179
file_path, line_number = matching_line.match(/(.+?):(\d+)(|:\d+)/)[1..2]
180180
max_line_count = RSpec.configuration.max_displayed_failure_line_count
181+
RSpec::Support.require_rspec_core "formatters/snippet_extractor"
181182
SnippetExtractor.extract_expression_lines_at(file_path, line_number.to_i, max_line_count)
182183
rescue SnippetExtractor::NoSuchFileError
183184
["Unable to find #{file_path} to read failed line"]

lib/rspec/core/notifications.rb

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
RSpec::Support.require_rspec_core "formatters/exception_presenter"
22
RSpec::Support.require_rspec_core "formatters/helpers"
33
RSpec::Support.require_rspec_core "shell_escape"
4-
RSpec::Support.require_rspec_support "encoded_string"
54

65
module RSpec::Core
76
# Notifications are value objects passed to formatters to provide them

lib/rspec/core/source.rb

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,3 @@
1-
RSpec::Support.require_rspec_core "source/node"
2-
RSpec::Support.require_rspec_core "source/token"
3-
41
module RSpec
52
module Core
63
# @private
@@ -25,6 +22,7 @@ def lines
2522
def ast
2623
@ast ||= begin
2724
require 'ripper'
25+
RSpec::Support.require_rspec_core "source/node"
2826
sexp = Ripper.sexp(source)
2927
Node.new(sexp)
3028
end
@@ -33,6 +31,7 @@ def ast
3331
def tokens
3432
@tokens ||= begin
3533
require 'ripper'
34+
RSpec::Support.require_rspec_core "source/token"
3635
tokens = Ripper.lex(source)
3736
Token.tokens_from_ripper_tokens(tokens)
3837
end

0 commit comments

Comments
 (0)