rspec-sorbet 1.2.0 → 1.7.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (76) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +56 -0
  3. data/.gitignore +1 -0
  4. data/.ruby-version +1 -1
  5. data/CHANGELOG.md +25 -0
  6. data/Gemfile +1 -1
  7. data/README.md +9 -5
  8. data/generate_require_files.rb +1 -0
  9. data/lib/rspec/all.rb +1 -0
  10. data/lib/rspec/sorbet.rb +3 -2
  11. data/lib/rspec/sorbet/all.rb +2 -1
  12. data/lib/rspec/sorbet/doubles.rb +112 -0
  13. data/lib/rspec/sorbet/version.rb +2 -1
  14. data/rspec-sorbet.gemspec +3 -4
  15. data/sorbet/config +2 -0
  16. data/sorbet/rbi/gems/activesupport.rbi +1722 -0
  17. data/sorbet/rbi/gems/ast.rbi +48 -0
  18. data/sorbet/rbi/gems/byebug.rbi +1041 -0
  19. data/sorbet/rbi/gems/coderay.rbi +285 -0
  20. data/sorbet/rbi/gems/concurrent-ruby.rbi +1586 -0
  21. data/sorbet/rbi/gems/docile.rbi +32 -0
  22. data/sorbet/rbi/gems/em-websocket.rbi +225 -0
  23. data/sorbet/rbi/gems/eventmachine.rbi +489 -0
  24. data/sorbet/rbi/gems/ffaker.rbi +60 -0
  25. data/sorbet/rbi/gems/guard.rbi +397 -0
  26. data/sorbet/rbi/gems/http_parser.rb.rbi +37 -0
  27. data/sorbet/rbi/gems/i18n.rbi +133 -0
  28. data/sorbet/rbi/gems/kwalify.rbi +340 -0
  29. data/sorbet/rbi/gems/listen.rbi +324 -0
  30. data/sorbet/rbi/gems/lumberjack.rbi +300 -0
  31. data/sorbet/rbi/gems/method_source.rbi +64 -0
  32. data/sorbet/rbi/gems/multi_json.rbi +62 -0
  33. data/sorbet/rbi/gems/nenv.rbi +60 -0
  34. data/sorbet/rbi/gems/notiffany.rbi +215 -0
  35. data/sorbet/rbi/gems/parallel.rbi +82 -0
  36. data/sorbet/rbi/gems/parser.rbi +1846 -0
  37. data/sorbet/rbi/gems/pry-byebug.rbi +155 -0
  38. data/sorbet/rbi/gems/pry.rbi +1949 -0
  39. data/sorbet/rbi/gems/rainbow.rbi +118 -0
  40. data/sorbet/rbi/gems/rake.rbi +648 -0
  41. data/sorbet/rbi/gems/rb-fsevent.rbi +31 -0
  42. data/sorbet/rbi/gems/rb-readline.rbi +767 -0
  43. data/sorbet/rbi/gems/reek.rbi +1027 -0
  44. data/sorbet/rbi/gems/regexp_parser.rbi +913 -0
  45. data/sorbet/rbi/gems/rexml.rbi +605 -0
  46. data/sorbet/rbi/gems/rspec-core.rbi +1913 -0
  47. data/sorbet/rbi/gems/rspec-expectations.rbi +1123 -0
  48. data/sorbet/rbi/gems/rspec-mocks.rbi +1099 -0
  49. data/sorbet/rbi/gems/rspec-support.rbi +280 -0
  50. data/sorbet/rbi/gems/rspec.rbi +15 -0
  51. data/sorbet/rbi/gems/rubocop-ast.rbi +1053 -0
  52. data/sorbet/rbi/gems/rubocop-rspec.rbi +937 -0
  53. data/sorbet/rbi/gems/rubocop.rbi +6841 -0
  54. data/sorbet/rbi/gems/ruby-progressbar.rbi +305 -0
  55. data/sorbet/rbi/gems/shellany.rbi +29 -0
  56. data/sorbet/rbi/gems/shoulda-matchers.rbi +1848 -0
  57. data/sorbet/rbi/gems/simplecov-html.rbi +35 -0
  58. data/sorbet/rbi/gems/simplecov.rbi +361 -0
  59. data/sorbet/rbi/gems/sqlite3.rbi +354 -0
  60. data/sorbet/rbi/gems/stackprof.rbi +52 -0
  61. data/sorbet/rbi/gems/thor.rbi +32 -0
  62. data/sorbet/rbi/gems/thread_safe.rbi +82 -0
  63. data/sorbet/rbi/gems/timecop.rbi +98 -0
  64. data/sorbet/rbi/gems/tzinfo.rbi +406 -0
  65. data/sorbet/rbi/gems/unicode-display_width.rbi +17 -0
  66. data/sorbet/rbi/hidden-definitions/errors.txt +7275 -0
  67. data/sorbet/rbi/hidden-definitions/hidden.rbi +14595 -0
  68. data/sorbet/rbi/sorbet-typed/lib/activesupport/>=6.0.0.rc1/activesupport.rbi +23 -0
  69. data/sorbet/rbi/sorbet-typed/lib/activesupport/all/activesupport.rbi +1431 -0
  70. data/sorbet/rbi/sorbet-typed/lib/minitest/all/minitest.rbi +108 -0
  71. data/sorbet/rbi/sorbet-typed/lib/rainbow/all/rainbow.rbi +276 -0
  72. data/sorbet/rbi/sorbet-typed/lib/rubocop-rspec/~>1.39/rubocop-rspec.rbi +398 -0
  73. data/sorbet/rbi/sorbet-typed/lib/rubocop/~>0.85/rubocop.rbi +2072 -0
  74. data/sorbet/rbi/todo.rbi +9 -0
  75. metadata +79 -19
  76. data/lib/rspec/sorbet/instance_doubles.rb +0 -90
