yard-sorbet 0.1.0 → 0.2.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 47fca84744393f88777d1cb1355df3ffb693e4b5edb982a5497903da1c86daf7
4
- data.tar.gz: 6cd24b1d8796de8def62dcbc02383b8de27aa60a32a00b82c9d974332e1f8e36
3
+ metadata.gz: e83416e1d85da291aa4d0311df2e239f14fd072f38f3f2be4ee12a008f1a89dc
4
+ data.tar.gz: 3fcffa38addbaa3b47b200711462847b81bd9c52095aa1dfa46d2c077f497ef4
5
5
  SHA512:
6
- metadata.gz: d666a9079c7190e905c1c190b014037d3bf4b0bd4fa75aa74b9c2221878f82cc88b6523b5ac14af5de981e1b157452341a196145bcc28f8ebc567fae3f10eee8
7
- data.tar.gz: 7635542b9b48b775050ec0e417a23fc0700326bd733ba46293592c156a9c49cb7dc2a1800e3909c1c5ae10aacb15e03142dda44e589a8a5e9fc706388da1827c
6
+ metadata.gz: 13f13c26aff10422e1fda98016fdfd1038d14a36d084653407b7797908206cde655f1504087b7ec164d6b72de2b9ded4d5f807c9c9af36d4a77e6c296828cd3d
7
+ data.tar.gz: 9bb8d82770501e206ac7f1bf6f6d836c0559383b9babd0e6416180e5508bed5bd7f55e317a5c86f30231ca7cdc08b30211b722645a558d4130c4f046a39471ec
@@ -4,6 +4,8 @@
4
4
  require 'sorbet-runtime'
5
5
  require 'yard'
6
6
 
7
+ T::Configuration.default_checked_level = :tests
8
+
7
9
  # top-level namespace
8
10
  module YARDSorbet; end
9
11
 
@@ -1,8 +1,11 @@
1
- # typed: true
1
+ # typed: strict
2
2
  # frozen_string_literal: true
3
3
 
4
4
  # Extract & re-add directives to a docstring
5
5
  module YARDSorbet::Directives
6
+ extend T::Sig
7
+
8
+ sig { params(docstring: T.nilable(String)).returns([YARD::Docstring, T::Array[String]]) }
6
9
  def self.extract_directives(docstring)
7
10
  parser = YARD::DocstringParser.new.parse(docstring)
8
11
  # Directives are already parsed at this point, and there doesn't
@@ -16,6 +19,7 @@ module YARDSorbet::Directives
16
19
  [parser.to_docstring, directives]
17
20
  end
18
21
 
22
+ sig { params(docstring: String, directives: T::Array[String]).void }
19
23
  def self.add_directives(docstring, directives)
20
24
  directives.each do |directive|
21
25
  docstring.concat("\n#{directive}")
@@ -1,4 +1,4 @@
1
- # typed: true
1
+ # typed: strict
2
2
  # frozen_string_literal: true
3
3
 
4
4
  # A YARD Handler for Sorbet type declarations
@@ -6,7 +6,13 @@ class YARDSorbet::SigHandler < YARD::Handlers::Ruby::Base
6
6
  extend T::Sig
7
7
  handles :class, :module, :singleton_class?
8
8
 
9
- sig { returns(String).checked(:never) }
9
+ PARAM_EXCLUDES = T.let(%i[array call hash].freeze, T::Array[Symbol])
10
+ PROCESSABLE_NODES = T.let(%i[def defs command].freeze, T::Array[Symbol])
11
+ SIG_EXCLUDES = T.let(%i[array hash].freeze, T::Array[Symbol])
12
+ SIG_NODE_TYPES = T.let(%i[call fcall vcall].freeze, T::Array[Symbol])
13
+ private_constant :PARAM_EXCLUDES, :PROCESSABLE_NODES, :SIG_EXCLUDES, :SIG_NODE_TYPES
14
+
15
+ sig { void }
10
16
  def process
11
17
  # Find the list of declarations inside the class
12
18
  class_def = statement.children.find { |c| c.type == :list }
