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

Commit 49a708b

Browse files
committed
Use new rspec-support requires.
1 parent 950f6db commit 49a708b

17 files changed

+47
-63
lines changed

lib/rspec/core.rb

Lines changed: 12 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,45 +1,19 @@
1-
require_rspec = if ENV['REQUIRE_RELATIVE']
2-
lambda do |path|
3-
require_relative path
4-
end
5-
else # for 1.8.7
6-
lambda do |path|
7-
require "rspec/#{path}"
8-
end
9-
end
10-
111
require 'set'
122
require 'time'
133
require 'rbconfig'
144

15-
require_rspec['core/version']
16-
17-
require 'rspec/support/caller_filter'
18-
require 'rspec/core/warnings'
19-
20-
require_rspec['core/flat_map']
21-
require_rspec['core/filter_manager']
22-
require_rspec['core/dsl']
23-
require_rspec['core/notifications']
24-
require_rspec['core/reporter']
25-
26-
require_rspec['core/hooks']
27-
require_rspec['core/memoized_helpers']
28-
require_rspec['core/metadata']
29-
require_rspec['core/pending']
30-
require_rspec['core/formatters']
31-
require_rspec['core/ordering']
32-
33-
require_rspec['core/world']
34-
require_rspec['core/configuration']
35-
require_rspec['core/option_parser']
36-
require_rspec['core/configuration_options']
37-
require_rspec['core/command_line']
38-
require_rspec['core/runner']
39-
require_rspec['core/example']
40-
require_rspec['core/shared_example_group/collection']
41-
require_rspec['core/shared_example_group']
42-
require_rspec['core/example_group']
5+
require "rspec/support"
6+
RSpec::Support.require_rspec_support "caller_filter"
7+
8+
RSpec::Support.define_optimized_require_for_rspec(:core) { |f| require_relative f }
9+
10+
%w[
11+
version warnings flat_map filter_manager dsl notifications
12+
reporter hooks memoized_helpers metadata pending formatters
13+
ordering world configuration option_parser configuration_options
14+
command_line runner example shared_example_group/collection
15+
shared_example_group example_group
16+
].each { |name| RSpec::Support.require_rspec_core name }
4317

4418
module RSpec
4519
autoload :SharedContext, 'rspec/core/shared_context'

lib/rspec/core/configuration.rb

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
require 'fileutils'
2-
require 'rspec/core/backtrace_formatter'
3-
require 'rspec/core/ruby_project'
4-
require 'rspec/core/formatters/deprecation_formatter'
2+
3+
RSpec::Support.require_rspec_core "backtrace_formatter"
4+
RSpec::Support.require_rspec_core "ruby_project"
5+
RSpec::Support.require_rspec_core "formatters/deprecation_formatter"
56

67
module RSpec
78
module Core
@@ -422,7 +423,7 @@ def mock_with(framework)
422423
"Pass a module or one of #{MOCKING_ADAPTERS.keys.inspect}"
423424
end
424425

425-
require "rspec/core/mocking_adapters/#{const_name.to_s.downcase}"
426+
RSpec::Support.require_rspec_core "mocking_adapters/#{const_name.to_s.downcase}"
426427
RSpec::Core::MockingAdapters.const_get(const_name)
427428
end
428429

lib/rspec/core/drb_command_line.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
require 'drb/drb'
2-
require 'rspec/core/drb_options'
2+
RSpec::Support.require_rspec_core "drb_options"
33

44
module RSpec
55
module Core

lib/rspec/core/formatters.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
require 'rspec/core/formatters/legacy_formatter'
1+
RSpec::Support.require_rspec_core 'formatters/legacy_formatter'
22

33
# ## Built-in Formatters
44
#

lib/rspec/core/formatters/base_formatter.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
require 'rspec/core/formatters/helpers'
1+
RSpec::Support.require_rspec_core "formatters/helpers"
22
require 'stringio'
33

44
module RSpec

lib/rspec/core/formatters/base_text_formatter.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
require 'rspec/core/formatters/base_formatter'
1+
RSpec::Support.require_rspec_core "formatters/base_formatter"
22
require 'set'
33

44
module RSpec

lib/rspec/core/formatters/deprecation_formatter.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
require 'rspec/core/formatters/helpers'
1+
RSpec::Support.require_rspec_core "formatters/helpers"
22
require 'set'
33

44
module RSpec

lib/rspec/core/formatters/documentation_formatter.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
require 'rspec/core/formatters/base_text_formatter'
1+
RSpec::Support.require_rspec_core "formatters/base_text_formatter"
22

33
module RSpec
44
module Core

lib/rspec/core/formatters/html_formatter.rb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
require 'rspec/core/formatters/base_text_formatter'
2-
require 'rspec/core/formatters/html_printer'
1+
RSpec::Support.require_rspec_core "formatters/base_text_formatter"
2+
RSpec::Support.require_rspec_core "formatters/html_printer"
33