@@ -0,0 +1,9 @@
1
+ # This file is autogenerated. Do not edit it by hand. Regenerate it with:
2
+ # srb rbi todo
3
+
4
+ # typed: strong
5
+ module ::Anonymous_Delegator_3; end
6
+ module T::CompatibilityPatches::RSpecCompatibility::MethodDoubleExtensions; end
7
+ module T::CompatibilityPatches::RSpecCompatibility::RecorderExtensions; end
8
+ module T::Private::Methods::MethodHooks; end
9
+ module T::Private::Methods::SingletonMethodHooks; end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rspec-sorbet
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Samuel Giles
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-08-29 00:00:00.000000000 Z
11
+ date: 2020-11-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sorbet
@@ -42,16 +42,16 @@ dependencies:
42
42
  name: bundler
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: '1.17'
47
+ version: '0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - "~>"
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
- version: '1.17'
54
+ version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: pry
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -70,37 +70,38 @@ dependencies:
70
70
  name: rake
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - "~>"
73
+ - - ">="
74
74
  - !ruby/object:Gem::Version
75
- version: '10.0'
75
+ version: '13.0'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - "~>"
80
+ - - ">="
81
81
  - !ruby/object:Gem::Version
82
- version: '10.0'
82
+ version: '13.0'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: rspec
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - "~>"
87
+ - - ">="
88
88
  - !ruby/object:Gem::Version
89
89
  version: '3.0'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - "~>"
94
+ - - ">="
95
95
  - !ruby/object:Gem::Version
96
96
  version: '3.0'
97
- description:
97
+ description:
98
98
  email:
99
99
  - samuel.giles@bellroy.com
100
100
  executables: []
101
101
  extensions: []
102
102
  extra_rdoc_files: []
103
103
  files:
104
+ - ".github/workflows/ci.yml"
104
105
  - ".gitignore"
105
106
  - ".reek.yml"
106
107
  - ".rspec"
@@ -117,14 +118,74 @@ files:
117
118
  - lib/rspec/all.rb
118
119
  - lib/rspec/sorbet.rb
119
120
  - lib/rspec/sorbet/all.rb
120
- - lib/rspec/sorbet/instance_doubles.rb
121
+ - lib/rspec/sorbet/doubles.rb
121
122
  - lib/rspec/sorbet/version.rb
122
123
  - rspec-sorbet.gemspec