@@ -15,6 +21,7 @@ class YARDSorbet::SigHandler < YARD::Handlers::Ruby::Base
15
21
  process_class_contents(class_contents)
16
22
  end
17
23
 
24
+ sig { params(class_contents: T::Array[YARD::Parser::Ruby::MethodCallNode]).void }
18
25
  private def process_class_contents(class_contents)
19
26
  class_contents.each_with_index do |child, i|
20
27
  if child.type == :sclass && child.children.size == 2 && child.children[1].type == :list
@@ -26,14 +33,21 @@ class YARDSorbet::SigHandler < YARD::Handlers::Ruby::Base
26
33
  next_statement = class_contents[i + 1]
27
34
  next unless processable_method?(next_statement)
28
35
 
29
- process_method_definition(next_statement, child)
36
+ process_method_definition(T.must(next_statement), child)
30
37
  end
31
38
  end
32
39
 
40
+ sig { params(next_statement: T.nilable(YARD::Parser::Ruby::AstNode)).returns(T::Boolean) }
33
41
  private def processable_method?(next_statement)
34
- %i[def defs command].include?(next_statement&.type) && !next_statement.docstring
42
+ PROCESSABLE_NODES.include?(next_statement&.type)
35
43
  end
36
44
 
45
+ sig do
46
+ params(
47
+ method_node: YARD::Parser::Ruby::AstNode,
48
+ sig_node: YARD::Parser::Ruby::MethodCallNode
49
+ ).void
50
+ end
37
51
  private def process_method_definition(method_node, sig_node)
38
52
  # Swap the method definition docstring and the sig docstring.
39
53
  # Parse relevant parts of the `sig` and include them as well.
@@ -51,6 +65,7 @@ class YARDSorbet::SigHandler < YARD::Handlers::Ruby::Base
51
65
  sig_node.docstring = nil
52
66
  end
53
67
 
68
+ sig { params(docstring: YARD::Docstring, name: String, types: T::Array[String]).void }
54
69
  private def enhance_param(docstring, name, types)
55
70
  tag = docstring.tags.find { |t| t.tag_name == 'param' && t.name == name }
56
71
  if tag
@@ -62,6 +77,7 @@ class YARDSorbet::SigHandler < YARD::Handlers::Ruby::Base
62
77
  docstring.add_tag(tag)
63
78
  end
64
79
 
80
+ sig { params(docstring: YARD::Docstring, type: Symbol, parsed_sig: T::Hash[Symbol, Object]).void }
65
81
  private def enhance_tag(docstring, type, parsed_sig)
66
82
  return if !parsed_sig[type]
67
83
 
@@ -77,19 +93,31 @@ class YARDSorbet::SigHandler < YARD::Handlers::Ruby::Base
77
93
  docstring.add_tag(tag)
78
94
  end
79
95
 
96
+ sig do
97
+ params(sig_node: YARD::Parser::Ruby::MethodCallNode)
98
+ .returns(
99
+ {
100
+ abstract: T::Boolean,
101
+ params: T::Hash[String, T::Array[String]],
102
+ return: T.nilable(T::Array[String])
103
+ }
104
+ )
105
+ end
80
106
  private def parse_sig(sig_node)
81
- parsed = {}
82
- parsed[:abstract] = false
83
- parsed[:params] = {}
107
+ parsed = {
108
+ abstract: false,
109
+ params: {},
110
+ return: nil
111
+ }
84
112
  found_params = T.let(false, T::Boolean)
85
113
  found_return = T.let(false, T::Boolean)
86
- bfs_traverse(sig_node, exclude: %i[array hash]) do |n|
114
+ bfs_traverse(sig_node, exclude: SIG_EXCLUDES) do |n|
87
115
  if n.source == 'abstract'
88
116
  parsed[:abstract] = true
89
117
  elsif n.source == 'params' && !found_params
90
118
  found_params = true
91
119
  sibling = T.must(sibling_node(n))
92
- bfs_traverse(sibling, exclude: %i[array call hash]) do |p|
120
+ bfs_traverse(sibling, exclude: PARAM_EXCLUDES) do |p|
93
121
  if p.type == :assoc
