yard-sorbet 0.0.1 → 0.4.1

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.
Files changed (56) hide show
  1. checksums.yaml +4 -4
  2. data/lib/yard-sorbet.rb +4 -2
  3. data/lib/yard-sorbet/directives.rb +5 -1
  4. data/lib/yard-sorbet/sig_handler.rb +81 -32
  5. data/lib/yard-sorbet/sig_to_yard.rb +26 -6
  6. data/lib/yard-sorbet/struct_handler.rb +27 -11
  7. data/lib/yard-sorbet/version.rb +1 -1
  8. metadata +76 -79
  9. data/.editorconfig +0 -9
  10. data/.gitignore +0 -40
  11. data/.rspec +0 -1
  12. data/.rubocop.yml +0 -47
  13. data/.travis.yml +0 -7
  14. data/CHANGELOG.md +0 -10
  15. data/Gemfile +0 -14
  16. data/README.md +0 -17
  17. data/Rakefile +0 -11
  18. data/sorbet/config +0 -2
  19. data/sorbet/rbi/gems/ast.rbi +0 -47
  20. data/sorbet/rbi/gems/byebug.rbi +0 -1039
  21. data/sorbet/rbi/gems/codecov.rbi +0 -19
  22. data/sorbet/rbi/gems/coderay.rbi +0 -91
  23. data/sorbet/rbi/gems/docile.rbi +0 -31
  24. data/sorbet/rbi/gems/jaro_winkler.rbi +0 -14
  25. data/sorbet/rbi/gems/method_source.rbi +0 -63
  26. data/sorbet/rbi/gems/parallel.rbi +0 -81
  27. data/sorbet/rbi/gems/parser.rbi +0 -920
  28. data/sorbet/rbi/gems/pry-byebug.rbi +0 -149
  29. data/sorbet/rbi/gems/pry.rbi +0 -1964
  30. data/sorbet/rbi/gems/rainbow.rbi +0 -117
  31. data/sorbet/rbi/gems/rake.rbi +0 -635
  32. data/sorbet/rbi/gems/rspec-core.rbi +0 -1686
  33. data/sorbet/rbi/gems/rspec-expectations.rbi +0 -387
  34. data/sorbet/rbi/gems/rspec-mocks.rbi +0 -819
  35. data/sorbet/rbi/gems/rspec-support.rbi +0 -270
  36. data/sorbet/rbi/gems/rspec.rbi +0 -14
  37. data/sorbet/rbi/gems/rubocop-rspec.rbi +0 -889
  38. data/sorbet/rbi/gems/rubocop.rbi +0 -7139
  39. data/sorbet/rbi/gems/ruby-progressbar.rbi +0 -304
  40. data/sorbet/rbi/gems/simplecov-html.rbi +0 -30
  41. data/sorbet/rbi/gems/simplecov.rbi +0 -225
  42. data/sorbet/rbi/gems/site_ruby.rbi +0 -114
  43. data/sorbet/rbi/gems/unicode-display_width.rbi +0 -16
  44. data/sorbet/rbi/gems/yard.rbi +0 -1181
  45. data/sorbet/rbi/hidden-definitions/errors.txt +0 -3045
  46. data/sorbet/rbi/hidden-definitions/hidden.rbi +0 -4469
  47. data/sorbet/rbi/sorbet-typed/lib/bundler/all/bundler.rbi +0 -8684
  48. data/sorbet/rbi/sorbet-typed/lib/ruby/all/gem.rbi +0 -4222
  49. data/sorbet/rbi/sorbet-typed/lib/ruby/all/open3.rbi +0 -111
  50. data/sorbet/rbi/sorbet-typed/lib/ruby/all/resolv.rbi +0 -543
  51. data/spec/data/sig_handler.rb.txt +0 -196
  52. data/spec/data/struct_handler.rb.txt +0 -25
  53. data/spec/spec_helper.rb +0 -111
  54. data/spec/yard_sorbet/sig_handler_spec.rb +0 -233
  55. data/spec/yard_sorbet/struct_handler_spec.rb +0 -48
  56. data/yard-sorbet.gemspec +0 -27
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: '0877d9e7c2166c05eaf8b6e758ca07e046258053458a33cc6847b8103ba998b0'
4
- data.tar.gz: 1a2ec7ab8d6e8036c53a816053e91abb117a7330fb52aaeba692a5331d2f597b
3
+ metadata.gz: f5adecef50618ea39bdb103aa89d5a6561e838ad9860b7b4103fc39eeb268f5b
4
+ data.tar.gz: 33a6ce0b55c6a9934e3491a1a1feff06da39919d6b5196a67bab5d3861cd9425
5
5
  SHA512:
6
- metadata.gz: 8c32134d99eb150900275db0a7c34f7e3e1c08deb1c6fbee35d8303aa3ed0ad98dc1453268fc2a97a4f23fdf9c5969f2edff6bfc62ba271e8c9af70708ab385c
7
- data.tar.gz: e3de167e4393f4a832e65e4d91459e17f7218423e392df25b405c0cdbf3a16e9f4ebaefd3f3ec71efc6b62330942cef98267545c7410305487efabbacf805715
6
+ metadata.gz: '0139df44b176ef888fb74101915593dd43349133abc0cec0e60a16be72c72ddbbfdefa1ded2dc535764ef898a44156e8a5d74ff40d62ab109818277666f2e44f'
7
+ data.tar.gz: 2015b2b80680fcea678afc3b5d1a68350218904cc97a93ef4dec35cb1e07918d8766c77f309b21371dd52609c98a348bcb932899c360f721e0a00d3aedf0f175
data/lib/yard-sorbet.rb CHANGED
@@ -1,12 +1,14 @@
1
- # frozen_string_literal: true
2
1
  # typed: strong
2
+ # frozen_string_literal: true
3
+
3
4
  require 'sorbet-runtime'
4
5
  require 'yard'
5
6
 
6
7
  # top-level namespace
7
8
  module YARDSorbet; end
8
9
 
9
- require_relative 'yard-sorbet/directives.rb'
10
+ require_relative 'yard-sorbet/directives'
10
11
  require_relative 'yard-sorbet/sig_handler'
11
12
  require_relative 'yard-sorbet/sig_to_yard'
12
13
  require_relative 'yard-sorbet/struct_handler'
14
+ require_relative 'yard-sorbet/version'
@@ -1,8 +1,11 @@
1
- # frozen_string_literal: true
2
1
  # typed: strict
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,35 +6,74 @@ 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
+ # A struct that holds the parsed contents of a Sorbet type signature
10
+ class ParsedSig < T::Struct
11
+ prop :abstract, T::Boolean, default: false
12
+ prop :params, T::Hash[String, T::Array[String]], default: {}
13
+ prop :return, T.nilable(T::Array[String])
14
+ end
15
+
16
+ PARAM_EXCLUDES = T.let(%i[array call hash].freeze, T::Array[Symbol])
17
+ PROCESSABLE_NODES = T.let(%i[def defs command].freeze, T::Array[Symbol])
18
+ SIG_EXCLUDES = T.let(%i[array hash].freeze, T::Array[Symbol])
19
+ SIG_NODE_TYPES = T.let(%i[call fcall vcall].freeze, T::Array[Symbol])
20
+
21
+ private_constant :ParsedSig, :PARAM_EXCLUDES, :PROCESSABLE_NODES, :SIG_EXCLUDES, :SIG_NODE_TYPES
22
+
23
+ sig { void }
10
24
  def process
11
25
  # Find the list of declarations inside the class
12
26
  class_def = statement.children.find { |c| c.type == :list }
13
27
  class_contents = class_def.children
14
28
 
29
+ process_class_contents(class_contents)
30
+ end
31
+
32
+ sig { params(class_contents: T::Array[YARD::Parser::Ruby::MethodCallNode]).void }
33
+ private def process_class_contents(class_contents)
15
34
  class_contents.each_with_index do |child, i|
35
+ if child.type == :sclass && child.children.size == 2 && child.children[1].type == :list
36
+ singleton_class_contents = child.children[1]
37
+ process_class_contents(singleton_class_contents)
38
+ end
16
39
  next unless type_signature?(child)