124
+ - sorbet/config
125
+ - sorbet/rbi/gems/activesupport.rbi
126
+ - sorbet/rbi/gems/ast.rbi
127
+ - sorbet/rbi/gems/byebug.rbi
128
+ - sorbet/rbi/gems/coderay.rbi
129
+ - sorbet/rbi/gems/concurrent-ruby.rbi
130
+ - sorbet/rbi/gems/docile.rbi
131
+ - sorbet/rbi/gems/em-websocket.rbi
132
+ - sorbet/rbi/gems/eventmachine.rbi
133
+ - sorbet/rbi/gems/ffaker.rbi
134
+ - sorbet/rbi/gems/guard.rbi
135
+ - sorbet/rbi/gems/http_parser.rb.rbi
136
+ - sorbet/rbi/gems/i18n.rbi
137
+ - sorbet/rbi/gems/kwalify.rbi
138
+ - sorbet/rbi/gems/listen.rbi
139
+ - sorbet/rbi/gems/lumberjack.rbi
140
+ - sorbet/rbi/gems/method_source.rbi
141
+ - sorbet/rbi/gems/multi_json.rbi
142
+ - sorbet/rbi/gems/nenv.rbi
143
+ - sorbet/rbi/gems/notiffany.rbi
144
+ - sorbet/rbi/gems/parallel.rbi
145
+ - sorbet/rbi/gems/parser.rbi
146
+ - sorbet/rbi/gems/pry-byebug.rbi
147
+ - sorbet/rbi/gems/pry.rbi
148
+ - sorbet/rbi/gems/rainbow.rbi
149
+ - sorbet/rbi/gems/rake.rbi
150
+ - sorbet/rbi/gems/rb-fsevent.rbi
151
+ - sorbet/rbi/gems/rb-readline.rbi
152
+ - sorbet/rbi/gems/reek.rbi
153
+ - sorbet/rbi/gems/regexp_parser.rbi
154
+ - sorbet/rbi/gems/rexml.rbi
155
+ - sorbet/rbi/gems/rspec-core.rbi
156
+ - sorbet/rbi/gems/rspec-expectations.rbi
157
+ - sorbet/rbi/gems/rspec-mocks.rbi
158
+ - sorbet/rbi/gems/rspec-support.rbi
159
+ - sorbet/rbi/gems/rspec.rbi
160
+ - sorbet/rbi/gems/rubocop-ast.rbi
161
+ - sorbet/rbi/gems/rubocop-rspec.rbi
162
+ - sorbet/rbi/gems/rubocop.rbi
163
+ - sorbet/rbi/gems/ruby-progressbar.rbi
164
+ - sorbet/rbi/gems/shellany.rbi
165
+ - sorbet/rbi/gems/shoulda-matchers.rbi
166
+ - sorbet/rbi/gems/simplecov-html.rbi
167
+ - sorbet/rbi/gems/simplecov.rbi
168
+ - sorbet/rbi/gems/sqlite3.rbi
169
+ - sorbet/rbi/gems/stackprof.rbi
170
+ - sorbet/rbi/gems/thor.rbi
171
+ - sorbet/rbi/gems/thread_safe.rbi
172
+ - sorbet/rbi/gems/timecop.rbi
173
+ - sorbet/rbi/gems/tzinfo.rbi
174
+ - sorbet/rbi/gems/unicode-display_width.rbi
175
+ - sorbet/rbi/hidden-definitions/errors.txt
176
+ - sorbet/rbi/hidden-definitions/hidden.rbi
177
+ - sorbet/rbi/sorbet-typed/lib/activesupport/>=6.0.0.rc1/activesupport.rbi
178
+ - sorbet/rbi/sorbet-typed/lib/activesupport/all/activesupport.rbi
179
+ - sorbet/rbi/sorbet-typed/lib/minitest/all/minitest.rbi
180
+ - sorbet/rbi/sorbet-typed/lib/rainbow/all/rainbow.rbi
181
+ - sorbet/rbi/sorbet-typed/lib/rubocop-rspec/~>1.39/rubocop-rspec.rbi
182
+ - sorbet/rbi/sorbet-typed/lib/rubocop/~>0.85/rubocop.rbi
183
+ - sorbet/rbi/todo.rbi
123
184
  homepage: https://github.com/tricycle/rspec-sorbet