94
122
  param_name = p.children.first.source[0...-1]
95
123
  types = YARDSorbet::SigToYARD.convert(p.children.last)
@@ -107,16 +135,18 @@ class YARDSorbet::SigHandler < YARD::Handlers::Ruby::Base
107
135
  end
108
136
 
109
137
  # Returns true if the given node is part of a type signature.
138
+ sig { params(node: T.nilable(YARD::Parser::Ruby::AstNode)).returns(T::Boolean) }
110
139
  private def type_signature?(node)
111
140
  loop do
112
141
  return false if node.nil?
113
- return false unless %i[call vcall fcall].include?(node.type)
142
+ return false unless SIG_NODE_TYPES.include?(node.type)
114
143
  return true if T.unsafe(node).method_name(true) == :sig
115
144
 
116
- node = node.children.first
145
+ node = T.let(node.children.first, T.nilable(YARD::Parser::Ruby::AstNode))
117
146
  end
118
147
  end
119
148
 
149
+ sig { params(node: YARD::Parser::Ruby::AstNode).returns(T.nilable(YARD::Parser::Ruby::AstNode)) }
120
150
  private def sibling_node(node)
121
151
  found_sibling = T.let(false, T::Boolean)
122
152
  node.parent.children.each do |n|
@@ -132,7 +162,14 @@ class YARDSorbet::SigHandler < YARD::Handlers::Ruby::Base
132
162
  end
133
163
 
134
164
  # @yield [YARD::Parser::Ruby::AstNode]
135
- private def bfs_traverse(node, exclude: [])
165
+ sig do
166
+ params(
167
+ node: YARD::Parser::Ruby::AstNode,
168
+ exclude: T::Array[Symbol],
169
+ _blk: T.proc.params(n: YARD::Parser::Ruby::AstNode).void
170
+ ).void
171
+ end
172
+ private def bfs_traverse(node, exclude: [], &_blk)
136
173
  queue = [node]
137
174
  while !queue.empty?
138
175
  n = T.must(queue.shift)
@@ -1,17 +1,21 @@
1
- # typed: true
1
+ # typed: strict
2
2
  # frozen_string_literal: true
3
3
 
4
4
  # Translate sig type syntax to YARD type syntax.
5
5
  module YARDSorbet::SigToYARD
6
- IS_LEGACY_RUBY_VERSION = RUBY_VERSION.match?(/\A2\.[45]\./)
6
+ extend T::Sig
7
+
8
+ IS_LEGACY_RUBY_VERSION = T.let(RUBY_VERSION.start_with?('2.5.'), T::Boolean)
7
9
 
8
10
  # @see https://yardoc.org/types.html
11
+ sig { params(node: YARD::Parser::Ruby::AstNode).returns(T::Array[String]) }
9
12
  def self.convert(node)
10
13
  types = convert_type(node)
11
14
  # scrub newlines, as they break the YARD parser
12
15
  types.map { |type| type.gsub(/\n\s*/, ' ') }
13
16
  end
14
17
 
18
+ sig { params(node: YARD::Parser::Ruby::AstNode).returns(T::Array[String]) }
15
19
  def self.convert_type(node)
16
20
  children = node.children
17
21
  case node.type
@@ -93,6 +97,7 @@ module YARDSorbet::SigToYARD
93
97
  end
94
98
  end
95
99
 
100
+ sig { params(node: YARD::Parser::Ruby::AstNode).returns(String) }
96
101
  def self.build_generic_type(node)
97
102
  return node.source if node.children.empty? || node.type != :aref
98
103
 
@@ -1,12 +1,15 @@
1
- # typed: false
1
+ # typed: strict
2
2
  # frozen_string_literal: true
3
3
 
4
4
  # Handle all `const` calls, creating accessor methods, and compiles them for later usage at the class level
5
5
  # in creating a constructor
6
6
  class YARDSorbet::StructHandler < YARD::Handlers::Ruby::Base
7
+ extend T::Sig
8
+
7
9
  handles method_call(:const)
