spoom 1.7.7 → 1.7.8

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: dee74aa6f300c648be7b9c74808c1f24507e3c806a9fb80565f6bad3a84ca724
4
- data.tar.gz: a6202c46d255610003479c753cd209a8511b5bc7511bcfe9d092e7619ed7d68a
3
+ metadata.gz: aedf28669e780fce835616cbafcd7e45183d0cd474127dc26c1e9d169f3b4920
4
+ data.tar.gz: 5ac37ac73623a9158a7ee6d5f60aa93f46d83140fa718129c4fa73fc15ba85f4
5
5
  SHA512:
6
- metadata.gz: ed6f6fb93669b54ce54010fb657d8f3264e29e7c825382b49dbbc718aad8d48177392cc3ab89c9a2c669bf183c87653cb5c2682c222c311991cfaaca3f7e5088
7
- data.tar.gz: b763bdbc1480b4e6290cd152190726855bd0c0347cfd582ba12d79e3d106703cf3117a471ff4493c7f579d1713260e3c7b423d2de633fafaacb3945b26ae37d4
6
+ metadata.gz: c309dba40798848147342ffd5c9c4657ce77e8e724d6ece2ceb4851ab8f4c21b432c4684845d1042a81937d52d6cbb47f6b27f3b6440f091e87ddb6c8e8e4077
7
+ data.tar.gz: aa5e4e6c8021cc62b4147ef76ff6350c3917838c154d7fdf3ce5ebcf2f54f733bc33bf4caff33ef904a6ef58a8e2b8c436996879982639e7c324110787aa343e
@@ -39,7 +39,11 @@ module Spoom
39
39
  glob("*")
40
40
  end
41
41
 
42
- #: (?allow_extensions: Array[String], ?allow_mime_types: Array[String], ?exclude_patterns: Array[String]) -> Array[String]
42
+ #: (
43
+ #| ?allow_extensions: Array[String],
44
+ #| ?allow_mime_types: Array[String],
45
+ #| ?exclude_patterns: Array[String]
46
+ #| ) -> Array[String]
43
47
  def collect_files(allow_extensions: [], allow_mime_types: [], exclude_patterns: [])
