sspec-mirror-test 3.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/Changelog.md +242 -0
- data/LICENSE.md +23 -0
- data/README.md +40 -0
- data/lib/rspec/support.rb +149 -0
- data/lib/rspec/support/caller_filter.rb +83 -0
- data/lib/rspec/support/comparable_version.rb +46 -0
- data/lib/rspec/support/differ.rb +215 -0
- data/lib/rspec/support/directory_maker.rb +63 -0
- data/lib/rspec/support/encoded_string.rb +165 -0
- data/lib/rspec/support/fuzzy_matcher.rb +48 -0
- data/lib/rspec/support/hunk_generator.rb +47 -0
- data/lib/rspec/support/matcher_definition.rb +42 -0
- data/lib/rspec/support/method_signature_verifier.rb +426 -0
- data/lib/rspec/support/mutex.rb +73 -0
- data/lib/rspec/support/object_formatter.rb +275 -0
- data/lib/rspec/support/recursive_const_methods.rb +76 -0
- data/lib/rspec/support/reentrant_mutex.rb +53 -0
- data/lib/rspec/support/ruby_features.rb +176 -0
- data/lib/rspec/support/source.rb +75 -0
- data/lib/rspec/support/source/location.rb +21 -0
- data/lib/rspec/support/source/node.rb +110 -0
- data/lib/rspec/support/source/token.rb +87 -0
- data/lib/rspec/support/spec.rb +81 -0
- data/lib/rspec/support/spec/deprecation_helpers.rb +64 -0
- data/lib/rspec/support/spec/formatting_support.rb +9 -0
- data/lib/rspec/support/spec/in_sub_process.rb +69 -0
- data/lib/rspec/support/spec/library_wide_checks.rb +150 -0
- data/lib/rspec/support/spec/shell_out.rb +84 -0
- data/lib/rspec/support/spec/stderr_splitter.rb +63 -0
- data/lib/rspec/support/spec/string_matcher.rb +46 -0
- data/lib/rspec/support/spec/with_isolated_directory.rb +13 -0
- data/lib/rspec/support/spec/with_isolated_stderr.rb +13 -0
- data/lib/rspec/support/version.rb +7 -0
- data/lib/rspec/support/warnings.rb +39 -0
- metadata +115 -0
@@ -0,0 +1,63 @@
|
|
1
|
+
require 'stringio'
|
2
|
+
|
3
|
+
module RSpec
|
4
|
+
module Support
|
5
|
+
class StdErrSplitter
|
6
|
+
def initialize(original)
|
7
|
+
@orig_stderr = original
|
8
|
+
@output_tracker = ::StringIO.new
|
9
|
+
end
|
10
|
+
|
11
|
+
respond_to_name = (::RUBY_VERSION.to_f < 1.9) ? :respond_to? : :respond_to_missing?
|
12
|
+
define_method respond_to_name do |*args|
|
13
|
+
@orig_stderr.respond_to?(*args) || super(*args)
|
14
|
+
end
|
15
|
+
|
16
|
+
def method_missing(name, *args, &block)
|
17
|
+
@output_tracker.__send__(name, *args, &block) if @output_tracker.respond_to?(name)
|
18
|
+
@orig_stderr.__send__(name, *args, &block)
|
19
|
+
end
|
20
|
+
|
21
|
+
def ==(other)
|
22
|
+
@orig_stderr == other
|
23
|
+
end
|
24
|
+
|
25
|
+
def reopen(*args)
|
26
|
+
reset!
|
27
|
+
@orig_stderr.reopen(*args)
|
28
|
+
end
|
29
|
+
|
30
|
+
# To work around JRuby error:
|
31
|
+
# can't convert RSpec::Support::StdErrSplitter into String
|
32
|
+
def to_io
|
33
|
+
@orig_stderr.to_io
|
34
|
+
end
|
35
|
+
|
36
|
+
# To work around JRuby error:
|
37
|
+
# TypeError: $stderr must have write method, RSpec::StdErrSplitter given
|
38
|
+
def write(line)
|
39
|
+
return if line =~ %r{^\S+/gems/\S+:\d+: warning:} # http://rubular.com/r/kqeUIZOfPG
|
40
|
+
|
41
|
+
@orig_stderr.write(line)
|
42
|
+
@output_tracker.write(line)
|
43
|
+
end
|
44
|
+
|
45
|
+
def has_output?
|
46
|
+
!output.empty?
|
47
|
+
end
|
48
|
+
|
49
|
+
def reset!
|
50
|
+
@output_tracker = ::StringIO.new
|
51
|
+
end
|
52
|
+
|
53
|
+
def verify_no_warnings!
|
54
|
+
raise "Warnings were generated: #{output}" if has_output?
|
55
|
+
reset!
|
56
|
+
end
|
57
|
+
|
58
|
+
def output
|
59
|
+
@output_tracker.string
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
require 'rspec/matchers'
|
2
|
+
# Special matcher for comparing encoded strings so that
|
3
|
+
# we don't run any expectation failures through the Differ,
|
4
|
+
# which also relies on EncodedString. Instead, confirm the
|
5
|
+
# strings have the same bytes.
|
6
|
+
RSpec::Matchers.define :be_identical_string do |expected|
|
7
|
+
|
8
|
+
if String.method_defined?(:encoding)
|
9
|
+
match do
|
10
|
+
expected_encoding? &&
|
11
|
+
actual.bytes.to_a == expected.bytes.to_a
|
12
|
+
end
|
13
|
+
|
14
|
+
failure_message do
|
15
|
+
"expected\n#{actual.inspect} (#{actual.encoding.name}) to be identical to\n"\
|
16
|
+
"#{expected.inspect} (#{expected.encoding.name})\n"\
|
17
|
+
"The exact bytes are printed below for more detail:\n"\
|
18
|
+
"#{actual.bytes.to_a}\n"\
|
19
|
+
"#{expected.bytes.to_a}\n"\
|
20
|
+
end
|
21
|
+
|
22
|
+
# Depends on chaining :with_same_encoding for it to
|
23
|
+
# check for string encoding.
|
24
|
+
def expected_encoding?
|
25
|
+
if defined?(@expect_same_encoding) && @expect_same_encoding
|
26
|
+
actual.encoding == expected.encoding
|
27
|
+
else
|
28
|
+
true
|
29
|
+
end
|
30
|
+
end
|
31
|
+
else
|
32
|
+
match do
|
33
|
+
actual.split(//) == expected.split(//)
|
34
|
+
end
|
35
|
+
|
36
|
+
failure_message do
|
37
|
+
"expected\n#{actual.inspect} to be identical to\n#{expected.inspect}\n"
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
chain :with_same_encoding do
|
42
|
+
@expect_same_encoding ||= true
|
43
|
+
end
|
44
|
+
end
|
45
|
+
RSpec::Matchers.alias_matcher :a_string_identical_to, :be_identical_string
|
46
|
+
RSpec::Matchers.alias_matcher :be_diffed_as, :be_identical_string
|
@@ -0,0 +1,13 @@
|
|
1
|
+
require 'tmpdir'
|
2
|
+
|
3
|
+
RSpec.shared_context "isolated directory" do
|
4
|
+
around do |ex|
|
5
|
+
Dir.mktmpdir do |tmp_dir|
|
6
|
+
Dir.chdir(tmp_dir, &ex)
|
7
|
+
end
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
RSpec.configure do |c|
|
12
|
+
c.include_context "isolated directory", :isolated_directory => true
|
13
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
require 'rspec/support'
|
2
|
+
RSpec::Support.require_rspec_support "caller_filter"
|
3
|
+
|
4
|
+
module RSpec
|
5
|
+
module Support
|
6
|
+
module Warnings
|
7
|
+
def deprecate(deprecated, options={})
|
8
|
+
warn_with "DEPRECATION: #{deprecated} is deprecated.", options
|
9
|
+
end
|
10
|
+
|
11
|
+
# @private
|
12
|
+
#
|
13
|
+
# Used internally to print deprecation warnings
|
14
|
+
# when rspec-core isn't loaded
|
15
|
+
def warn_deprecation(message, options={})
|
16
|
+
warn_with "DEPRECATION: \n #{message}", options
|
17
|
+
end
|
18
|
+
|
19
|
+
# @private
|
20
|
+
#
|
21
|
+
# Used internally to print warnings
|
22
|
+
def warning(text, options={})
|
23
|
+
warn_with "WARNING: #{text}.", options
|
24
|
+
end
|
25
|
+
|
26
|
+
# @private
|
27
|
+
#
|
28
|
+
# Used internally to print longer warnings
|
29
|
+
def warn_with(message, options={})
|
30
|
+
call_site = options.fetch(:call_site) { CallerFilter.first_non_rspec_line }
|
31
|
+
message += " Use #{options[:replacement]} instead." if options[:replacement]
|
32
|
+
message += " Called from #{call_site}." if call_site
|
33
|
+
Support.warning_notifier.call message
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
extend RSpec::Support::Warnings
|
39
|
+
end
|
metadata
ADDED
@@ -0,0 +1,115 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: sspec-mirror-test
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 3.8.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- David Chelimsky
|
8
|
+
- Myron Marson
|
9
|
+
- Jon Rowe
|
10
|
+
- Sam Phippen
|
11
|
+
- Xaviery Shay
|
12
|
+
- Bradley Schaefer
|
13
|
+
autorequire:
|
14
|
+
bindir: bin
|
15
|
+
cert_chain: []
|
16
|
+
date: 2019-04-12 00:00:00.000000000 Z
|
17
|
+
dependencies:
|
18
|
+
- !ruby/object:Gem::Dependency
|
19
|
+
name: rake
|
20
|
+
requirement: !ruby/object:Gem::Requirement
|
21
|
+
requirements:
|
22
|
+
- - "~>"
|
23
|
+
- !ruby/object:Gem::Version
|
24
|
+
version: 10.0.0
|
25
|
+
type: :development
|
26
|
+
prerelease: false
|
27
|
+
version_requirements: !ruby/object:Gem::Requirement
|
28
|
+
requirements:
|
29
|
+
- - "~>"
|
30
|
+
- !ruby/object:Gem::Version
|
31
|
+
version: 10.0.0
|
32
|
+
- !ruby/object:Gem::Dependency
|
33
|
+
name: thread_order
|
34
|
+
requirement: !ruby/object:Gem::Requirement
|
35
|
+
requirements:
|
36
|
+
- - "~>"
|
37
|
+
- !ruby/object:Gem::Version
|
38
|
+
version: 1.1.0
|
39
|
+
type: :development
|
40
|
+
prerelease: false
|
41
|
+
version_requirements: !ruby/object:Gem::Requirement
|
42
|
+
requirements:
|
43
|
+
- - "~>"
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: 1.1.0
|
46
|
+
description: Support utilities for RSpec gems
|
47
|
+
email: rspec-users@rubyforge.org
|
48
|
+
executables: []
|
49
|
+
extensions: []
|
50
|
+
extra_rdoc_files: []
|
51
|
+
files:
|
52
|
+
- Changelog.md
|
53
|
+
- LICENSE.md
|
54
|
+
- README.md
|
55
|
+
- lib/rspec/support.rb
|
56
|
+
- lib/rspec/support/caller_filter.rb
|
57
|
+
- lib/rspec/support/comparable_version.rb
|
58
|
+
- lib/rspec/support/differ.rb
|
59
|
+
- lib/rspec/support/directory_maker.rb
|
60
|
+
- lib/rspec/support/encoded_string.rb
|
61
|
+
- lib/rspec/support/fuzzy_matcher.rb
|
62
|
+
- lib/rspec/support/hunk_generator.rb
|
63
|
+
- lib/rspec/support/matcher_definition.rb
|
64
|
+
- lib/rspec/support/method_signature_verifier.rb
|
65
|
+
- lib/rspec/support/mutex.rb
|
66
|
+
- lib/rspec/support/object_formatter.rb
|
67
|
+
- lib/rspec/support/recursive_const_methods.rb
|
68
|
+
- lib/rspec/support/reentrant_mutex.rb
|
69
|
+
- lib/rspec/support/ruby_features.rb
|
70
|
+
- lib/rspec/support/source.rb
|
71
|
+
- lib/rspec/support/source/location.rb
|
72
|
+
- lib/rspec/support/source/node.rb
|
73
|
+
- lib/rspec/support/source/token.rb
|
74
|
+
- lib/rspec/support/spec.rb
|
75
|
+
- lib/rspec/support/spec/deprecation_helpers.rb
|
76
|
+
- lib/rspec/support/spec/formatting_support.rb
|
77
|
+
- lib/rspec/support/spec/in_sub_process.rb
|
78
|
+
- lib/rspec/support/spec/library_wide_checks.rb
|
79
|
+
- lib/rspec/support/spec/shell_out.rb
|
80
|
+
- lib/rspec/support/spec/stderr_splitter.rb
|
81
|
+
- lib/rspec/support/spec/string_matcher.rb
|
82
|
+
- lib/rspec/support/spec/with_isolated_directory.rb
|
83
|
+
- lib/rspec/support/spec/with_isolated_stderr.rb
|
84
|
+
- lib/rspec/support/version.rb
|
85
|
+
- lib/rspec/support/warnings.rb
|
86
|
+
homepage: https://github.com/rspec/rspec-support
|
87
|
+
licenses:
|
88
|
+
- MIT
|
89
|
+
metadata:
|
90
|
+
bug_tracker_uri: https://github.com/rspec/rspec-support/issues
|
91
|
+
changelog_uri: https://github.com/rspec/rspec-support/blob/v3.8.0/Changelog.md
|
92
|
+
documentation_uri: https://rspec.info/documentation/
|
93
|
+
mailing_list_uri: https://groups.google.com/forum/#!forum/rspec
|
94
|
+
source_code_uri: https://github.com/rspec/rspec-support
|
95
|
+
post_install_message:
|
96
|
+
rdoc_options:
|
97
|
+
- "--charset=UTF-8"
|
98
|
+
require_paths:
|
99
|
+
- lib
|
100
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
101
|
+
requirements:
|
102
|
+
- - ">="
|
103
|
+
- !ruby/object:Gem::Version
|
104
|
+
version: 1.8.7
|
105
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
106
|
+
requirements:
|
107
|
+
- - ">="
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '0'
|
110
|
+
requirements: []
|
111
|
+
rubygems_version: 3.0.3
|
112
|
+
signing_key:
|
113
|
+
specification_version: 4
|
114
|
+
summary: rspec-support-3.8.0
|
115
|
+
test_files: []
|