8
10
  namespace_only
9
11
 
12
+ sig { void }
10
13
  def process
11
14
  # Store the property for use in the constructor definition
12
15
  name = statement.parameters[0].jump(:ident).source
@@ -44,14 +47,19 @@ end
44
47
  # Class-level handler that folds all `const` declarations into the constructor documentation
45
48
  # this needs to be injected as a module otherwise the default Class handler will overwrite documentation
46
49
  module YARDSorbet::StructClassHandler
50
+ extend T::Sig
51
+
52
+ sig { void }
47
53
  def process
48
54
  ret = super
49
55
 
50
- return ret if extra_state.prop_docs.nil?
56
+ return ret if T.unsafe(self).extra_state.prop_docs.nil?
51
57
 
52
58
  # lookup the full YARD path for the current class
53
- class_ns = YARD::CodeObjects::ClassObject.new(namespace, statement[0].source.gsub(/\s/, ''))
54
- props = extra_state.prop_docs[class_ns]
59
+ class_ns = YARD::CodeObjects::ClassObject.new(
60
+ T.unsafe(self).namespace, T.unsafe(self).statement[0].source.gsub(/\s/, '')
61
+ )
62
+ props = T.unsafe(self).extra_state.prop_docs[class_ns]
55
63
 
56
64
  return ret if props.empty?
57
65
 
@@ -80,7 +88,7 @@ module YARDSorbet::StructClassHandler
80
88
  object.source ||= props.map { |p| p[:source] }.join("\n")
81
89
  object.explicit ||= false # not strictly necessary
82
90
 
83
- register(object)
91
+ T.unsafe(self).register(object)
84
92
 
85
93
  object.docstring = docstring.to_raw
86
94
 
@@ -2,5 +2,5 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module YARDSorbet
5
- VERSION = '0.1.0'
5
+ VERSION = '0.2.0'
6
6
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: yard-sorbet
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
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-12-01 00:00:00.000000000 Z
11
+ date: 2021-01-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: codecov
@@ -58,14 +58,28 @@ dependencies:
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: 1.5.0
61
+ version: 1.8.0
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: 1.5.0
68
+ version: 1.8.0
69
+ - !ruby/object:Gem::Dependency
70
+ name: rubocop-performance
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: 1.9.2
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: 1.9.2
69
83
  - !ruby/object:Gem::Dependency
70
84
  name: rubocop-rake
71
85
  requirement: !ruby/object:Gem::Requirement
@@ -86,14 +100,14 @@ dependencies:
86
100
  requirements:
87
101
  - - "~>"
88
102
  - !ruby/object:Gem::Version
89
- version: 2.0.0
103
+ version: 2.1.0
90
104
  type: :development
91
105
  prerelease: false
92
106
  version_requirements: !ruby/object:Gem::Requirement
93
107
  requirements:
94
108
  - - "~>"
95
109
  - !ruby/object:Gem::Version
96
- version: 2.0.0
110
+ version: 2.1.0
97
111
  - !ruby/object:Gem::Dependency
98
112
  name: rubocop-sorbet
99
113
  requirement: !ruby/object:Gem::Requirement
@@ -114,56 +128,56 @@ dependencies:
114
128
  requirements:
115
129
  - - "~>"
116
130
  - !ruby/object:Gem::Version
117
- version: 0.20.0
131
+ version: '0.21'
118
132
  type: :development
119
133
  prerelease: false
120
134
  version_requirements: !ruby/object:Gem::Requirement
121
135
  requirements:
122
136
  - - "~>"
123
137
  - !ruby/object:Gem::Version
124
- version: 0.20.0
138
+ version: '0.21'
125
139
  - !ruby/object:Gem::Dependency
126
140
  name: sorbet
127
141
  requirement: !ruby/object:Gem::Requirement
128
142
  requirements:
129
143
  - - "~>"
130
144
  - !ruby/object:Gem::Version
131
- version: 0.5.6083
145
+ version: 0.5.6193
132
146
  type: :development
133
147
  prerelease: false