17
40
 
18
41
  next_statement = class_contents[i + 1]
19
- if %i[def defs command].include?(next_statement&.type) && !next_statement.docstring
20
- # Swap the method definition docstring and the sig docstring.
21
- # Parse relevant parts of the `sig` and include them as well.
22
- docstring, directives = YARDSorbet::Directives.extract_directives(child.docstring)
23
- parsed_sig = parse_sig(child)
24
- enhance_tag(docstring, :abstract, parsed_sig)
25
- enhance_tag(docstring, :return, parsed_sig)
26
- if next_statement.type != :command
27
- parsed_sig[:params]&.each do |name, types|
28
- enhance_param(docstring, name, types)
29
- end
30
- end
31
- next_statement.docstring = docstring.to_raw
32
- YARDSorbet::Directives.add_directives(next_statement.docstring, directives)
33
- child.docstring = nil
42
+ next unless processable_method?(next_statement)
43
+
44
+ process_method_definition(T.must(next_statement), child)
45
+ end
46
+ end
47
+
48
+ sig { params(next_statement: T.nilable(YARD::Parser::Ruby::AstNode)).returns(T::Boolean) }
49
+ private def processable_method?(next_statement)
50
+ PROCESSABLE_NODES.include?(next_statement&.type)
51
+ end
52
+
53
+ sig do
54
+ params(
55
+ method_node: YARD::Parser::Ruby::AstNode,
56
+ sig_node: YARD::Parser::Ruby::MethodCallNode
57
+ ).void
58
+ end
59
+ private def process_method_definition(method_node, sig_node)
60
+ # Swap the method definition docstring and the sig docstring.
61
+ # Parse relevant parts of the `sig` and include them as well.
62
+ docstring, directives = YARDSorbet::Directives.extract_directives(sig_node.docstring)
63
+ parsed_sig = parse_sig(sig_node)
64
+ enhance_tag(docstring, :abstract, parsed_sig)
65
+ enhance_tag(docstring, :return, parsed_sig)
66
+ if method_node.type != :command
67
+ parsed_sig.params.each do |name, types|
68
+ enhance_param(docstring, name, types)
34
69
  end
35
70
  end
71
+ method_node.docstring = docstring.to_raw
72
+ YARDSorbet::Directives.add_directives(method_node.docstring, directives)
73
+ sig_node.docstring = nil
36
74
  end
37
75
 
76
+ sig { params(docstring: YARD::Docstring, name: String, types: T::Array[String]).void }
38
77
  private def enhance_param(docstring, name, types)
39
78
  tag = docstring.tags.find { |t| t.tag_name == 'param' && t.name == name }
40
79
  if tag
@@ -46,8 +85,10 @@ class YARDSorbet::SigHandler < YARD::Handlers::Ruby::Base
46
85
  docstring.add_tag(tag)
47
86
  end
48
87
 
88
+ sig { params(docstring: YARD::Docstring, type: Symbol, parsed_sig: ParsedSig).void }
49
89
  private def enhance_tag(docstring, type, parsed_sig)
50
- return if !parsed_sig[type]
90
+ type_value = parsed_sig.public_send(type)
91
+ return if !type_value
51
92
 
52
93
  tag = docstring.tags.find { |t| t.tag_name == type.to_s }
53
94
  if tag
@@ -55,52 +96,53 @@ class YARDSorbet::SigHandler < YARD::Handlers::Ruby::Base
55
96
  else
56
97
  tag = YARD::Tags::Tag.new(type, '')
57
98
  end
58
- if parsed_sig[type].is_a?(Array)
59
- tag.types = parsed_sig[type]
99
+ if type_value.is_a?(Array)
100
+ tag.types = type_value
60
101
  end
61
102
  docstring.add_tag(tag)
62
103
  end
63
104
 
105
+ sig { params(sig_node: YARD::Parser::Ruby::MethodCallNode).returns(ParsedSig) }
64
106
  private def parse_sig(sig_node)
