rbs-trace 0.6.0 → 0.7.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 +4 -4
- data/.devcontainer/devcontainer.json +17 -0
- data/CHANGELOG.md +4 -0
- data/README.md +14 -0
- data/lib/rbs/trace/builder.rb +12 -7
- data/lib/rbs/trace/version.rb +1 -1
- data/lib/rbs/trace.rb +5 -0
- data/sig/generated/rbs/trace/builder.rbs +4 -1
- data/sig/generated/rbs/trace.rbs +3 -0
- metadata +5 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 66c8c25570faea268f27c79d9a91cd4b0768e326e6c013fac3ea5bffb2c94bb5
|
4
|
+
data.tar.gz: 1fdefe3317b2a9c59600e1182fbfcd4b267020bc63c9bf9537f128b00d3543d7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ead299e9457dcd8c8b00b363110a57448cc935a6d634009d584966d9c913588708e48618b56a88ff69550f6fe7c2c911a5db33a51711b480f221ee36fe18b72c
|
7
|
+
data.tar.gz: 668d6007a51b4836fbd6c8ff0eadb9e59a30f60d1a53cf0498572778e6d27612e77bfb4426ffb44760433e2d3b9c9065cb01d36ede3f5a77c5115d168fa3fbd0
|
@@ -0,0 +1,17 @@
|
|
1
|
+
{
|
2
|
+
"image": "mcr.microsoft.com/devcontainers/base:1-bookworm",
|
3
|
+
"features": {
|
4
|
+
"ghcr.io/devcontainers/features/ruby:1": {
|
5
|
+
"version": "3.4.4"
|
6
|
+
}
|
7
|
+
},
|
8
|
+
"customizations": {
|
9
|
+
"vscode": {
|
10
|
+
"extensions": [
|
11
|
+
"GitHub.copilot",
|
12
|
+
"Shopify.ruby-lsp",
|
13
|
+
"soutaro.steep-vscode"
|
14
|
+
]
|
15
|
+
}
|
16
|
+
}
|
17
|
+
}
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -139,6 +139,20 @@ $ rbs-trace inline --rb-dir=app --rb-dir=lib --comment-format=rbs_colon
|
|
139
139
|
trace.save_files(out_dir: "sig/trace/")
|
140
140
|
```
|
141
141
|
|
142
|
+
### Specify generics size
|
143
|
+
|
144
|
+
By default, generics are applied to the generated results only in the following classes.
|
145
|
+
|
146
|
+
- Array
|
147
|
+
- Hash
|
148
|
+
- Range
|
149
|
+
|
150
|
+
If any other classes require generics, configure them as follows.
|
151
|
+
|
152
|
+
```ruby
|
153
|
+
trace.add_generics_size!("CSV::Table" => 1, "ActiveSupport::HashWithIndifferentAccess" => 2)
|
154
|
+
```
|
155
|
+
|
142
156
|
### Parallel testing
|
143
157
|
|
144
158
|
If you are using a parallel testing gem such as [parallel_tests](https://github.com/grosser/parallel_tests) or [flatware](https://github.com/briandunn/flatware), first save the type definitions in RBS files.
|
data/lib/rbs/trace/builder.rb
CHANGED
@@ -9,12 +9,12 @@ module RBS
|
|
9
9
|
UNBOUND_NAME_METHOD = Class.instance_method(:name)
|
10
10
|
private_constant :UNBOUND_CLASS_METHOD, :UNBOUND_NAME_METHOD
|
11
11
|
|
12
|
-
|
13
|
-
Array => 1,
|
14
|
-
Range => 1,
|
15
|
-
Hash => 2
|
16
|
-
}.freeze
|
17
|
-
private_constant :
|
12
|
+
DEFAULT_GENERICS_SIZE = {
|
13
|
+
"Array" => 1,
|
14
|
+
"Range" => 1,
|
15
|
+
"Hash" => 2
|
16
|
+
}.freeze #: Hash[String, Integer]
|
17
|
+
private_constant :DEFAULT_GENERICS_SIZE
|
18
18
|
|
19
19
|
# @rbs (bind: Binding, parameters: Array[__todo__], void: bool) -> Array[__todo__]
|
20
20
|
def method_call(bind:, parameters:, void:)
|
@@ -37,6 +37,11 @@ module RBS
|
|
37
37
|
AST::Members::MethodDefinition::Overload.new(method_type:, annotations: [])
|
38
38
|
end
|
39
39
|
|
40
|
+
# @rbs () -> Hash[String, Integer]
|
41
|
+
def generics_size
|
42
|
+
@generics_size ||= DEFAULT_GENERICS_SIZE.dup
|
43
|
+
end
|
44
|
+
|
40
45
|
private
|
41
46
|
|
42
47
|
def stack_traces
|
@@ -115,7 +120,7 @@ module RBS
|
|
115
120
|
elsif klass == Object || class_name.nil?
|
116
121
|
type_untyped
|
117
122
|
else
|
118
|
-
size =
|
123
|
+
size = generics_size[klass.name].to_i
|
119
124
|
args = Array.new(size) { type_untyped }
|
120
125
|
Types::ClassInstance.new(name: TypeName.parse(class_name), args:, location: nil)
|
121
126
|
end
|
data/lib/rbs/trace/version.rb
CHANGED
data/lib/rbs/trace.rb
CHANGED
@@ -62,6 +62,11 @@ module RBS
|
|
62
62
|
files.each_value { |file| file.save_rbs(out_dir) }
|
63
63
|
end
|
64
64
|
|
65
|
+
# @rbs (Hash[String, Integer]) -> Hash[String, Integer]
|
66
|
+
def add_generics_size!(additional_generics_size)
|
67
|
+
builder.generics_size.merge!(additional_generics_size)
|
68
|
+
end
|
69
|
+
|
65
70
|
private
|
66
71
|
|
67
72
|
# @rbs () -> Array[String]
|
@@ -9,7 +9,7 @@ module RBS
|
|
9
9
|
|
10
10
|
UNBOUND_NAME_METHOD: untyped
|
11
11
|
|
12
|
-
|
12
|
+
DEFAULT_GENERICS_SIZE: Hash[String, Integer]
|
13
13
|
|
14
14
|
# @rbs (bind: Binding, parameters: Array[__todo__], void: bool) -> Array[__todo__]
|
15
15
|
def method_call: (bind: Binding, parameters: Array[__todo__], void: bool) -> Array[__todo__]
|
@@ -17,6 +17,9 @@ module RBS
|
|
17
17
|
# @rbs (__todo__) -> AST::Members::MethodDefinition::Overload
|
18
18
|
def method_return: (__todo__) -> AST::Members::MethodDefinition::Overload
|
19
19
|
|
20
|
+
# @rbs () -> Hash[String, Integer]
|
21
|
+
def generics_size: () -> Hash[String, Integer]
|
22
|
+
|
20
23
|
private
|
21
24
|
|
22
25
|
def stack_traces: () -> untyped
|
data/sig/generated/rbs/trace.rbs
CHANGED
@@ -29,6 +29,9 @@ module RBS
|
|
29
29
|
# @rbs (out_dir: String) -> void
|
30
30
|
def save_files: (out_dir: String) -> void
|
31
31
|
|
32
|
+
# @rbs (Hash[String, Integer]) -> Hash[String, Integer]
|
33
|
+
def add_generics_size!: (Hash[String, Integer]) -> Hash[String, Integer]
|
34
|
+
|
32
35
|
private
|
33
36
|
|
34
37
|
# @rbs () -> Array[String]
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rbs-trace
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Takumi Shotoku
|
@@ -47,6 +47,7 @@ executables:
|
|
47
47
|
extensions: []
|
48
48
|
extra_rdoc_files: []
|
49
49
|
files:
|
50
|
+
- ".devcontainer/devcontainer.json"
|
50
51
|
- ".rspec"
|
51
52
|
- ".rubocop.yml"
|
52
53
|
- CHANGELOG.md
|
@@ -88,8 +89,8 @@ licenses:
|
|
88
89
|
- MIT
|
89
90
|
metadata:
|
90
91
|
homepage_uri: https://github.com/sinsoku/rbs-trace
|
91
|
-
source_code_uri: https://github.com/sinsoku/rbs-trace/tree/v0.
|
92
|
-
changelog_uri: https://github.com/sinsoku/rbs-trace/blob/v0.
|
92
|
+
source_code_uri: https://github.com/sinsoku/rbs-trace/tree/v0.7.0
|
93
|
+
changelog_uri: https://github.com/sinsoku/rbs-trace/blob/v0.7.0/CHANGELOG.md
|
93
94
|
rubygems_mfa_required: 'true'
|
94
95
|
rdoc_options: []
|
95
96
|
require_paths:
|
@@ -105,7 +106,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
105
106
|
- !ruby/object:Gem::Version
|
106
107
|
version: '0'
|
107
108
|
requirements: []
|
108
|
-
rubygems_version: 3.6.
|
109
|
+
rubygems_version: 3.6.9
|
109
110
|
specification_version: 4
|
110
111
|
summary: Automatically Insert inline RBS type declarations using runtime information.
|
111
112
|
test_files: []
|