134
148
  version_requirements: !ruby/object:Gem::Requirement
135
149
  requirements:
136
150
  - - "~>"
137
151
  - !ruby/object:Gem::Version
138
- version: 0.5.6083
152
+ version: 0.5.6193
139
153
  - !ruby/object:Gem::Dependency
140
154
  name: sorbet-runtime
141
155
  requirement: !ruby/object:Gem::Requirement
142
156
  requirements:
143
157
  - - ">="
144
158
  - !ruby/object:Gem::Version
145
- version: '0.5'
159
+ version: 0.5.5845
146
160
  type: :runtime
147
161
  prerelease: false
148
162
  version_requirements: !ruby/object:Gem::Requirement
149
163
  requirements:
150
164
  - - ">="
151
165
  - !ruby/object:Gem::Version
152
- version: '0.5'
166
+ version: 0.5.5845
153
167
  - !ruby/object:Gem::Dependency
154
168
  name: yard
155
169
  requirement: !ruby/object:Gem::Requirement
156
170
  requirements:
157
171
  - - ">="
158
172
  - !ruby/object:Gem::Version
159
- version: '0.9'
173
+ version: 0.9.16
160
174
  type: :runtime
161
175
  prerelease: false
162
176
  version_requirements: !ruby/object:Gem::Requirement
163
177
  requirements:
164
178
  - - ">="
165
179
  - !ruby/object:Gem::Version
166
- version: '0.9'
180
+ version: 0.9.16
167
181
  description: 'A YARD plugin that incorporates Sorbet type information
168
182
 
169
183
  '
@@ -172,24 +186,13 @@ executables: []
172
186
  extensions: []
173
187
  extra_rdoc_files: []
174
188
  files:
175
- - ".editorconfig"
176
- - ".gitignore"
177
- - ".rspec"
178
- - ".rubocop.yml"
179
- - ".travis.yml"
180
- - ".yardopts"
181
- - CHANGELOG.md
182
- - Gemfile
183
189
  - LICENSE
184
- - README.md
185
- - Rakefile
186
190
  - lib/yard-sorbet.rb
187
191
  - lib/yard-sorbet/directives.rb
188
192
  - lib/yard-sorbet/sig_handler.rb
189
193
  - lib/yard-sorbet/sig_to_yard.rb
190
194
  - lib/yard-sorbet/struct_handler.rb
191
195
  - lib/yard-sorbet/version.rb
192
- - yard-sorbet.gemspec
193
196
  homepage: https://github.com/dduugg/yard-sorbet
194
197
  licenses:
195
198
  - Apache-2.0