124
185
  licenses:
125
186
  - MIT
126
187
  metadata: {}
127
- post_install_message:
188
+ post_install_message:
128
189
  rdoc_options: []
129
190
  require_paths:
130
191
  - lib
@@ -139,9 +200,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
139
200
  - !ruby/object:Gem::Version
140
201
  version: '0'
141
202
  requirements: []
142
- rubyforge_project:
143
- rubygems_version: 2.7.6.2
144
- signing_key:
203
+ rubygems_version: 3.0.3
204
+ signing_key:
145
205
  specification_version: 4
146
206
  summary: A small gem consisting of helpers for using Sorbet & RSpec together.
147
207
  test_files: []
@@ -1,90 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'sorbet-runtime'
4
-
5
- module RSpec
6
- module Sorbet
7
- module InstanceDoubles
8
- def allow_instance_doubles!
9
- T::Configuration.inline_type_error_handler = proc do |error|
10
- inline_type_error_handler(error)
11
- end
12
-
13
- T::Configuration.call_validation_error_handler = proc do |signature, opts|
14
- call_validation_error_handler(signature, opts)
15
- end
16
- end
17
-
18
- private
19
-
20
- INLINE_INSTANCE_DOUBLE_REGEX =
21
- /T.let: Expected type (T.any\()?(?<expected_classes>[a-zA-Z:: ,]*)(\))?, got type (.*) with value #<InstanceDouble\((?<doubled_module>[a-zA-Z:: ,]*)\)/.freeze
22
-
23
- def inline_type_error_handler(error)
24
- case error
25
- when TypeError
26
- message = error.message
27
- return if instance_double_message_with_ellipsis?(message) || typed_array_message?(message)
28
-
29
- _, expected_types_string, doubled_module_string = (message.match(INLINE_INSTANCE_DOUBLE_REGEX) || [])[0..2]
30
- raise error unless expected_types_string && doubled_module_string
31
-
32
- expected_types = expected_types_string.split(',').map do |expected_type_string|
33
- Object.const_get(expected_type_string.strip)
34
- end
35
- doubled_module = Object.const_get(doubled_module_string)
36
-
37
- valid = expected_types.any? do |expected_type|
38
- doubled_module.ancestors.include?(expected_type)
39
- end
40
-
41
- raise error unless valid
42
- else
43
- raise error
44
- end
45
- end
46
-
47
- INSTANCE_VERIFYING_DOUBLE_OR_INSTANCE_DOUBLE =
48
- /(RSpec::Mocks::InstanceVerifyingDouble|InstanceDouble)/.freeze
49
-
50
- def instance_double_message_with_ellipsis?(message)
51
- message.include?('...') && message.match?(INSTANCE_VERIFYING_DOUBLE_OR_INSTANCE_DOUBLE)
52
- end
53
-
54
- TYPED_ARRAY_MESSAGE = /got T::Array/.freeze
55
-
56
- def typed_array_message?(message)
57
- message.match?(TYPED_ARRAY_MESSAGE)
58
- end
59
-
60
- def call_validation_error_handler(_signature, opts)
61
- should_raise = true
62
-
63
- if opts[:pretty_message].match?(INSTANCE_VERIFYING_DOUBLE_OR_INSTANCE_DOUBLE)
64
- typing = opts[:type]
65
- value = opts[:value].is_a?(Array) ? opts[:value].first : opts[:value]
66
- target = value.instance_variable_get(:@doubled_module).target
67
-
68
- case typing
69
- when T::Types::TypedArray, T::Types::TypedEnumerable
70
- typing = typing.type
71
- end
72
-
73
- case typing
74
- when T::Types::Simple
75
- should_raise = !target.ancestors.include?(typing.raw_type)
76
- when T::Types::Union
77
- valid = typing.types.map(&:raw_type).any? do |type|
78
- target.ancestors.include?(type)
79
- end
80
- should_raise = !valid
81
- else
82
- should_raise = !target.ancestors.include?(typing)
83
- end
84
- end
85
-
86
- raise TypeError, opts[:pretty_message] if should_raise
87
- end
88
- end
89
- end
90
- end