yard-sorbet 0.0.0 → 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (57) hide show
  1. checksums.yaml +4 -4
  2. data/.editorconfig +9 -0
  3. data/.gitignore +40 -0
  4. data/.rspec +1 -0
  5. data/.rubocop.yml +47 -0
  6. data/.travis.yml +7 -0
  7. data/CHANGELOG.md +10 -0
  8. data/Gemfile +14 -0
  9. data/LICENSE +201 -0
  10. data/README.md +17 -0
  11. data/Rakefile +11 -0
  12. data/lib/yard-sorbet.rb +12 -0
  13. data/lib/yard-sorbet/directives.rb +24 -0
  14. data/lib/yard-sorbet/sig_handler.rb +131 -0
  15. data/lib/yard-sorbet/sig_to_yard.rb +91 -0
  16. data/lib/yard-sorbet/struct_handler.rb +94 -0
  17. data/lib/yard-sorbet/version.rb +6 -0
  18. data/sorbet/config +2 -0
  19. data/sorbet/rbi/gems/ast.rbi +47 -0
  20. data/sorbet/rbi/gems/byebug.rbi +1039 -0
  21. data/sorbet/rbi/gems/codecov.rbi +19 -0
  22. data/sorbet/rbi/gems/coderay.rbi +91 -0
  23. data/sorbet/rbi/gems/docile.rbi +31 -0
  24. data/sorbet/rbi/gems/jaro_winkler.rbi +14 -0
  25. data/sorbet/rbi/gems/method_source.rbi +63 -0
  26. data/sorbet/rbi/gems/parallel.rbi +81 -0
  27. data/sorbet/rbi/gems/parser.rbi +920 -0
  28. data/sorbet/rbi/gems/pry-byebug.rbi +149 -0
  29. data/sorbet/rbi/gems/pry.rbi +1964 -0
  30. data/sorbet/rbi/gems/rainbow.rbi +117 -0
  31. data/sorbet/rbi/gems/rake.rbi +635 -0
  32. data/sorbet/rbi/gems/rspec-core.rbi +1686 -0
  33. data/sorbet/rbi/gems/rspec-expectations.rbi +387 -0
  34. data/sorbet/rbi/gems/rspec-mocks.rbi +819 -0
  35. data/sorbet/rbi/gems/rspec-support.rbi +270 -0
  36. data/sorbet/rbi/gems/rspec.rbi +14 -0
  37. data/sorbet/rbi/gems/rubocop-rspec.rbi +889 -0
  38. data/sorbet/rbi/gems/rubocop.rbi +7139 -0
  39. data/sorbet/rbi/gems/ruby-progressbar.rbi +304 -0
  40. data/sorbet/rbi/gems/simplecov-html.rbi +30 -0
  41. data/sorbet/rbi/gems/simplecov.rbi +225 -0
  42. data/sorbet/rbi/gems/site_ruby.rbi +114 -0
  43. data/sorbet/rbi/gems/unicode-display_width.rbi +16 -0
  44. data/sorbet/rbi/gems/yard.rbi +1181 -0
  45. data/sorbet/rbi/hidden-definitions/errors.txt +3045 -0
  46. data/sorbet/rbi/hidden-definitions/hidden.rbi +4469 -0
  47. data/sorbet/rbi/sorbet-typed/lib/bundler/all/bundler.rbi +8684 -0
  48. data/sorbet/rbi/sorbet-typed/lib/ruby/all/gem.rbi +4222 -0
  49. data/sorbet/rbi/sorbet-typed/lib/ruby/all/open3.rbi +111 -0
  50. data/sorbet/rbi/sorbet-typed/lib/ruby/all/resolv.rbi +543 -0
  51. data/spec/data/sig_handler.rb.txt +196 -0
  52. data/spec/data/struct_handler.rb.txt +25 -0
  53. data/spec/spec_helper.rb +111 -0
  54. data/spec/yard_sorbet/sig_handler_spec.rb +233 -0
  55. data/spec/yard_sorbet/struct_handler_spec.rb +48 -0
  56. data/yard-sorbet.gemspec +27 -0
  57. metadata +159 -6
