rspec-core 3.8.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (84) hide show
  1. checksums.yaml +7 -0
  2. checksums.yaml.gz.sig +0 -0
  3. data.tar.gz.sig +0 -0
  4. data/.document +5 -0
  5. data/.yardopts +8 -0
  6. data/Changelog.md +2243 -0
  7. data/LICENSE.md +26 -0
  8. data/README.md +384 -0
  9. data/exe/rspec +4 -0
  10. data/lib/rspec/autorun.rb +3 -0
  11. data/lib/rspec/core.rb +185 -0
  12. data/lib/rspec/core/backtrace_formatter.rb +65 -0
  13. data/lib/rspec/core/bisect/coordinator.rb +62 -0
  14. data/lib/rspec/core/bisect/example_minimizer.rb +173 -0
  15. data/lib/rspec/core/bisect/fork_runner.rb +134 -0
  16. data/lib/rspec/core/bisect/server.rb +61 -0
  17. data/lib/rspec/core/bisect/shell_command.rb +126 -0
  18. data/lib/rspec/core/bisect/shell_runner.rb +73 -0
  19. data/lib/rspec/core/bisect/utilities.rb +58 -0
  20. data/lib/rspec/core/configuration.rb +2308 -0
  21. data/lib/rspec/core/configuration_options.rb +233 -0
  22. data/lib/rspec/core/drb.rb +113 -0
  23. data/lib/rspec/core/dsl.rb +98 -0
  24. data/lib/rspec/core/example.rb +656 -0
  25. data/lib/rspec/core/example_group.rb +889 -0
  26. data/lib/rspec/core/example_status_persister.rb +235 -0
  27. data/lib/rspec/core/filter_manager.rb +231 -0
  28. data/lib/rspec/core/flat_map.rb +20 -0
  29. data/lib/rspec/core/formatters.rb +269 -0
  30. data/lib/rspec/core/formatters/base_bisect_formatter.rb +45 -0
  31. data/lib/rspec/core/formatters/base_formatter.rb +70 -0
  32. data/lib/rspec/core/formatters/base_text_formatter.rb +75 -0
  33. data/lib/rspec/core/formatters/bisect_drb_formatter.rb +29 -0
  34. data/lib/rspec/core/formatters/bisect_progress_formatter.rb +157 -0
  35. data/lib/rspec/core/formatters/console_codes.rb +68 -0
  36. data/lib/rspec/core/formatters/deprecation_formatter.rb +223 -0
  37. data/lib/rspec/core/formatters/documentation_formatter.rb +70 -0
  38. data/lib/rspec/core/formatters/exception_presenter.rb +508 -0
  39. data/lib/rspec/core/formatters/fallback_message_formatter.rb +28 -0
  40. data/lib/rspec/core/formatters/helpers.rb +110 -0
  41. data/lib/rspec/core/formatters/html_formatter.rb +153 -0
  42. data/lib/rspec/core/formatters/html_printer.rb +414 -0
  43. data/lib/rspec/core/formatters/html_snippet_extractor.rb +120 -0
  44. data/lib/rspec/core/formatters/json_formatter.rb +102 -0
  45. data/lib/rspec/core/formatters/profile_formatter.rb +68 -0
  46. data/lib/rspec/core/formatters/progress_formatter.rb +29 -0
  47. data/lib/rspec/core/formatters/protocol.rb +182 -0
  48. data/lib/rspec/core/formatters/snippet_extractor.rb +134 -0
  49. data/lib/rspec/core/formatters/syntax_highlighter.rb +91 -0
  50. data/lib/rspec/core/hooks.rb +624 -0
  51. data/lib/rspec/core/invocations.rb +87 -0
  52. data/lib/rspec/core/memoized_helpers.rb +554 -0
  53. data/lib/rspec/core/metadata.rb +498 -0
  54. data/lib/rspec/core/metadata_filter.rb +255 -0
  55. data/lib/rspec/core/minitest_assertions_adapter.rb +31 -0
  56. data/lib/rspec/core/mocking_adapters/flexmock.rb +31 -0
  57. data/lib/rspec/core/mocking_adapters/mocha.rb +57 -0
  58. data/lib/rspec/core/mocking_adapters/null.rb +14 -0
  59. data/lib/rspec/core/mocking_adapters/rr.rb +31 -0
  60. data/lib/rspec/core/mocking_adapters/rspec.rb +32 -0
  61. data/lib/rspec/core/notifications.rb +521 -0
  62. data/lib/rspec/core/option_parser.rb +309 -0
  63. data/lib/rspec/core/ordering.rb +158 -0
  64. data/lib/rspec/core/output_wrapper.rb +29 -0
  65. data/lib/rspec/core/pending.rb +165 -0
  66. data/lib/rspec/core/profiler.rb +34 -0
  67. data/lib/rspec/core/project_initializer.rb +48 -0
  68. data/lib/rspec/core/project_initializer/.rspec +1 -0
  69. data/lib/rspec/core/project_initializer/spec/spec_helper.rb +100 -0
  70. data/lib/rspec/core/rake_task.rb +168 -0
  71. data/lib/rspec/core/reporter.rb +257 -0
  72. data/lib/rspec/core/ruby_project.rb +53 -0
  73. data/lib/rspec/core/runner.rb +199 -0
  74. data/lib/rspec/core/sandbox.rb +37 -0
  75. data/lib/rspec/core/set.rb +54 -0
  76. data/lib/rspec/core/shared_context.rb +55 -0
  77. data/lib/rspec/core/shared_example_group.rb +269 -0
  78. data/lib/rspec/core/shell_escape.rb +49 -0
  79. data/lib/rspec/core/test_unit_assertions_adapter.rb +30 -0
  80. data/lib/rspec/core/version.rb +9 -0
  81. data/lib/rspec/core/warnings.rb +40 -0
  82. data/lib/rspec/core/world.rb +275 -0
  83. metadata +292 -0
  84. 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,9 @@
1
+ module RSpec
2
+ module Core
3
+ # Version information for RSpec Core.
4
+ module Version
5
+ # Current version of RSpec Core, in semantic versioning format.
6
+ STRING = '3.8.2'
7
+ end
8
+ end
9
+ 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: []