@@ -1,9 +0,0 @@
1
- root = true
2
-
3
- [*]
4
- indent_style = space
5
- indent_size = 2
6
- end_of_line = lf
7
- charset = utf-8
8
- trim_trailing_whitespace = true
9
- insert_final_newline = true
data/.gitignore DELETED
@@ -1,40 +0,0 @@
1
- *.gem
2
- *.rbc
3
- /.config
4
- /coverage/
5
- /InstalledFiles
6
- /pkg/
7
- /spec/reports/
8
- /spec/examples.txt
9
- /test/tmp/
10
- /test/version_tmp/
11
- /tmp/
12
-
13
- # Used by dotenv library to load environment variables.
14
- # .env
15
-
16
- # Ignore Byebug command history file.
17
- .byebug_history
18
-
19
- ## Documentation cache and generated files:
20
- /.yardoc/
21
- /_yardoc/
22
- /doc/
23
- /rdoc/
24
-
25
- ## Environment normalization:
26
- /.bundle/
27
- /vendor/bundle
28
- /lib/bundler/man/
29
-
30
- # for a library or gem, you might want to ignore these files since the code is
31
- # intended to run in multiple environments; otherwise, check them in:
32
- Gemfile.lock
33
- .ruby-version
34
- .ruby-gemset
35
-
36
- # unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
37
- .rvmrc
38
-
39
- # Used by RuboCop. Remote config files pulled in from inherit_from directive.
40
- # .rubocop-https?--*
data/.rspec DELETED
@@ -1,3 +0,0 @@
1
- --format documentation
2
- --color
3
- --require spec_helper
@@ -1,62 +0,0 @@
1
- ---
2
- require:
3
- - rubocop-rake
4
- - rubocop-rspec
5
- - rubocop-sorbet
6
-
7
- AllCops:
8
- NewCops: enable
9
- TargetRubyVersion: 2.5
10
-
11
- Layout/ClassStructure:
12
- Enabled: true
13
- # doesn't recognize sorbet magic comments
14
- Layout/EmptyLineAfterMagicComment:
15
- Enabled: false
16
- Layout/LineLength:
17
- Enabled: false
18
- Metrics/AbcSize:
19
- Enabled: false
20
- Metrics/BlockLength:
21
- Enabled: false
22
- Metrics/BlockNesting:
23
- Enabled: false
24
- Metrics/ClassLength:
25
- Enabled: false
26
- Metrics/CyclomaticComplexity:
27
- Enabled: false
28
- Metrics/MethodLength:
29
- Enabled: false
30
- Metrics/PerceivedComplexity:
31
- Enabled: false
32
- Naming/FileName:
33
- Exclude:
34
- - lib/yard-sorbet.rb
35
- RSpec/EmptyExampleGroup:
36
- Enabled: false
37
- RSpec/ExampleLength:
38
- Enabled: false
39
- RSpec/MultipleExpectations:
40
- Enabled: false
41
- Sorbet/EnforceSignatures:
42
- Enabled: false
43
- Sorbet/StrictSigil:
44
- Enabled: false
45
- Sorbet/StrongSigil:
46
- Enabled: false
47
- Sorbet/TrueSigil:
48
- Exclude:
49
- - lib/yard-sorbet/struct_handler.rb
50
- - spec/**/*
51
- Style/AccessModifierDeclarations:
52
- EnforcedStyle: inline
53
- Style/ClassAndModuleChildren:
54
- EnforcedStyle: compact
55
- Style/NegatedIf:
56
- Enabled: false
57
- Style/NegatedWhile:
58
- Enabled: false
59
- Style/Next:
60
- Enabled: false
61
- Style/IfUnlessModifier:
62
- Enabled: false
@@ -1,8 +0,0 @@
1
- ---
2
- language: ruby
3
- cache: bundler
4
- rvm:
5
- - 2.5
6
- - 2.6
7
- - 2.7
8
- before_install: gem install bundler -v 2.1.4
data/.yardopts DELETED
@@ -1,2 +0,0 @@
1
- --plugin sorbet
2
-
@@ -1,30 +0,0 @@
1
- # Change log
2
-
3
- ## master (unreleased)
4
-
5
- ## 0.1.0 (2020-12-01)
6
-
7
- ### New features
8
-
9
- * [#8](https://github.com/dduugg/yard-sorbet/pull/8): Add support for singleton class syntax.
10
- * [#7](https://github.com/dduugg/yard-sorbet/pull/7): Add support for top-level constants in sigs.
11
-
12
- ### Bug fixes
13
-
14
- * [#9](https://github.com/dduugg/yard-sorbet/pull/9): Remove warning for use of `T.attached_class`.
15
- * [#11](https://github.com/dduugg/yard-sorbet/pull/11): Fix parsing of custom parameterized types.
16
- * [#12](https://github.com/dduugg/yard-sorbet/pull/12): Fix parsing of recursive custom parameterized types.
17
-
18
- ### Changes
19
-
20
- * [#10](https://github.com/dduugg/yard-sorbet/pull/10): Downgrade log level of unsupported `sig` `aref` nodes.
21
- * Drop Ruby 2.4 support
22
-
23
- ## 0.0.1 (2020-01-24)
24
-
25
- * [#1](https://github.com/dduugg/yard-sorbet/pull/1): Add `T::Struct` support.
26
- * [#3](https://github.com/dduugg/yard-sorbet/pull/3): Rename require path to be conistent with gem name.
27
-
28
- ## 0.0.0 (2020-01-05)
29
-
30
- * Initial Release
data/Gemfile DELETED
@@ -1,8 +0,0 @@
1
- # typed: strong
2
- # frozen_string_literal: true
3
-
4
- source 'https://rubygems.org'
5
-
6
- gemspec
7
-
8
- gem 'pry-byebug'
data/README.md DELETED
@@ -1,17 +0,0 @@
1
- # yard-sorbet
2
- [![Gem Version](https://badge.fury.io/rb/yard-sorbet.svg)](https://badge.fury.io/rb/yard-sorbet)
3
- [![Build Status](https://travis-ci.com/dduugg/yard-sorbet.svg?branch=master)](https://travis-ci.com/dduugg/yard-sorbet)
4
- [![codecov](https://codecov.io/gh/dduugg/yard-sorbet/branch/master/graph/badge.svg)](https://codecov.io/gh/dduugg/yard-sorbet)
5
-
6
- A YARD [plugin](https://rubydoc.info/gems/yard/file/docs/GettingStarted.md#Plugin_Support) that parses Sorbet type annotations
7
-
8
- ## Install
9
-
10
- ```shell
11
- gem install yard-sorbet
12
- ```
13
-
14
- ## Usage
15
- ```bash
16
- yard doc --plugin sorbet
17
- ```
data/Rakefile DELETED
@@ -1,19 +0,0 @@
1
- # typed: strong
2
- # frozen_string_literal: true
3
-
4
- require 'bundler/gem_tasks'
5
- require 'rspec/core/rake_task'
6
-
7
- RSpec::Core::RakeTask.new(:spec)
8
-
9
- desc 'Lint files with Rubocop'
10
- task :lint do
11
- sh 'rubocop'
12
- end
13
-
14
- desc 'Typecheck files with Sorbet'
15
- task :typecheck do
16
- sh 'srb tc --ignore=vendor/'
17
- end
18
-
19
- task default: %i[lint spec typecheck]
@@ -1,39 +0,0 @@
1
- # typed: strong
2
- # frozen_string_literal: true
3
-
4
- require_relative 'lib/yard-sorbet/version'
5
-
6
- Gem::Specification.new do |spec|
7
- spec.name = 'yard-sorbet'
8
- spec.version = YARDSorbet::VERSION
9
- spec.author = 'Douglas Eichelberger'
10
- spec.email = 'dduugg@gmail.com'
11
- spec.license = 'Apache-2.0'
12
-
13
- spec.summary = 'Create YARD docs from Sorbet type signatures'
14
- spec.description = <<~DESC
15
- A YARD plugin that incorporates Sorbet type information
16
- DESC
17
- spec.homepage = 'https://github.com/dduugg/yard-sorbet'
18
- spec.required_ruby_version = Gem::Requirement.new('>= 2.5.0')
19
-
20
- spec.metadata['homepage_uri'] = spec.homepage
21
- spec.metadata['source_code_uri'] = spec.homepage
22
- spec.metadata['changelog_uri'] = 'https://github.com/dduugg/yard-sorbet/blob/master/CHANGELOG.md'
23
-
24
- spec.files = Dir.chdir(File.expand_path(__dir__)) do
25
- `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(sorbet|spec)/}) }
26
- end
27
-
28
- spec.add_development_dependency 'codecov', '~> 0.2.12'
29
- spec.add_development_dependency 'rake', '~> 13.0'
30
- spec.add_development_dependency 'rspec', '~> 3.10'
31
- spec.add_development_dependency 'rubocop', '~> 1.5.0'
32
- spec.add_development_dependency 'rubocop-rake', '~> 0.5.1'
33
- spec.add_development_dependency 'rubocop-rspec', '~> 2.0.0'
34
- spec.add_development_dependency 'rubocop-sorbet', '~> 0.5.1'
35
- spec.add_development_dependency 'simplecov', '~> 0.20.0'
36
- spec.add_development_dependency 'sorbet', '~> 0.5.6083'
37
- spec.add_runtime_dependency 'sorbet-runtime', '>= 0.5'
38
- spec.add_runtime_dependency 'yard', '>= 0.9'
39
- end