@@ -0,0 +1,48 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'yard'
4
+
5
+ RSpec.describe YARDSorbet::StructHandler do
6
+ before do
7
+ YARD::Registry.clear
8
+ path = File.join(
9
+ File.expand_path('../data', __dir__),
10
+ 'struct_handler.rb.txt'
11
+ )
12
+ YARD::Parser::SourceParser.parse(path)
13
+ end
14
+
15
+ describe 'constructor' do
16
+ it 'has the appropriate parameters' do
17
+ node = YARD::Registry.at('PersonStruct#initialize')
18
+ expect(node.parameters).to eq([['name:', nil], ['age:', nil], ['optional:', 'nil'], ['mystery:', nil]])
19
+ end
20
+
21
+ it 'uses the docstring from an explicit initializer' do
22
+ node = YARD::Registry.at('SpecializedPersonStruct#initialize')
23
+ expect(node.docstring).to eq('This is a special intializer')
24
+ end
25
+ end
26
+
27
+ describe 'attributes' do
28
+ it 'creates accessor method docs' do
29
+ node = YARD::Registry.at('PersonStruct#optional')
30
+ expect(node.tag(:return).types).to eq(%w[String nil])
31
+ end
32
+
33
+ it 'attaches the docstring to the accessor' do
34
+ node = YARD::Registry.at('PersonStruct#age')
35
+ expect(node.docstring).to eq('An age')
36
+ end
37
+
38
+ it 'creates a docstring if it does not exist' do
39
+ node = YARD::Registry.at('PersonStruct#mystery')
40
+ expect(node.docstring).to eq('Returns the value of attribute +mystery+.')
41
+ end
42
+
43
+ it 'handles default values appropriately' do
44
+ node = YARD::Registry.at('DefaultPersonStruct#initialize')
45
+ expect(node.parameters).to eq([['defaulted:', "'hello'"]])
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'lib/yard-sorbet/version'
4
+
5
+ Gem::Specification.new do |spec|
6
+ spec.name = 'yard-sorbet'
7
+ spec.author = 'Douglas Eichelberger'
8
+ spec.files = `git ls-files`.strip.split(/\s+/)
9
+ spec.summary = 'Create YARD docs from Sorbet type signatures'
10
+ spec.version = YARDSorbet::VERSION
11
+ spec.description = <<~DESC
12
+ A YARD plugin that incorporates Sorbet type information
13
+ DESC
14
+ spec.email = 'dduugg@gmail.com'
15
+ spec.homepage = 'https://github.com/dduugg/yard-sorbet'
16
+ spec.license = 'Apache-2.0'
17
+ spec.add_development_dependency 'codecov', '~> 0.1.16'
18
+ spec.add_development_dependency 'rake', '~> 13.0'
19
+ spec.add_development_dependency 'rspec', '~> 3.9'
20
+ spec.add_development_dependency 'rubocop', '~> 0.78.0'
21
+ spec.add_development_dependency 'rubocop-rspec', '~> 1.37'
22
+ spec.add_development_dependency 'simplecov', '~> 0.17.1'
23
+ spec.add_development_dependency 'sorbet', '~> 0.5.5200'
24
+ spec.add_runtime_dependency 'sorbet-runtime', '~> 0.5'
25
+ spec.add_runtime_dependency 'yard', '~> 0.9'
26
+ spec.required_ruby_version = '>= 2.4.0'
27
+ end
metadata CHANGED
@@ -1,29 +1,127 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: yard-sorbet
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.0
4
+ version: 0.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Douglas Eichelberger
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-01-05 00:00:00.000000000 Z
11
+ date: 2020-01-24 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: codecov
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 0.1.16
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 0.1.16
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '13.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '13.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '3.9'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '3.9'
13
55
  - !ruby/object:Gem::Dependency
14
56
  name: rubocop
15
57
  requirement: !ruby/object:Gem::Requirement
16
58
  requirements:
17
- - - '='
59
+ - - "~>"
18
60
  - !ruby/object:Gem::Version
19
61
  version: 0.78.0
20
62
  type: :development
21
63
  prerelease: false
22
64
  version_requirements: !ruby/object:Gem::Requirement
23
65
  requirements:
24
- - - '='
66
+ - - "~>"
25
67
  - !ruby/object:Gem::Version
26
68
  version: 0.78.0
69
+ - !ruby/object:Gem::Dependency
70
+ name: rubocop-rspec
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '1.37'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '1.37'
83
+ - !ruby/object:Gem::Dependency
84
+ name: simplecov
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: 0.17.1
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: 0.17.1
97
+ - !ruby/object:Gem::Dependency
98
+ name: sorbet
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: 0.5.5200
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: 0.5.5200
111
+ - !ruby/object:Gem::Dependency
112
+ name: sorbet-runtime
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: '0.5'
118
+ type: :runtime
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: '0.5'
27
125
  - !ruby/object:Gem::Dependency