44
module RSpec
55
module Core
@@ -134,7 +134,7 @@ def percent_done
134134
# could output links to images or other files produced during the specs.
135135
#
136136
def extra_failure_content(exception)
137-
require 'rspec/core/formatters/snippet_extractor'
137+
RSpec::Support.require_rspec_core "formatters/snippet_extractor"
138138
backtrace = exception.backtrace.map {|line| configuration.backtrace_formatter.backtrace_line(line)}
139139
backtrace.compact!
140140
@snippet_extractor ||= SnippetExtractor.new

lib/rspec/core/formatters/json_formatter.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
require 'rspec/core/formatters/base_formatter'
1+
RSpec::Support.require_rspec_core "formatters/base_formatter"
22
require 'json'
33

44
module RSpec

lib/rspec/core/formatters/legacy_formatter.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
require 'rspec/core/formatters/helpers'
1+
RSpec::Support.require_rspec_core "formatters/helpers"
22
require 'stringio'
33

44
module RSpec

lib/rspec/core/formatters/progress_formatter.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
require 'rspec/core/formatters/base_text_formatter'
1+
RSpec::Support.require_rspec_core "formatters/base_text_formatter"
2+
23
module RSpec
34
module Core
45
module Formatters

lib/rspec/core/notifications.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
require 'rspec/core/formatters/helpers'
1+
RSpec::Support.require_rspec_core "formatters/helpers"
22

33
module RSpec::Core
44
module Notifications

lib/rspec/core/option_parser.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ def parser(options)
9292
end
9393

9494
parser.on('--init', 'Initialize your project with RSpec.') do |cmd|
95-
require 'rspec/core/project_initializer'
95+
RSpec::Support.require_rspec_core "project_initializer"
9696
ProjectInitializer.new.run
9797
exit
9898
end

lib/rspec/core/ordering.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ module Core
33
if defined?(::Random)
44
RandomNumberGenerator = ::Random
55
else
6-
require 'rspec/core/backport_random'
6+
RSpec::Support.require_rspec_core "backport_random"
77
RandomNumberGenerator = RSpec::Core::Backports::Random
88
end
99

lib/rspec/core/rake_task.rb

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
require 'rspec/support/warnings'
1+
require 'rspec/support'
2+
RSpec::Support.require_rspec_support "warnings"
3+
24
require 'rake'
35
require 'rake/tasklib'
46
require 'shellwords'

spec/rspec/core/configuration_spec.rb

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ def absolute_path_to(dir)
109109

110110
describe "#mock_framework" do
111111
it "defaults to :rspec" do
112-
expect(config).to receive(:require).with('rspec/core/mocking_adapters/rspec')
112+
expect(RSpec::Support).to receive(:require_rspec_core).with('mocking_adapters/rspec')
113113
config.mock_framework
114114
end
115115
end
@@ -168,13 +168,13 @@ def absolute_path_to(dir)
168168
end
169169

170170
it 'uses the named adapter' do
171-
expect(config).to receive(:require).with("rspec/core/mocking_adapters/mocha")
171+
expect(RSpec::Support).to receive(:require_rspec_core).with('mocking_adapters/mocha')
172172
stub_const("RSpec::Core::MockingAdapters::Mocha", Module.new)
173173
config.mock_with :mocha
174174
end
175175

176176
it "uses the null adapter when given :nothing" do
177-
expect(config).to receive(:require).with('rspec/core/mocking_adapters/null').and_call_original
177+
expect(RSpec::Support).to receive(:require_rspec_core).with('mocking_adapters/null').and_call_original
178178
config.mock_with :nothing
179179
end
180180

@@ -191,9 +191,13 @@ def absolute_path_to(dir)
191191
end
192192

193193
context 'when there are already some example groups defined' do
194+
before { allow(RSpec::Support).to receive(:require_rspec_core) }
195+
194196
it 'raises an error since this setting must be applied before any groups are defined' do
195197
allow(RSpec.world).to receive(:example_groups).and_return([double.as_null_object])
196-
stub_const("RSpec::Core::MockingAdapters::Mocha", double(:framework_name => :mocha))
198+
mocha = stub_const("RSpec::Core::MockingAdapters::Mocha", Module.new)
199+
allow(mocha).to receive_messages(:framework_name => :mocha)
200+
197201
expect {
198202
config.mock_with :mocha
199203
}.to raise_error(/must be configured before any example groups are defined/)
@@ -206,7 +210,9 @@ def absolute_path_to(dir)
206210
end
207211

208212
it 'does not raise an error if re-setting the same config' do
209-
stub_const("RSpec::Core::MockingAdapters::Mocha", double(:framework_name => :mocha))
213+
mocha = stub_const("RSpec::Core::MockingAdapters::Mocha", Module.new)
214+
allow(mocha).to receive_messages(:framework_name => :mocha)
215+
210216
groups = []
211217
allow(RSpec.world).to receive_messages(:example_groups => groups)
212218
config.mock_with :mocha

0 commit comments

Comments
 (0)