65
- parsed = {}
66
- parsed[:abstract] = false
67
- parsed[:params] = {}
107
+ parsed = ParsedSig.new
68
108
  found_params = T.let(false, T::Boolean)
69
109
  found_return = T.let(false, T::Boolean)
70
- bfs_traverse(sig_node, exclude: %i[array hash]) do |n|
110
+ bfs_traverse(sig_node, exclude: SIG_EXCLUDES) do |n|
71
111
  if n.source == 'abstract'
72
- parsed[:abstract] = true
112
+ parsed.abstract = true
73
113
  elsif n.source == 'params' && !found_params
74
114
  found_params = true
75
115
  sibling = T.must(sibling_node(n))
76
- bfs_traverse(sibling, exclude: %i[array call hash]) do |p|
116
+ bfs_traverse(sibling, exclude: PARAM_EXCLUDES) do |p|
77
117
  if p.type == :assoc
78
118
  param_name = p.children.first.source[0...-1]
79
119
  types = YARDSorbet::SigToYARD.convert(p.children.last)
80
- parsed[:params][param_name] = types
120
+ parsed.params[param_name] = types
81
121
  end
82
122
  end
83
123
  elsif n.source == 'returns' && !found_return
84
124
  found_return = true
85
- parsed[:return] = YARDSorbet::SigToYARD.convert(T.must(sibling_node(n)))
125
+ parsed.return = YARDSorbet::SigToYARD.convert(T.must(sibling_node(n)))
86
126
  elsif n.source == 'void'
87
- parsed[:return] ||= ['void']
127
+ parsed.return ||= ['void']
88
128
  end
89
129
  end
90
130
  parsed
91
131
  end
92
132
 
93
133
  # Returns true if the given node is part of a type signature.
134
+ sig { params(node: T.nilable(YARD::Parser::Ruby::AstNode)).returns(T::Boolean) }
94
135
  private def type_signature?(node)
95
136
  loop do
96
137
  return false if node.nil?
97
- return false unless %i[call vcall fcall].include?(node.type)
138
+ return false unless SIG_NODE_TYPES.include?(node.type)
98
139
  return true if T.unsafe(node).method_name(true) == :sig
99
140
 
100
- node = node.children.first
141
+ node = T.let(node.children.first, T.nilable(YARD::Parser::Ruby::AstNode))
101
142
  end
102
143
  end
103
144
 
145
+ sig { params(node: YARD::Parser::Ruby::AstNode).returns(T.nilable(YARD::Parser::Ruby::AstNode)) }
104
146
  private def sibling_node(node)
105
147
  found_sibling = T.let(false, T::Boolean)
106
148
  node.parent.children.each do |n|
@@ -116,7 +158,14 @@ class YARDSorbet::SigHandler < YARD::Handlers::Ruby::Base
116
158
  end
117
159
 
118
160
  # @yield [YARD::Parser::Ruby::AstNode]
119
- private def bfs_traverse(node, exclude: [])
161
+ sig do
162
+ params(
163
+ node: YARD::Parser::Ruby::AstNode,
164
+ exclude: T::Array[Symbol],
165
+ _blk: T.proc.params(n: YARD::Parser::Ruby::AstNode).void
166
+ ).void
167
+ end
168
+ private def bfs_traverse(node, exclude: [], &_blk)
120
169
  queue = [node]
121
170
  while !queue.empty?
122
171
  n = T.must(queue.shift)
@@ -1,17 +1,21 @@
1
+ # typed: strict
1
2
  # frozen_string_literal: true
2
- # typed: 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
@@ -27,8 +31,8 @@ module YARDSorbet::SigToYARD
27
31
  value_type = convert(children.last.children.last).join(', ')
28
32
  ["Hash{#{key_type} => #{value_type}}"]
29
33
  else
30
- log.warn("Unsupported sig aref node #{node.source}")
31
- [node.source]
34
+ log.info("Unsupported sig aref node #{node.source}")
35
+ [build_generic_type(node)]
32
36
  end
33
37
  when :arg_paren
34
38
  convert(children.first.children.first)