28
126
  name: yard
29
127
  requirement: !ruby/object:Gem::Requirement
@@ -45,7 +143,62 @@ email: dduugg@gmail.com
45
143
  executables: []
46
144
  extensions: []
47
145
  extra_rdoc_files: []
48
- files: []
146
+ files:
147
+ - ".editorconfig"
148
+ - ".gitignore"
149
+ - ".rspec"
150
+ - ".rubocop.yml"
151
+ - ".travis.yml"
152
+ - CHANGELOG.md
153
+ - Gemfile
154
+ - LICENSE
155
+ - README.md
156
+ - Rakefile
157
+ - lib/yard-sorbet.rb
158
+ - lib/yard-sorbet/directives.rb
159
+ - lib/yard-sorbet/sig_handler.rb
160
+ - lib/yard-sorbet/sig_to_yard.rb
161
+ - lib/yard-sorbet/struct_handler.rb
162
+ - lib/yard-sorbet/version.rb
163
+ - sorbet/config
164
+ - sorbet/rbi/gems/ast.rbi
165
+ - sorbet/rbi/gems/byebug.rbi
166
+ - sorbet/rbi/gems/codecov.rbi
167
+ - sorbet/rbi/gems/coderay.rbi
168
+ - sorbet/rbi/gems/docile.rbi
169
+ - sorbet/rbi/gems/jaro_winkler.rbi
170
+ - sorbet/rbi/gems/method_source.rbi
171
+ - sorbet/rbi/gems/parallel.rbi
172
+ - sorbet/rbi/gems/parser.rbi
173
+ - sorbet/rbi/gems/pry-byebug.rbi
174
+ - sorbet/rbi/gems/pry.rbi
175
+ - sorbet/rbi/gems/rainbow.rbi
176
+ - sorbet/rbi/gems/rake.rbi
177
+ - sorbet/rbi/gems/rspec-core.rbi
178
+ - sorbet/rbi/gems/rspec-expectations.rbi
179
+ - sorbet/rbi/gems/rspec-mocks.rbi
180
+ - sorbet/rbi/gems/rspec-support.rbi
181
+ - sorbet/rbi/gems/rspec.rbi
182
+ - sorbet/rbi/gems/rubocop-rspec.rbi
183
+ - sorbet/rbi/gems/rubocop.rbi
184
+ - sorbet/rbi/gems/ruby-progressbar.rbi
185
+ - sorbet/rbi/gems/simplecov-html.rbi
186
+ - sorbet/rbi/gems/simplecov.rbi
187
+ - sorbet/rbi/gems/site_ruby.rbi
188
+ - sorbet/rbi/gems/unicode-display_width.rbi
189
+ - sorbet/rbi/gems/yard.rbi
190
+ - sorbet/rbi/hidden-definitions/errors.txt
191
+ - sorbet/rbi/hidden-definitions/hidden.rbi
192
+ - sorbet/rbi/sorbet-typed/lib/bundler/all/bundler.rbi
193
+ - sorbet/rbi/sorbet-typed/lib/ruby/all/gem.rbi
194
+ - sorbet/rbi/sorbet-typed/lib/ruby/all/open3.rbi
195
+ - sorbet/rbi/sorbet-typed/lib/ruby/all/resolv.rbi
196
+ - spec/data/sig_handler.rb.txt
197
+ - spec/data/struct_handler.rb.txt
198
+ - spec/spec_helper.rb
199
+ - spec/yard_sorbet/sig_handler_spec.rb
200
+ - spec/yard_sorbet/struct_handler_spec.rb
201
+ - yard-sorbet.gemspec
49
202
  homepage: https://github.com/dduugg/yard-sorbet
50
203
  licenses:
51
204
  - Apache-2.0
@@ -65,7 +218,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
65
218
  - !ruby/object:Gem::Version
66
219
  version: '0'
67
220
  requirements: []
68
- rubygems_version: 3.1.2
221
+ rubygems_version: 3.0.1
69
222
  signing_key:
70
223
  specification_version: 4
71
224
  summary: Create YARD docs from Sorbet type signatures