rspec-core 3.8.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/.document +5 -0
- data/.yardopts +8 -0
- data/Changelog.md +2243 -0
- data/LICENSE.md +26 -0
- data/README.md +384 -0
- data/exe/rspec +4 -0
- data/lib/rspec/autorun.rb +3 -0
- data/lib/rspec/core.rb +185 -0
- data/lib/rspec/core/backtrace_formatter.rb +65 -0
- data/lib/rspec/core/bisect/coordinator.rb +62 -0
- data/lib/rspec/core/bisect/example_minimizer.rb +173 -0
- data/lib/rspec/core/bisect/fork_runner.rb +134 -0
- data/lib/rspec/core/bisect/server.rb +61 -0
- data/lib/rspec/core/bisect/shell_command.rb +126 -0
- data/lib/rspec/core/bisect/shell_runner.rb +73 -0
- data/lib/rspec/core/bisect/utilities.rb +58 -0
- data/lib/rspec/core/configuration.rb +2308 -0
- data/lib/rspec/core/configuration_options.rb +233 -0
- data/lib/rspec/core/drb.rb +113 -0
- data/lib/rspec/core/dsl.rb +98 -0
- data/lib/rspec/core/example.rb +656 -0
- data/lib/rspec/core/example_group.rb +889 -0
- data/lib/rspec/core/example_status_persister.rb +235 -0
- data/lib/rspec/core/filter_manager.rb +231 -0
- data/lib/rspec/core/flat_map.rb +20 -0
- data/lib/rspec/core/formatters.rb +269 -0
- data/lib/rspec/core/formatters/base_bisect_formatter.rb +45 -0
- data/lib/rspec/core/formatters/base_formatter.rb +70 -0
- data/lib/rspec/core/formatters/base_text_formatter.rb +75 -0
- data/lib/rspec/core/formatters/bisect_drb_formatter.rb +29 -0
- data/lib/rspec/core/formatters/bisect_progress_formatter.rb +157 -0
- data/lib/rspec/core/formatters/console_codes.rb +68 -0
- data/lib/rspec/core/formatters/deprecation_formatter.rb +223 -0
- data/lib/rspec/core/formatters/documentation_formatter.rb +70 -0
- data/lib/rspec/core/formatters/exception_presenter.rb +508 -0
- data/lib/rspec/core/formatters/fallback_message_formatter.rb +28 -0
- data/lib/rspec/core/formatters/helpers.rb +110 -0
- data/lib/rspec/core/formatters/html_formatter.rb +153 -0
- data/lib/rspec/core/formatters/html_printer.rb +414 -0
- data/lib/rspec/core/formatters/html_snippet_extractor.rb +120 -0
- data/lib/rspec/core/formatters/json_formatter.rb +102 -0
- data/lib/rspec/core/formatters/profile_formatter.rb +68 -0
- data/lib/rspec/core/formatters/progress_formatter.rb +29 -0
- data/lib/rspec/core/formatters/protocol.rb +182 -0
- data/lib/rspec/core/formatters/snippet_extractor.rb +134 -0
- data/lib/rspec/core/formatters/syntax_highlighter.rb +91 -0
- data/lib/rspec/core/hooks.rb +624 -0
- data/lib/rspec/core/invocations.rb +87 -0
- data/lib/rspec/core/memoized_helpers.rb +554 -0
- data/lib/rspec/core/metadata.rb +498 -0
- data/lib/rspec/core/metadata_filter.rb +255 -0
- data/lib/rspec/core/minitest_assertions_adapter.rb +31 -0
- data/lib/rspec/core/mocking_adapters/flexmock.rb +31 -0
- data/lib/rspec/core/mocking_adapters/mocha.rb +57 -0
- data/lib/rspec/core/mocking_adapters/null.rb +14 -0
- data/lib/rspec/core/mocking_adapters/rr.rb +31 -0
- data/lib/rspec/core/mocking_adapters/rspec.rb +32 -0
- data/lib/rspec/core/notifications.rb +521 -0
- data/lib/rspec/core/option_parser.rb +309 -0
- data/lib/rspec/core/ordering.rb +158 -0
- data/lib/rspec/core/output_wrapper.rb +29 -0
- data/lib/rspec/core/pending.rb +165 -0
- data/lib/rspec/core/profiler.rb +34 -0
- data/lib/rspec/core/project_initializer.rb +48 -0
- data/lib/rspec/core/project_initializer/.rspec +1 -0
- data/lib/rspec/core/project_initializer/spec/spec_helper.rb +100 -0
- data/lib/rspec/core/rake_task.rb +168 -0
- data/lib/rspec/core/reporter.rb +257 -0
- data/lib/rspec/core/ruby_project.rb +53 -0
- data/lib/rspec/core/runner.rb +199 -0
- data/lib/rspec/core/sandbox.rb +37 -0
- data/lib/rspec/core/set.rb +54 -0
- data/lib/rspec/core/shared_context.rb +55 -0
- data/lib/rspec/core/shared_example_group.rb +269 -0
- data/lib/rspec/core/shell_escape.rb +49 -0
- data/lib/rspec/core/test_unit_assertions_adapter.rb +30 -0
- data/lib/rspec/core/version.rb +9 -0
- data/lib/rspec/core/warnings.rb +40 -0
- data/lib/rspec/core/world.rb +275 -0
- metadata +292 -0
- metadata.gz.sig +0 -0
@@ -0,0 +1,30 @@
|
|
1
|
+
require 'test/unit/assertions'
|
2
|
+
|
3
|
+
module RSpec
|
4
|
+
module Core
|
5
|
+
# @private
|
6
|
+
module TestUnitAssertionsAdapter
|
7
|
+
include ::Test::Unit::Assertions
|
8
|
+
|
9
|
+
# If using test/unit from Ruby core with Ruby 1.9+, it includes
|
10
|
+
# MiniTest::Assertions by default. Note the upcasing of 'Test'.
|
11
|
+
#
|
12
|
+
# If the test/unit gem is being loaded, it will not include any minitest
|
13
|
+
# assertions.
|
14
|
+
#
|
15
|
+
# Only if Minitest 5.x is included / loaded do we need to worry about
|
16
|
+
# adding a shim for the new updates. Thus instead of checking on the
|
17
|
+
# RUBY_VERSION we need to check ancestors.
|
18
|
+
begin
|
19
|
+
# MiniTest is 4.x.
|
20
|
+
# Minitest is 5.x.
|
21
|
+
if ancestors.include?(::Minitest::Assertions)
|
22
|
+
require 'rspec/core/minitest_assertions_adapter'
|
23
|
+
include ::RSpec::Core::MinitestAssertionsAdapter
|
24
|
+
end
|
25
|
+
rescue NameError
|
26
|
+
# No-op. Minitest 5.x was not loaded.
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
require "rspec/support/warnings"
|
2
|
+
|
3
|
+
module RSpec
|
4
|
+
module Core
|
5
|
+
# @private
|
6
|
+
module Warnings
|
7
|
+
# @private
|
8
|
+
#
|
9
|
+
# Used internally to print deprecation warnings.
|
10
|
+
def deprecate(deprecated, data={})
|
11
|
+
RSpec.configuration.reporter.deprecation(
|
12
|
+
{
|
13
|
+
:deprecated => deprecated,
|
14
|
+
:call_site => CallerFilter.first_non_rspec_line
|
15
|
+
}.merge(data)
|
16
|
+
)
|
17
|
+
end
|
18
|
+
|
19
|
+
# @private
|
20
|
+
#
|
21
|
+
# Used internally to print deprecation warnings.
|
22
|
+
def warn_deprecation(message, opts={})
|
23
|
+
RSpec.configuration.reporter.deprecation opts.merge(:message => message)
|
24
|
+
end
|
25
|
+
|
26
|
+
# @private
|
27
|
+
def warn_with(message, options={})
|
28
|
+
if options[:use_spec_location_as_call_site]
|
29
|
+
message += "." unless message.end_with?(".")
|
30
|
+
|
31
|
+
if RSpec.current_example
|
32
|
+
message += " Warning generated from spec at `#{RSpec.current_example.location}`."
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
super(message, options)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,275 @@
|
|
1
|
+
module RSpec
|
2
|
+
module Core
|
3
|
+
# @api private
|
4
|
+
#
|
5
|
+
# Internal container for global non-configuration data.
|
6
|
+
class World
|
7
|
+
# @private
|
8
|
+
attr_reader :example_groups, :filtered_examples
|
9
|
+
|
10
|
+
# Used internally to determine what to do when a SIGINT is received.
|
11
|
+
attr_accessor :wants_to_quit
|
12
|
+
|
13
|
+
# Used internally to signal that a failure outside of an example
|
14
|
+
# has occurred, and that therefore the exit status should indicate
|
15
|
+
# the run failed.
|
16
|
+
# @private
|
17
|
+
attr_accessor :non_example_failure
|
18
|
+
|
19
|
+
def initialize(configuration=RSpec.configuration)
|
20
|
+
@configuration = configuration
|
21
|
+
configuration.world = self
|
22
|
+
@example_groups = []
|
23
|
+
@example_group_counts_by_spec_file = Hash.new(0)
|
24
|
+
prepare_example_filtering
|
25
|
+
end
|
26
|
+
|
27
|
+
# @api public
|
28
|
+
#
|
29
|
+
# Prepares filters so that they apply to example groups when they run.
|
30
|
+
#
|
31
|
+
# This is a separate method so that filters can be modified/replaced and
|
32
|
+
# examples refiltered during a process's lifetime, which can be useful for
|
33
|
+
# a custom runner.
|
34
|
+
def prepare_example_filtering
|
35
|
+
@filtered_examples = Hash.new do |hash, group|
|
36
|
+
hash[group] = filter_manager.prune(group.examples)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
# @api private
|
41
|
+
#
|
42
|
+
# Apply ordering strategy from configuration to example groups.
|
43
|
+
def ordered_example_groups
|
44
|
+
ordering_strategy = @configuration.ordering_registry.fetch(:global)
|
45
|
+
ordering_strategy.order(@example_groups)
|
46
|
+
end
|
47
|
+
|
48
|
+
# @api private
|
49
|
+
#
|
50
|
+
# Reset world to 'scratch' before running suite.
|
51
|
+
def reset
|
52
|
+
RSpec::ExampleGroups.remove_all_constants
|
53
|
+
example_groups.clear
|
54
|
+
@sources_by_path.clear if defined?(@sources_by_path)
|
55
|
+
@syntax_highlighter = nil
|
56
|
+
end
|
57
|
+
|
58
|
+
# @private
|
59
|
+
def filter_manager
|
60
|
+
@configuration.filter_manager
|
61
|
+
end
|
62
|
+
|
63
|
+
# @private
|
64
|
+
def registered_example_group_files
|
65
|
+
@example_group_counts_by_spec_file.keys
|
66
|
+
end
|
67
|
+
|
68
|
+
# @api private
|
69
|
+
#
|
70
|
+
# Records an example group.
|
71
|
+
def record(example_group)
|
72
|
+
@configuration.on_example_group_definition_callbacks.each { |block| block.call(example_group) }
|
73
|
+
@example_group_counts_by_spec_file[example_group.metadata[:absolute_file_path]] += 1
|
74
|
+
end
|
75
|
+
|
76
|
+
# @private
|
77
|
+
def num_example_groups_defined_in(file)
|
78
|
+
@example_group_counts_by_spec_file[file]
|
79
|
+
end
|
80
|
+
|
81
|
+
# @private
|
82
|
+
def shared_example_group_registry
|
83
|
+
@shared_example_group_registry ||= SharedExampleGroup::Registry.new
|
84
|
+
end
|
85
|
+
|
86
|
+
# @private
|
87
|
+
def inclusion_filter
|
88
|
+
@configuration.inclusion_filter
|
89
|
+
end
|
90
|
+
|
91
|
+
# @private
|
92
|
+
def exclusion_filter
|
93
|
+
@configuration.exclusion_filter
|
94
|
+
end
|
95
|
+
|
96
|
+
# @api private
|
97
|
+
#
|
98
|
+
# Get count of examples to be run.
|
99
|
+
def example_count(groups=example_groups)
|
100
|
+
FlatMap.flat_map(groups) { |g| g.descendants }.
|
101
|
+
inject(0) { |a, e| a + e.filtered_examples.size }
|
102
|
+
end
|
103
|
+
|
104
|
+
# @private
|
105
|
+
def all_example_groups
|
106
|
+
FlatMap.flat_map(example_groups) { |g| g.descendants }
|
107
|
+
end
|
108
|
+
|
109
|
+
# @private
|
110
|
+
def all_examples
|
111
|
+
FlatMap.flat_map(all_example_groups) { |g| g.examples }
|
112
|
+
end
|
113
|
+
|
114
|
+
# @private
|
115
|
+
# Traverses the tree of each top level group.
|
116
|
+
# For each it yields the group, then the children, recursively.
|
117
|
+
# Halts the traversal of a branch of the tree as soon as the passed block returns true.
|
118
|
+
# Note that siblings groups and their sub-trees will continue to be explored.
|
119
|
+
# This is intended to make it easy to find the top-most group that satisfies some
|
120
|
+
# condition.
|
121
|
+
def traverse_example_group_trees_until(&block)
|
122
|
+
example_groups.each do |group|
|
123
|
+
group.traverse_tree_until(&block)
|
124
|
+
end
|
125
|
+
end
|
126
|
+
|
127
|
+
# @api private
|
128
|
+
#
|
129
|
+
# Find line number of previous declaration.
|
130
|
+
def preceding_declaration_line(absolute_file_name, filter_line)
|
131
|
+
line_numbers = descending_declaration_line_numbers_by_file.fetch(absolute_file_name) do
|
132
|
+
return nil
|
133
|
+
end
|
134
|
+
|
135
|
+
line_numbers.find { |num| num <= filter_line }
|
136
|
+
end
|
137
|
+
|
138
|
+
# @private
|
139
|
+
def reporter
|
140
|
+
@configuration.reporter
|
141
|
+
end
|
142
|
+
|
143
|
+
# @private
|
144
|
+
def source_from_file(path)
|
145
|
+
unless defined?(@sources_by_path)
|
146
|
+
RSpec::Support.require_rspec_support 'source'
|
147
|
+
@sources_by_path = {}
|
148
|
+
end
|
149
|
+
|
150
|
+
@sources_by_path[path] ||= Support::Source.from_file(path)
|
151
|
+
end
|
152
|
+
|
153
|
+
# @private
|
154
|
+
def syntax_highlighter
|
155
|
+
@syntax_highlighter ||= Formatters::SyntaxHighlighter.new(@configuration)
|
156
|
+
end
|
157
|
+
|
158
|
+
# @api private
|
159
|
+
#
|
160
|
+
# Notify reporter of filters.
|
161
|
+
def announce_filters
|
162
|
+
fail_if_config_and_cli_options_invalid
|
163
|
+
filter_announcements = []
|
164
|
+
|
165
|
+
announce_inclusion_filter filter_announcements
|
166
|
+
announce_exclusion_filter filter_announcements
|
167
|
+
|
168
|
+
unless filter_manager.empty?
|
169
|
+
if filter_announcements.length == 1
|
170
|
+
report_filter_message("Run options: #{filter_announcements[0]}")
|
171
|
+
else
|
172
|
+
report_filter_message("Run options:\n #{filter_announcements.join("\n ")}")
|
173
|
+
end
|
174
|
+
end
|
175
|
+
|
176
|
+
if @configuration.run_all_when_everything_filtered? && example_count.zero? && !@configuration.only_failures?
|
177
|
+
report_filter_message("#{everything_filtered_message}; ignoring #{inclusion_filter.description}")
|
178
|
+
filtered_examples.clear
|
179
|
+
inclusion_filter.clear
|
180
|
+
end
|
181
|
+
|
182
|
+
return unless example_count.zero?
|
183
|
+
|
184
|
+
example_groups.clear
|
185
|
+
if filter_manager.empty?
|
186
|
+
report_filter_message("No examples found.")
|
187
|
+
elsif exclusion_filter.empty? || inclusion_filter.empty?
|
188
|
+
report_filter_message(everything_filtered_message)
|
189
|
+
end
|
190
|
+
end
|
191
|
+
|
192
|
+
# @private
|
193
|
+
def report_filter_message(message)
|
194
|
+
reporter.message(message) unless @configuration.silence_filter_announcements?
|
195
|
+
end
|
196
|
+
|
197
|
+
# @private
|
198
|
+
def everything_filtered_message
|
199
|
+
"\nAll examples were filtered out"
|
200
|
+
end
|
201
|
+
|
202
|
+
# @api private
|
203
|
+
#
|
204
|
+
# Add inclusion filters to announcement message.
|
205
|
+
def announce_inclusion_filter(announcements)
|
206
|
+
return if inclusion_filter.empty?
|
207
|
+
|
208
|
+
announcements << "include #{inclusion_filter.description}"
|
209
|
+
end
|
210
|
+
|
211
|
+
# @api private
|
212
|
+
#
|
213
|
+
# Add exclusion filters to announcement message.
|
214
|
+
def announce_exclusion_filter(announcements)
|
215
|
+
return if exclusion_filter.empty?
|
216
|
+
|
217
|
+
announcements << "exclude #{exclusion_filter.description}"
|
218
|
+
end
|
219
|
+
|
220
|
+
private
|
221
|
+
|
222
|
+
def descending_declaration_line_numbers_by_file
|
223
|
+
@descending_declaration_line_numbers_by_file ||= begin
|
224
|
+
declaration_locations = FlatMap.flat_map(example_groups, &:declaration_locations)
|
225
|
+
hash_of_arrays = Hash.new { |h, k| h[k] = [] }
|
226
|
+
|
227
|
+
# TODO: change `inject` to `each_with_object` when we drop 1.8.7 support.
|
228
|
+
line_nums_by_file = declaration_locations.inject(hash_of_arrays) do |hash, (file_name, line_number)|
|
229
|
+
hash[file_name] << line_number
|
230
|
+
hash
|
231
|
+
end
|
232
|
+
|
233
|
+
line_nums_by_file.each_value do |list|
|
234
|
+
list.sort!
|
235
|
+
list.reverse!
|
236
|
+
end
|
237
|
+
end
|
238
|
+
end
|
239
|
+
|
240
|
+
def fail_if_config_and_cli_options_invalid
|
241
|
+
return unless @configuration.only_failures_but_not_configured?
|
242
|
+
|
243
|
+
reporter.abort_with(
|
244
|
+
"\nTo use `--only-failures`, you must first set " \
|
245
|
+
"`config.example_status_persistence_file_path`.",
|
246
|
+
1 # exit code
|
247
|
+
)
|
248
|
+
end
|
249
|
+
|
250
|
+
# @private
|
251
|
+
# Provides a null implementation for initial use by configuration.
|
252
|
+
module Null
|
253
|
+
def self.non_example_failure; end
|
254
|
+
def self.non_example_failure=(_); end
|
255
|
+
|
256
|
+
def self.registered_example_group_files
|
257
|
+
[]
|
258
|
+
end
|
259
|
+
|
260
|
+
def self.traverse_example_group_trees_until
|
261
|
+
end
|
262
|
+
|
263
|
+
# :nocov:
|
264
|
+
def self.example_groups
|
265
|
+
[]
|
266
|
+
end
|
267
|
+
|
268
|
+
def self.all_example_groups
|
269
|
+
[]
|
270
|
+
end
|
271
|
+
# :nocov:
|
272
|
+
end
|
273
|
+
end
|
274
|
+
end
|
275
|
+
end
|
metadata
ADDED
@@ -0,0 +1,292 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: rspec-core
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 3.8.2
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Steven Baker
|
8
|
+
- David Chelimsky
|
9
|
+
- Chad Humphries
|
10
|
+
- Myron Marston
|
11
|
+
autorequire:
|
12
|
+
bindir: exe
|
13
|
+
cert_chain:
|
14
|
+
- |
|
15
|
+
-----BEGIN CERTIFICATE-----
|
16
|
+
MIIF1TCCA72gAwIBAgIJAPXjfUbCjdXUMA0GCSqGSIb3DQEBBQUAMIGAMQswCQYD
|
17
|
+
VQQGEwJVUzETMBEGA1UECAwKV2FzaGluZ3RvbjEQMA4GA1UEBwwHU2VhdHRsZTEO
|
18
|
+
MAwGA1UECgwFUlNwZWMxEzARBgNVBAMMCnJzcGVjLmluZm8xJTAjBgkqhkiG9w0B
|
19
|
+
CQEWFnJzcGVjQGdvb2dsZWdyb3Vwcy5jb20wHhcNMTQxMjIzMDkzNTIyWhcNMjQx
|
20
|
+
MjIyMDkzNTIyWjCBgDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCldhc2hpbmd0b24x
|
21
|
+
EDAOBgNVBAcMB1NlYXR0bGUxDjAMBgNVBAoMBVJTcGVjMRMwEQYDVQQDDApyc3Bl
|
22
|
+
Yy5pbmZvMSUwIwYJKoZIhvcNAQkBFhZyc3BlY0Bnb29nbGVncm91cHMuY29tMIIC
|
23
|
+
IjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAsSmjgcHaKlD0jizRJowi2bGI
|
24
|
+
KMOHnJoExxRNHHxH+3w9kkl95YldvDRVX495b13ZCzwRe0AyqX24wq04tp0G5Z5C
|
25
|
+
e/w2pnNK4ol1eECPwQu+YGpepeODlZICL5gwQspe0cDifbBnHx5QySMiPpvx6bC0
|
26
|
+
tQTox0ppDIaMhch8IPCwyoE4DQK5bpsdwnLSHTsQjUIb7IM8tUMpd/iKrJgNffwc
|
27
|
+
6gC1TmhIlzQoB26nCNh9uK7xZjUM+sGECzvcYuImchUaIgJA/ybrlZS+m/hxzvBo
|
28
|
+
mLnn/xNEC6Vz5HG+3TR0Gb0cSUf6XUu2s51Jk/SJi3MhCZp2gs9OUg4EVZNzQVkZ
|
29
|
+
efLBjAZG2Mxk14JyB4/Omc+Jk0ajprINCBbUNnxzCJrYDM3J9TVWIwyUGNX/U3MO
|
30
|
+
s3tMAT+EVgx/mZMPnBO8EULlyF51MRUp3Wy9Mnw8AYLk30UnMG5AjqgO5JNyFlA7
|
31
|
+
Xeh3EVdWY3vMB1pkhPwlsenpcmj5gOzrd54lELOVbCGHCf48iSqeflY2Lhe0pvzK
|
32
|
+
blXCJBDmtrebvus291rM/dHcbEfK1SVd5Wut/n131iouf6dnNCFskFygDcgBbthC
|
33
|
+
gpEMqf80lEmhX59VUsm0Pv6OEo+ZPHBvXPiJA6DShQh9t3YtpwyA8uVDMbT/i32u
|
34
|
+
2FUsqZbbJcCmkBrGposCAwEAAaNQME4wHQYDVR0OBBYEFPPvQ5XT0Nvuhi6k+hrW
|
35
|
+
Vv35J+TeMB8GA1UdIwQYMBaAFPPvQ5XT0Nvuhi6k+hrWVv35J+TeMAwGA1UdEwQF
|
36
|
+
MAMBAf8wDQYJKoZIhvcNAQEFBQADggIBAIqbQSWH2aAF537DKwAMB8nMFsoe24MD
|
37
|
+
gtuQAyjTtbH+QBE4N2RdQF/sU7Y3PYR7nqdrCsYc3RxyqM5XXi7I3IYdpfe1RuxY
|
38
|
+
+pyPzVQsPPDhMlJlCrwJsADnxlpxZlAgxYSLKOan55ihscaAWA90wqRUrf/ZJM36
|
39
|
+
8LWCPVn5teIt5aaxZWX68RMxa+AXvpbtJOBwXLkIFk3apD8CX4DhelIdw67DbkUe
|
40
|
+
ghUd/u62qrnqBTVgditt7OoWIZjzh24/Fda5d0MxZyvLILGOrf5bN4cTbe/q9Cid
|
41
|
+
Xrik7Upm+mu3y3yQIfrw85xybHq6iNXyYHvCdSrFfCIKrGpd/0CAdmYnJlx59Fk/
|
42
|
+
UbD3Eyx4psBSkU+WKO0Uf+3zNI7N/nVeNIwU/Ft+l8l7/K+427656c+ZGWDO0Gt/
|
43
|
+
BeEOSTDKP7qQ1T+JvMrBcBQo+i0cnRT10J1aoV90BhxsvWTRizIbugbaqR6Tq3bj
|
44
|
+
Akt00cIlNSplL6DenIAKSh5kF7s0tRD0tC3bNkZmNjNGkdoGEcUODEpTB3RHKKiu
|
45
|
+
e6k2Jg6m00z5vGFQhOnROG/QaUzMA3A3mFBe1RHFo07xd0pFeoeWL3vF69Gx9Jwp
|
46
|
+
ZsVDj6a7lH3cNqtWXZxrb2wO38qV5AkYj8SQK7Hj3/Yui9myUX3crr+PdetazSqQ
|
47
|
+
F3MdtaDehhjC
|
48
|
+
-----END CERTIFICATE-----
|
49
|
+
date: 2019-06-29 00:00:00.000000000 Z
|
50
|
+
dependencies:
|
51
|
+
- !ruby/object:Gem::Dependency
|
52
|
+
name: rspec-support
|
53
|
+
requirement: !ruby/object:Gem::Requirement
|
54
|
+
requirements:
|
55
|
+
- - "~>"
|
56
|
+
- !ruby/object:Gem::Version
|
57
|
+
version: 3.8.0
|
58
|
+
type: :runtime
|
59
|
+
prerelease: false
|
60
|
+
version_requirements: !ruby/object:Gem::Requirement
|
61
|
+
requirements:
|
62
|
+
- - "~>"
|
63
|
+
- !ruby/object:Gem::Version
|
64
|
+
version: 3.8.0
|
65
|
+
- !ruby/object:Gem::Dependency
|
66
|
+
name: cucumber
|
67
|
+
requirement: !ruby/object:Gem::Requirement
|
68
|
+
requirements:
|
69
|
+
- - "~>"
|
70
|
+
- !ruby/object:Gem::Version
|
71
|
+
version: '1.3'
|
72
|
+
type: :development
|
73
|
+
prerelease: false
|
74
|
+
version_requirements: !ruby/object:Gem::Requirement
|
75
|
+
requirements:
|
76
|
+
- - "~>"
|
77
|
+
- !ruby/object:Gem::Version
|
78
|
+
version: '1.3'
|
79
|
+
- !ruby/object:Gem::Dependency
|
80
|
+
name: minitest
|
81
|
+
requirement: !ruby/object:Gem::Requirement
|
82
|
+
requirements:
|
83
|
+
- - "~>"
|
84
|
+
- !ruby/object:Gem::Version
|
85
|
+
version: '5.3'
|
86
|
+
type: :development
|
87
|
+
prerelease: false
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
requirements:
|
90
|
+
- - "~>"
|
91
|
+
- !ruby/object:Gem::Version
|
92
|
+
version: '5.3'
|
93
|
+
- !ruby/object:Gem::Dependency
|
94
|
+
name: aruba
|
95
|
+
requirement: !ruby/object:Gem::Requirement
|
96
|
+
requirements:
|
97
|
+
- - "~>"
|
98
|
+
- !ruby/object:Gem::Version
|
99
|
+
version: 0.6.2
|
100
|
+
type: :development
|
101
|
+
prerelease: false
|
102
|
+
version_requirements: !ruby/object:Gem::Requirement
|
103
|
+
requirements:
|
104
|
+
- - "~>"
|
105
|
+
- !ruby/object:Gem::Version
|
106
|
+
version: 0.6.2
|
107
|
+
- !ruby/object:Gem::Dependency
|
108
|
+
name: coderay
|
109
|
+
requirement: !ruby/object:Gem::Requirement
|
110
|
+
requirements:
|
111
|
+
- - "~>"
|
112
|
+
- !ruby/object:Gem::Version
|
113
|
+
version: 1.1.1
|
114
|
+
type: :development
|
115
|
+
prerelease: false
|
116
|
+
version_requirements: !ruby/object:Gem::Requirement
|
117
|
+
requirements:
|
118
|
+
- - "~>"
|
119
|
+
- !ruby/object:Gem::Version
|
120
|
+
version: 1.1.1
|
121
|
+
- !ruby/object:Gem::Dependency
|
122
|
+
name: mocha
|
123
|
+
requirement: !ruby/object:Gem::Requirement
|
124
|
+
requirements:
|
125
|
+
- - "~>"
|
126
|
+
- !ruby/object:Gem::Version
|
127
|
+
version: 0.13.0
|
128
|
+
type: :development
|
129
|
+
prerelease: false
|
130
|
+
version_requirements: !ruby/object:Gem::Requirement
|
131
|
+
requirements:
|
132
|
+
- - "~>"
|
133
|
+
- !ruby/object:Gem::Version
|
134
|
+
version: 0.13.0
|
135
|
+
- !ruby/object:Gem::Dependency
|
136
|
+
name: rr
|
137
|
+
requirement: !ruby/object:Gem::Requirement
|
138
|
+
requirements:
|
139
|
+
- - "~>"
|
140
|
+
- !ruby/object:Gem::Version
|
141
|
+
version: 1.0.4
|
142
|
+
type: :development
|
143
|
+
prerelease: false
|
144
|
+
version_requirements: !ruby/object:Gem::Requirement
|
145
|
+
requirements:
|
146
|
+
- - "~>"
|
147
|
+
- !ruby/object:Gem::Version
|
148
|
+
version: 1.0.4
|
149
|
+
- !ruby/object:Gem::Dependency
|
150
|
+
name: flexmock
|
151
|
+
requirement: !ruby/object:Gem::Requirement
|
152
|
+
requirements:
|
153
|
+
- - "~>"
|
154
|
+
- !ruby/object:Gem::Version
|
155
|
+
version: 0.9.0
|
156
|
+
type: :development
|
157
|
+
prerelease: false
|
158
|
+
version_requirements: !ruby/object:Gem::Requirement
|
159
|
+
requirements:
|
160
|
+
- - "~>"
|
161
|
+
- !ruby/object:Gem::Version
|
162
|
+
version: 0.9.0
|
163
|
+
- !ruby/object:Gem::Dependency
|
164
|
+
name: thread_order
|
165
|
+
requirement: !ruby/object:Gem::Requirement
|
166
|
+
requirements:
|
167
|
+
- - "~>"
|
168
|
+
- !ruby/object:Gem::Version
|
169
|
+
version: 1.1.0
|
170
|
+
type: :development
|
171
|
+
prerelease: false
|
172
|
+
version_requirements: !ruby/object:Gem::Requirement
|
173
|
+
requirements:
|
174
|
+
- - "~>"
|
175
|
+
- !ruby/object:Gem::Version
|
176
|
+
version: 1.1.0
|
177
|
+
description: BDD for Ruby. RSpec runner and example groups.
|
178
|
+
email: rspec@googlegroups.com
|
179
|
+
executables:
|
180
|
+
- rspec
|
181
|
+
extensions: []
|
182
|
+
extra_rdoc_files: []
|
183
|
+
files:
|
184
|
+
- ".document"
|
185
|
+
- ".yardopts"
|
186
|
+
- Changelog.md
|
187
|
+
- LICENSE.md
|
188
|
+
- README.md
|
189
|
+
- exe/rspec
|
190
|
+
- lib/rspec/autorun.rb
|
191
|
+
- lib/rspec/core.rb
|
192
|
+
- lib/rspec/core/backtrace_formatter.rb
|
193
|
+
- lib/rspec/core/bisect/coordinator.rb
|
194
|
+
- lib/rspec/core/bisect/example_minimizer.rb
|
195
|
+
- lib/rspec/core/bisect/fork_runner.rb
|
196
|
+
- lib/rspec/core/bisect/server.rb
|
197
|
+
- lib/rspec/core/bisect/shell_command.rb
|
198
|
+
- lib/rspec/core/bisect/shell_runner.rb
|
199
|
+
- lib/rspec/core/bisect/utilities.rb
|
200
|
+
- lib/rspec/core/configuration.rb
|
201
|
+
- lib/rspec/core/configuration_options.rb
|
202
|
+
- lib/rspec/core/drb.rb
|
203
|
+
- lib/rspec/core/dsl.rb
|
204
|
+
- lib/rspec/core/example.rb
|
205
|
+
- lib/rspec/core/example_group.rb
|
206
|
+
- lib/rspec/core/example_status_persister.rb
|
207
|
+
- lib/rspec/core/filter_manager.rb
|
208
|
+
- lib/rspec/core/flat_map.rb
|
209
|
+
- lib/rspec/core/formatters.rb
|
210
|
+
- lib/rspec/core/formatters/base_bisect_formatter.rb
|
211
|
+
- lib/rspec/core/formatters/base_formatter.rb
|
212
|
+
- lib/rspec/core/formatters/base_text_formatter.rb
|
213
|
+
- lib/rspec/core/formatters/bisect_drb_formatter.rb
|
214
|
+
- lib/rspec/core/formatters/bisect_progress_formatter.rb
|
215
|
+
- lib/rspec/core/formatters/console_codes.rb
|
216
|
+
- lib/rspec/core/formatters/deprecation_formatter.rb
|
217
|
+
- lib/rspec/core/formatters/documentation_formatter.rb
|
218
|
+
- lib/rspec/core/formatters/exception_presenter.rb
|
219
|
+
- lib/rspec/core/formatters/fallback_message_formatter.rb
|
220
|
+
- lib/rspec/core/formatters/helpers.rb
|
221
|
+
- lib/rspec/core/formatters/html_formatter.rb
|
222
|
+
- lib/rspec/core/formatters/html_printer.rb
|
223
|
+
- lib/rspec/core/formatters/html_snippet_extractor.rb
|
224
|
+
- lib/rspec/core/formatters/json_formatter.rb
|
225
|
+
- lib/rspec/core/formatters/profile_formatter.rb
|
226
|
+
- lib/rspec/core/formatters/progress_formatter.rb
|
227
|
+
- lib/rspec/core/formatters/protocol.rb
|
228
|
+
- lib/rspec/core/formatters/snippet_extractor.rb
|
229
|
+
- lib/rspec/core/formatters/syntax_highlighter.rb
|
230
|
+
- lib/rspec/core/hooks.rb
|
231
|
+
- lib/rspec/core/invocations.rb
|
232
|
+
- lib/rspec/core/memoized_helpers.rb
|
233
|
+
- lib/rspec/core/metadata.rb
|
234
|
+
- lib/rspec/core/metadata_filter.rb
|
235
|
+
- lib/rspec/core/minitest_assertions_adapter.rb
|
236
|
+
- lib/rspec/core/mocking_adapters/flexmock.rb
|
237
|
+
- lib/rspec/core/mocking_adapters/mocha.rb
|
238
|
+
- lib/rspec/core/mocking_adapters/null.rb
|
239
|
+
- lib/rspec/core/mocking_adapters/rr.rb
|
240
|
+
- lib/rspec/core/mocking_adapters/rspec.rb
|
241
|
+
- lib/rspec/core/notifications.rb
|
242
|
+
- lib/rspec/core/option_parser.rb
|
243
|
+
- lib/rspec/core/ordering.rb
|
244
|
+
- lib/rspec/core/output_wrapper.rb
|
245
|
+
- lib/rspec/core/pending.rb
|
246
|
+
- lib/rspec/core/profiler.rb
|
247
|
+
- lib/rspec/core/project_initializer.rb
|
248
|
+
- lib/rspec/core/project_initializer/.rspec
|
249
|
+
- lib/rspec/core/project_initializer/spec/spec_helper.rb
|
250
|
+
- lib/rspec/core/rake_task.rb
|
251
|
+
- lib/rspec/core/reporter.rb
|
252
|
+
- lib/rspec/core/ruby_project.rb
|
253
|
+
- lib/rspec/core/runner.rb
|
254
|
+
- lib/rspec/core/sandbox.rb
|
255
|
+
- lib/rspec/core/set.rb
|
256
|
+
- lib/rspec/core/shared_context.rb
|
257
|
+
- lib/rspec/core/shared_example_group.rb
|
258
|
+
- lib/rspec/core/shell_escape.rb
|
259
|
+
- lib/rspec/core/test_unit_assertions_adapter.rb
|
260
|
+
- lib/rspec/core/version.rb
|
261
|
+
- lib/rspec/core/warnings.rb
|
262
|
+
- lib/rspec/core/world.rb
|
263
|
+
homepage: https://github.com/rspec/rspec-core
|
264
|
+
licenses:
|
265
|
+
- MIT
|
266
|
+
metadata:
|
267
|
+
bug_tracker_uri: https://github.com/rspec/rspec-core/issues
|
268
|
+
changelog_uri: https://github.com/rspec/rspec-core/blob/v3.8.2/Changelog.md
|
269
|
+
documentation_uri: https://rspec.info/documentation/
|
270
|
+
mailing_list_uri: https://groups.google.com/forum/#!forum/rspec
|
271
|
+
source_code_uri: https://github.com/rspec/rspec-core
|
272
|
+
post_install_message:
|
273
|
+
rdoc_options:
|
274
|
+
- "--charset=UTF-8"
|
275
|
+
require_paths:
|
276
|
+
- lib
|
277
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
278
|
+
requirements:
|
279
|
+
- - ">="
|
280
|
+
- !ruby/object:Gem::Version
|
281
|
+
version: 1.8.7
|
282
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
283
|
+
requirements:
|
284
|
+
- - ">="
|
285
|
+
- !ruby/object:Gem::Version
|
286
|
+
version: '0'
|
287
|
+
requirements: []
|
288
|
+
rubygems_version: 3.0.3
|
289
|
+
signing_key:
|
290
|
+
specification_version: 4
|
291
|
+
summary: rspec-core-3.8.2
|
292
|
+
test_files: []
|