@@ -40,7 +44,7 @@ module YARDSorbet::SigToYARD
40
44
  if children[0].source == 'T'
41
45
  t_method = IS_LEGACY_RUBY_VERSION ? children[1].source : children[2].source
42
46
  case t_method
43
- when 'all', 'class_of', 'enum', 'noreturn', 'self_type', 'type_parameter', 'untyped'
47
+ when 'all', 'attached_class', 'class_of', 'enum', 'noreturn', 'self_type', 'type_parameter', 'untyped'
44
48
  # YARD doesn't have equivalent notions, so we just use the raw source
45
49
  [node.source]
46
50
  when 'any'
@@ -56,7 +60,7 @@ module YARDSorbet::SigToYARD
56
60
  else
57
61
  [node.source]
58
62
  end
59
- when :const_path_ref
63
+ when :const_path_ref, :const
60
64
  case node.source
61
65
  when 'T::Boolean'
62
66
  ['Boolean'] # YARD convention for booleans
@@ -83,9 +87,25 @@ module YARDSorbet::SigToYARD
83
87
  else
84
88
  [node.source]
85
89
  end
90
+ when :top_const_ref
91
+ # A top-level constant reference, such as ::Klass
92
+ # It contains a child node of type :const
93
+ convert(children.first)
86
94
  else
87
95
  log.warn("Unsupported sig #{node.type} node #{node.source}")
88
96
  [node.source]
89
97
  end
90
98
  end
99
+
100
+ sig { params(node: YARD::Parser::Ruby::AstNode).returns(String) }
101
+ def self.build_generic_type(node)
102
+ return node.source if node.children.empty? || node.type != :aref
103
+
104
+ collection_type = node.children.first.source
105
+ member_type = node.children.last.children
106
+ .map { |child| build_generic_type(child) }
107
+ .join(', ')
108
+
109
+ "#{collection_type}[#{member_type}]"
110
+ end
91
111
  end
@@ -1,14 +1,23 @@
1
+ # typed: strict
1
2
  # frozen_string_literal: true
2
3
 
3
- # Handle all `const` calls, creating accessor methods, and compiles them for later usage at the class level
4
+ # Handles all `const`/`prop` calls, creating accessor methods, and compiles them for later usage at the class level
4
5
  # in creating a constructor
5
6
  class YARDSorbet::StructHandler < YARD::Handlers::Ruby::Base
6
- handles method_call(:const)
7
+ extend T::Sig
8
+
9
+ handles method_call(:const), method_call(:prop)
7
10
  namespace_only
8
11
 
12
+ sig { void }
9
13
  def process
10
14
  # Store the property for use in the constructor definition
11
- name = statement.parameters[0].jump(:ident).source
15
+ name = statement.parameters[0].jump(
16
+ :ident, # handles most "normal" identifiers
17
+ :kw, # handles prop names using reserved words like `end` or `def`
18
+ :const # handles capitalized prop names like Foo
19
+ ).source
20
+
12
21
  doc = statement.docstring.to_s
13
22
  source = statement.source
14
23
  types = YARDSorbet::SigToYARD.convert(statement.parameters[1])
@@ -30,29 +39,36 @@ class YARDSorbet::StructHandler < YARD::Handlers::Ruby::Base
30
39
  object = MethodObject.new(namespace, name, scope)
31
40
  object.source = source
32
41
 
33
- register(object)
34
-
35
42
  reader_docstring = doc.empty? ? "Returns the value of attribute +#{name}+." : doc
36
43
  docstring = YARD::DocstringParser.new.parse(reader_docstring).to_docstring
37
44
  docstring.add_tag(YARD::Tags::Tag.new(:return, '', types))
38
45
  object.docstring = docstring.to_raw
39
46
 
40
- # Register the object explicitly as an attribute
47
+ # Register the object explicitly as an attribute.
48
+ # While `const` attributes are immutable, `prop` attributes may be reassigned.
49
+ if statement.method_name.source == 'prop'
50
+ namespace.attributes[scope][name][:write] = object
51
+ end
41
52
  namespace.attributes[scope][name][:read] = object