44
48
  collector = FileCollector.new(
45
49
  allow_extensions: allow_extensions,
@@ -145,7 +145,12 @@ module Spoom
145
145
  end
146
146
 
147
147
  class Sigils < CircleMap
148
- #: (String id, FileTree file_tree, Hash[FileTree::Node, String?] nodes_strictnesses, Hash[FileTree::Node, Float] nodes_scores) -> void
148
+ #: (
149
+ #| String id,
150
+ #| FileTree file_tree,
151
+ #| Hash[FileTree::Node, String?] nodes_strictnesses,
152
+ #| Hash[FileTree::Node, Float] nodes_scores
153
+ #| ) -> void
149
154
  def initialize(id, file_tree, nodes_strictnesses, nodes_scores)
150
155
  @nodes_strictnesses = nodes_strictnesses
151
156
  @nodes_scores = nodes_scores
@@ -138,7 +138,12 @@ module Spoom
138
138
  end
139
139
 
140
140
  class Map < Card
141
- #: (file_tree: FileTree, nodes_strictnesses: Hash[FileTree::Node, String?], nodes_strictness_scores: Hash[FileTree::Node, Float], ?title: String) -> void
141
+ #: (
142
+ #| file_tree: FileTree,
143
+ #| nodes_strictnesses: Hash[FileTree::Node, String?],
144
+ #| nodes_strictness_scores: Hash[FileTree::Node, Float],
145
+ #| ?title: String
146
+ #| ) -> void
142
147
  def initialize(file_tree:, nodes_strictnesses:, nodes_strictness_scores:, title: "Strictness Map")
143
148
  super(
144
149
  title: title,
@@ -222,7 +227,16 @@ module Spoom
222
227
  end
223
228
 
224
229
  class Report < Page
225
- #: (project_name: String, palette: D3::ColorPalette, snapshots: Array[Snapshot], file_tree: FileTree, nodes_strictnesses: Hash[FileTree::Node, String?], nodes_strictness_scores: Hash[FileTree::Node, Float], ?sorbet_intro_commit: String?, ?sorbet_intro_date: Time?) -> void
230
+ #: (
231
+ #| project_name: String,
232
+ #| palette: D3::ColorPalette,
233
+ #| snapshots: Array[Snapshot],
234
+ #| file_tree: FileTree,
235
+ #| nodes_strictnesses: Hash[FileTree::Node, String?],
236
+ #| nodes_strictness_scores: Hash[FileTree::Node, Float],
237
+ #| ?sorbet_intro_commit: String?,
238
+ #| ?sorbet_intro_date: Time?
239
+ #| ) -> void
226
240
  def initialize(
227
241
  project_name:,
228
242
  palette:,
@@ -129,7 +129,13 @@ module Spoom
129
129
  #: String?
130
130
  attr_accessor :superclass_name
131
131
 
132
- #: (Symbol symbol, owner: Namespace?, location: Location, ?superclass_name: String?, ?comments: Array[Comment]) -> void
132
+ #: (
133
+ #| Symbol symbol,
134
+ #| owner: Namespace?,
135
+ #| location: Location,
136
+ #| ?superclass_name: String?,
137
+ #| ?comments: Array[Comment]
138
+ #| ) -> void
133
139
  def initialize(symbol, owner:, location:, superclass_name: nil, comments: [])
134
140
  super(symbol, owner: owner, location: location, comments: comments)
135
141
 
@@ -160,7 +166,14 @@ module Spoom
160
166
  #: Array[Sig]
161
167
  attr_reader :sigs
162
168
 
163
- #: (Symbol symbol, owner: Namespace?, location: Location, visibility: Visibility, ?sigs: Array[Sig], ?comments: Array[Comment]) -> void
169
+ #: (
170
+ #| Symbol symbol,
171
+ #| owner: Namespace?,
172
+ #| location: Location,
173
+ #| visibility: Visibility,
174
+ #| ?sigs: Array[Sig],
175
+ #| ?comments: Array[Comment]
176
+ #| ) -> void
164
177
  def initialize(symbol, owner:, location:, visibility:, sigs: [], comments: [])
165
178
  super(symbol, owner: owner, location: location, comments: comments)
166
179
 
data/lib/spoom/rbs.rb CHANGED
@@ -39,7 +39,13 @@ module Spoom
39
39
  def method_annotations
40
40
  @annotations.select do |annotation|
41
41
  case annotation.string
42
- when "@abstract", "@final", "@override", "@override(allow_incompatible: true)", "@overridable", "@without_runtime"
42
+ when "@abstract",
43
+ "@final",
44
+ "@override",
45
+ "@override(allow_incompatible: true)",
46
+ "@override(allow_incompatible: :visibility)",
47
+ "@overridable",
48
+ "@without_runtime"
43
49
  true
44
50
  else
45
51
  false
@@ -248,6 +248,9 @@ module Spoom
248
248
  when "@override(allow_incompatible: true)"
249
249
  sig.is_override = true
250
250
  sig.allow_incompatible_override = true
251
+ when "@override(allow_incompatible: :visibility)"
252
+ sig.is_override = true
253
+ sig.allow_incompatible_override_visibility = true
251
254
  when "@overridable"
252
255
  sig.is_overridable = true
253
256
  when "@without_runtime"
@@ -74,8 +74,10 @@ module Spoom
74
74
  Prism::ClassVariableWriteNode, Prism::ClassVariableAndWriteNode, Prism::ClassVariableOperatorWriteNode, Prism::ClassVariableOrWriteNode,
75
75
  Prism::ConstantWriteNode, Prism::ConstantAndWriteNode, Prism::ConstantOperatorWriteNode, Prism::ConstantOrWriteNode,
76
76
  Prism::ConstantPathWriteNode, Prism::ConstantPathAndWriteNode, Prism::ConstantPathOperatorWriteNode, Prism::ConstantPathOrWriteNode,
77
- Prism::GlobalVariableWriteNode, Prism::GlobalVariableAndWriteNode, Prism::GlobalVariableOperatorWriteNode, Prism::GlobalVariableOrWriteNode,
78
- Prism::InstanceVariableWriteNode, Prism::InstanceVariableAndWriteNode, Prism::InstanceVariableOperatorWriteNode, Prism::InstanceVariableOrWriteNode,
77
+ Prism::GlobalVariableWriteNode, Prism::GlobalVariableAndWriteNode,
78
+ Prism::GlobalVariableOperatorWriteNode, Prism::GlobalVariableOrWriteNode,
79
+ Prism::InstanceVariableWriteNode, Prism::InstanceVariableAndWriteNode,
80
+ Prism::InstanceVariableOperatorWriteNode, Prism::InstanceVariableOrWriteNode,
79
81
  Prism::LocalVariableWriteNode, Prism::LocalVariableAndWriteNode, Prism::LocalVariableOperatorWriteNode, Prism::LocalVariableOrWriteNode,
80
82
  Prism::CallAndWriteNode, Prism::CallOperatorWriteNode, Prism::CallOrWriteNode
81
83
  node.value
@@ -260,7 +260,10 @@ module Spoom
260
260
 
261
261
  arg = body.body.first #: as Prism::Node
262
262
  srb_type = RBI::Type.parse_node(arg)
263
- @rewriter << Source::Insert.new(parent.location.start_offset, "# @requires_ancestor: #{srb_type.rbs_string}\n#{indent}")
263
+ @rewriter << Source::Insert.new(
264
+ parent.location.start_offset,
265
+ "# @requires_ancestor: #{srb_type.rbs_string}\n#{indent}",
266
+ )
264
267
  end
265
268
 
266
269
  from = adjust_to_line_start(node.location.start_offset)
@@ -294,6 +297,8 @@ module Spoom
294
297
  if sigs.any? { |_, sig| sig.is_override }
295
298
  @rewriter << if sigs.any? { |_, sig| sig.allow_incompatible_override }
296
299
  Source::Insert.new(insert_pos, "# @override(allow_incompatible: true)\n#{indent}")
300
+ elsif sigs.any? { |_, sig| sig.allow_incompatible_override_visibility }
301
+ Source::Insert.new(insert_pos, "# @override(allow_incompatible: :visibility)\n#{indent}")
297
302
  else
298
303
  Source::Insert.new(insert_pos, "# @override\n#{indent}")
299
304
  end
@@ -92,7 +92,8 @@ module Spoom
92
92
  # @override
93
93
  #: (Array[Integer]) -> void
94
94
  def apply(bytes)
95
- raise PositionError, "Position is out of bounds" if from < 0 || to < 0 || from > bytes.size || to > bytes.size || from > to
95
+ raise PositionError,
96
+ "Position is out of bounds" if from < 0 || to < 0 || from > bytes.size || to > bytes.size || from > to
96
97
 
97
98
  bytes[from..to] = *text.bytes
98
99
  end
@@ -125,7 +126,8 @@ module Spoom
125
126
  # @override
126
127
  #: (Array[untyped]) -> void
127
128
  def apply(bytes)
128
- raise PositionError, "Position is out of bounds" if from < 0 || to < 0 || from > bytes.size || to > bytes.size || from > to
129
+ raise PositionError,
130
+ "Position is out of bounds" if from < 0 || to < 0 || from > bytes.size || to > bytes.size || from > to
129
131
 
130
132
  bytes[from..to] = "".bytes
131
133
  end
data/lib/spoom/version.rb CHANGED
@@ -2,5 +2,5 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module Spoom
5
- VERSION = "1.7.7"
5
+ VERSION = "1.7.8"
6
6
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spoom
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.7.7
4
+ version: 1.7.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alexandre Terrasa