yard-sorbet 0.0.1 → 0.4.1

Sign up to get free protection for your applications and to get access to all the features.
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: []