42
53
  end
43
54
  end
44
55
 
45
- # Class-level handler that folds all `const` declarations into the constructor documentation
56
+ # Class-level handler that folds all `const` and `prop` declarations into the constructor documentation
46
57
  # this needs to be injected as a module otherwise the default Class handler will overwrite documentation
47
58
  module YARDSorbet::StructClassHandler
59
+ extend T::Sig
60
+
61
+ sig { void }
48
62
  def process
49
63
  ret = super
50
64
 
51
- return ret if extra_state.prop_docs.nil?
65
+ return ret if T.unsafe(self).extra_state.prop_docs.nil?
52
66
 
53
67
  # lookup the full YARD path for the current class
54
- class_ns = YARD::CodeObjects::ClassObject.new(namespace, statement[0].source.gsub(/\s/, ''))
55
- props = extra_state.prop_docs[class_ns]
68
+ class_ns = YARD::CodeObjects::ClassObject.new(
69
+ T.unsafe(self).namespace, T.unsafe(self).statement[0].source.gsub(/\s/, '')
70
+ )
71
+ props = T.unsafe(self).extra_state.prop_docs[class_ns]
56
72
 
57
73
  return ret if props.empty?
58
74
 
@@ -81,7 +97,7 @@ module YARDSorbet::StructClassHandler
81
97
  object.source ||= props.map { |p| p[:source] }.join("\n")
82
98
  object.explicit ||= false # not strictly necessary
83
99
 
84
- register(object)
100
+ T.unsafe(self).register(object)
85
101
 
86
102
  object.docstring = docstring.to_raw
87
103
 
@@ -2,5 +2,5 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module YARDSorbet
5
- VERSION = '0.0.1'
5
+ VERSION = '0.4.1'
6
6
  end
metadata CHANGED
@@ -1,29 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: yard-sorbet
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Douglas Eichelberger
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-01-24 00:00:00.000000000 Z
11
+ date: 2021-04-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: codecov
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 0.1.16
19
+ version: '0'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: 0.1.16
26
+ version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -44,98 +44,140 @@ dependencies:
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '3.9'
47
+ version: '3.10'
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: '3.9'
54
+ version: '3.10'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rubocop
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: 0.78.0
61
+ version: 1.13.0
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 1.13.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.11.0
62
76
  type: :development
63
77
  prerelease: false
64
78
  version_requirements: !ruby/object:Gem::Requirement
65
79
  requirements:
66
80
  - - "~>"
67
81
  - !ruby/object:Gem::Version
68
- version: 0.78.0
82
+ version: 1.11.0
83
+ - !ruby/object:Gem::Dependency
84
+ name: rubocop-rake
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: 0.5.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.5.1
69
97
  - !ruby/object:Gem::Dependency
70
98
  name: rubocop-rspec
71
99
  requirement: !ruby/object:Gem::Requirement
72
100
  requirements:
73
101
  - - "~>"
74
102
  - !ruby/object:Gem::Version
75
- version: '1.37'
103
+ version: 2.3.0
76
104
  type: :development
77
105
  prerelease: false
78
106
  version_requirements: !ruby/object:Gem::Requirement
79
107
  requirements:
80
108
  - - "~>"
81
109
  - !ruby/object:Gem::Version
82
- version: '1.37'
110
+ version: 2.3.0
83
111
  - !ruby/object:Gem::Dependency
84
- name: simplecov
112
+ name: rubocop-sorbet
85
113
  requirement: !ruby/object:Gem::Requirement
86
114
  requirements:
87
115
  - - "~>"
88
116
  - !ruby/object:Gem::Version
89
- version: 0.17.1
117
+ version: 0.6.0
90
118
  type: :development
91
119
  prerelease: false
92
120
  version_requirements: !ruby/object:Gem::Requirement
93
121
  requirements:
94
122
  - - "~>"
95
123
  - !ruby/object:Gem::Version
96
- version: 0.17.1
124
+ version: 0.6.0
125
+ - !ruby/object:Gem::Dependency
126
+ name: simplecov
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
97
139
  - !ruby/object:Gem::Dependency
98
140
  name: sorbet
99
141
  requirement: !ruby/object:Gem::Requirement
100
142
  requirements:
101
143
  - - "~>"
102
144
  - !ruby/object:Gem::Version
103
- version: 0.5.5200
145
+ version: 0.5.6193
104
146
  type: :development
105
147
  prerelease: false
106
148
  version_requirements: !ruby/object:Gem::Requirement
107
149
  requirements:
108
150
  - - "~>"
109
151
  - !ruby/object:Gem::Version
110
- version: 0.5.5200
152
+ version: 0.5.6193
111
153
  - !ruby/object:Gem::Dependency
112
154
  name: sorbet-runtime
113
155
  requirement: !ruby/object:Gem::Requirement
114
156
  requirements:
115
- - - "~>"
157
+ - - ">="
116
158
  - !ruby/object:Gem::Version
117
- version: '0.5'
159
+ version: 0.5.5845
118
160
  type: :runtime
119
161
  prerelease: false
120
162
  version_requirements: !ruby/object:Gem::Requirement
121
163
  requirements:
122
- - - "~>"
164
+ - - ">="
123
165
  - !ruby/object:Gem::Version
124
- version: '0.5'
166
+ version: 0.5.5845
125
167
  - !ruby/object:Gem::Dependency
126
168
  name: yard
127
169
  requirement: !ruby/object:Gem::Requirement
128
170
  requirements:
129
- - - "~>"
171
+ - - ">="
130
172
  - !ruby/object:Gem::Version
131
- version: '0.9'
173
+ version: 0.9.16
132
174
  type: :runtime
133
175
  prerelease: false
134
176
  version_requirements: !ruby/object:Gem::Requirement
135
177
  requirements:
136
- - - "~>"
178
+ - - ">="
137
179
  - !ruby/object:Gem::Version
138
- version: '0.9'
180
+ version: 0.9.16
139
181
  description: 'A YARD plugin that incorporates Sorbet type information
140
182
 
141
183
  '
@@ -144,66 +186,21 @@ executables: []
144
186
  extensions: []
145
187
  extra_rdoc_files: []
146
188
  files:
147
- - ".editorconfig"
148
- - ".gitignore"
149
- - ".rspec"
150
- - ".rubocop.yml"
151
- - ".travis.yml"
152
- - CHANGELOG.md
153
- - Gemfile
154
189
  - LICENSE
155
- - README.md
156
- - Rakefile
157
190
  - lib/yard-sorbet.rb
158
191
  - lib/yard-sorbet/directives.rb
159
192
  - lib/yard-sorbet/sig_handler.rb
160
193
  - lib/yard-sorbet/sig_to_yard.rb
161
194
  - lib/yard-sorbet/struct_handler.rb
162
195
  - 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
202
196
  homepage: https://github.com/dduugg/yard-sorbet
203
197
  licenses:
204
198
  - Apache-2.0
205
- metadata: {}
206
- post_install_message:
199
+ metadata:
200
+ homepage_uri: https://github.com/dduugg/yard-sorbet
201
+ source_code_uri: https://github.com/dduugg/yard-sorbet
202
+ changelog_uri: https://github.com/dduugg/yard-sorbet/blob/master/CHANGELOG.md
203
+ post_install_message:
207
204
  rdoc_options: []
208
205
  require_paths:
209
206
  - lib
@@ -211,15 +208,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
211
208
  requirements:
212
209
  - - ">="
213
210
  - !ruby/object:Gem::Version
214
- version: 2.4.0
211
+ version: 2.5.0
215
212
  required_rubygems_version: !ruby/object:Gem::Requirement
216
213
  requirements:
217
214
  - - ">="
218
215
  - !ruby/object:Gem::Version
219
216
  version: '0'
220
217
  requirements: []
221
- rubygems_version: 3.0.1
222
- signing_key:
218
+ rubygems_version: 3.1.4
219
+ signing_key:
223
220
  specification_version: 4
224
221
  summary: Create YARD docs from Sorbet type signatures
225
222
  test_files: []