rbs 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.
Files changed (132) hide show
  1. checksums.yaml +7 -0
  2. data/.github/workflows/ruby.yml +28 -0
  3. data/.gitignore +12 -0
  4. data/.rubocop.yml +15 -0
  5. data/BSDL +22 -0
  6. data/CHANGELOG.md +9 -0
  7. data/COPYING +56 -0
  8. data/Gemfile +6 -0
  9. data/README.md +93 -0
  10. data/Rakefile +142 -0
  11. data/bin/annotate-with-rdoc +157 -0
  12. data/bin/console +14 -0
  13. data/bin/query-rdoc +103 -0
  14. data/bin/setup +10 -0
  15. data/bin/sort +89 -0
  16. data/bin/test_runner.rb +16 -0
  17. data/docs/CONTRIBUTING.md +97 -0
  18. data/docs/sigs.md +148 -0
  19. data/docs/stdlib.md +152 -0
  20. data/docs/syntax.md +528 -0
  21. data/exe/rbs +7 -0
  22. data/lib/rbs.rb +64 -0
  23. data/lib/rbs/ast/annotation.rb +27 -0
  24. data/lib/rbs/ast/comment.rb +27 -0
  25. data/lib/rbs/ast/declarations.rb +395 -0
  26. data/lib/rbs/ast/members.rb +362 -0
  27. data/lib/rbs/buffer.rb +50 -0
  28. data/lib/rbs/builtin_names.rb +55 -0
  29. data/lib/rbs/cli.rb +558 -0
  30. data/lib/rbs/constant.rb +26 -0
  31. data/lib/rbs/constant_table.rb +150 -0
  32. data/lib/rbs/definition.rb +170 -0
  33. data/lib/rbs/definition_builder.rb +919 -0
  34. data/lib/rbs/environment.rb +281 -0
  35. data/lib/rbs/environment_loader.rb +136 -0
  36. data/lib/rbs/environment_walker.rb +124 -0
  37. data/lib/rbs/errors.rb +187 -0
  38. data/lib/rbs/location.rb +102 -0
  39. data/lib/rbs/method_type.rb +123 -0
  40. data/lib/rbs/namespace.rb +91 -0
  41. data/lib/rbs/parser.y +1344 -0
  42. data/lib/rbs/prototype/rb.rb +553 -0
  43. data/lib/rbs/prototype/rbi.rb +587 -0
  44. data/lib/rbs/prototype/runtime.rb +381 -0
  45. data/lib/rbs/substitution.rb +46 -0
  46. data/lib/rbs/test.rb +26 -0
  47. data/lib/rbs/test/errors.rb +61 -0
  48. data/lib/rbs/test/hook.rb +294 -0
  49. data/lib/rbs/test/setup.rb +58 -0
  50. data/lib/rbs/test/spy.rb +325 -0
  51. data/lib/rbs/test/test_helper.rb +183 -0
  52. data/lib/rbs/test/type_check.rb +254 -0
  53. data/lib/rbs/type_name.rb +70 -0
  54. data/lib/rbs/types.rb +936 -0
  55. data/lib/rbs/variance_calculator.rb +138 -0
  56. data/lib/rbs/vendorer.rb +47 -0
  57. data/lib/rbs/version.rb +3 -0
  58. data/lib/rbs/writer.rb +269 -0
  59. data/lib/ruby/signature.rb +7 -0
  60. data/rbs.gemspec +46 -0
  61. data/stdlib/abbrev/abbrev.rbs +60 -0
  62. data/stdlib/base64/base64.rbs +71 -0
  63. data/stdlib/benchmark/benchmark.rbs +372 -0
  64. data/stdlib/builtin/array.rbs +1997 -0
  65. data/stdlib/builtin/basic_object.rbs +280 -0
  66. data/stdlib/builtin/binding.rbs +177 -0
  67. data/stdlib/builtin/builtin.rbs +45 -0
  68. data/stdlib/builtin/class.rbs +145 -0
  69. data/stdlib/builtin/comparable.rbs +116 -0
  70. data/stdlib/builtin/complex.rbs +400 -0
  71. data/stdlib/builtin/constants.rbs +37 -0
  72. data/stdlib/builtin/data.rbs +5 -0
  73. data/stdlib/builtin/deprecated.rbs +2 -0
  74. data/stdlib/builtin/dir.rbs +413 -0
  75. data/stdlib/builtin/encoding.rbs +607 -0
  76. data/stdlib/builtin/enumerable.rbs +404 -0
  77. data/stdlib/builtin/enumerator.rbs +260 -0
  78. data/stdlib/builtin/errno.rbs +781 -0
  79. data/stdlib/builtin/errors.rbs +582 -0
  80. data/stdlib/builtin/exception.rbs +194 -0
  81. data/stdlib/builtin/false_class.rbs +40 -0
  82. data/stdlib/builtin/fiber.rbs +68 -0
  83. data/stdlib/builtin/fiber_error.rbs +12 -0
  84. data/stdlib/builtin/file.rbs +1076 -0
  85. data/stdlib/builtin/file_test.rbs +59 -0
  86. data/stdlib/builtin/float.rbs +696 -0
  87. data/stdlib/builtin/gc.rbs +243 -0
  88. data/stdlib/builtin/hash.rbs +1029 -0
  89. data/stdlib/builtin/integer.rbs +707 -0
  90. data/stdlib/builtin/io.rbs +683 -0
  91. data/stdlib/builtin/kernel.rbs +576 -0
  92. data/stdlib/builtin/marshal.rbs +161 -0
  93. data/stdlib/builtin/match_data.rbs +271 -0
  94. data/stdlib/builtin/math.rbs +369 -0
  95. data/stdlib/builtin/method.rbs +185 -0
  96. data/stdlib/builtin/module.rbs +1104 -0
  97. data/stdlib/builtin/nil_class.rbs +82 -0
  98. data/stdlib/builtin/numeric.rbs +409 -0
  99. data/stdlib/builtin/object.rbs +824 -0
  100. data/stdlib/builtin/proc.rbs +429 -0
  101. data/stdlib/builtin/process.rbs +1227 -0
  102. data/stdlib/builtin/random.rbs +267 -0
  103. data/stdlib/builtin/range.rbs +226 -0
  104. data/stdlib/builtin/rational.rbs +424 -0
  105. data/stdlib/builtin/rb_config.rbs +57 -0
  106. data/stdlib/builtin/regexp.rbs +1083 -0
  107. data/stdlib/builtin/ruby_vm.rbs +14 -0
  108. data/stdlib/builtin/signal.rbs +55 -0
  109. data/stdlib/builtin/string.rbs +1901 -0
  110. data/stdlib/builtin/string_io.rbs +284 -0
  111. data/stdlib/builtin/struct.rbs +40 -0
  112. data/stdlib/builtin/symbol.rbs +228 -0
  113. data/stdlib/builtin/thread.rbs +1108 -0
  114. data/stdlib/builtin/thread_group.rbs +23 -0
  115. data/stdlib/builtin/time.rbs +1047 -0
  116. data/stdlib/builtin/trace_point.rbs +290 -0
  117. data/stdlib/builtin/true_class.rbs +46 -0
  118. data/stdlib/builtin/unbound_method.rbs +153 -0
  119. data/stdlib/builtin/warning.rbs +17 -0
  120. data/stdlib/coverage/coverage.rbs +62 -0
  121. data/stdlib/csv/csv.rbs +773 -0
  122. data/stdlib/erb/erb.rbs +392 -0
  123. data/stdlib/find/find.rbs +40 -0
  124. data/stdlib/ipaddr/ipaddr.rbs +247 -0
  125. data/stdlib/json/json.rbs +335 -0
  126. data/stdlib/pathname/pathname.rbs +1093 -0
  127. data/stdlib/prime/integer-extension.rbs +23 -0
  128. data/stdlib/prime/prime.rbs +188 -0
  129. data/stdlib/securerandom/securerandom.rbs +9 -0
  130. data/stdlib/set/set.rbs +301 -0
  131. data/stdlib/tmpdir/tmpdir.rbs +53 -0
  132. metadata +292 -0
@@ -0,0 +1,53 @@
1
+ extension Dir (tmpdir)
2
+ # Returns the operating system's temporary file path.
3
+ #
4
+ def self.tmpdir: () -> String
5
+
6
+ # Dir.mktmpdir creates a temporary directory.
7
+ #
8
+ # The directory is created with 0700 permission. Application should not change
9
+ # the permission to make the temporary directory accessible from other users.
10
+ #
11
+ # The prefix and suffix of the name of the directory is specified by the
12
+ # optional first argument, *prefix_suffix*.
13
+ # * If it is not specified or nil, "d" is used as the prefix and no suffix is
14
+ # used.
15
+ # * If it is a string, it is used as the prefix and no suffix is used.
16
+ # * If it is an array, first element is used as the prefix and second element
17
+ # is used as a suffix.
18
+ #
19
+ #
20
+ # Dir.mktmpdir {|dir| dir is ".../d..." }
21
+ # Dir.mktmpdir("foo") {|dir| dir is ".../foo..." }
22
+ # Dir.mktmpdir(["foo", "bar"]) {|dir| dir is ".../foo...bar" }
23
+ #
24
+ # The directory is created under Dir.tmpdir or the optional second argument
25
+ # *tmpdir* if non-nil value is given.
26
+ #
27
+ # Dir.mktmpdir {|dir| dir is "#{Dir.tmpdir}/d..." }
28
+ # Dir.mktmpdir(nil, "/var/tmp") {|dir| dir is "/var/tmp/d..." }
29
+ #
30
+ # If a block is given, it is yielded with the path of the directory. The
31
+ # directory and its contents are removed using FileUtils.remove_entry before
32
+ # Dir.mktmpdir returns. The value of the block is returned.
33
+ #
34
+ # Dir.mktmpdir {|dir|
35
+ # # use the directory...
36
+ # open("#{dir}/foo", "w") { ... }
37
+ # }
38
+ #
39
+ # If a block is not given, The path of the directory is returned. In this case,
40
+ # Dir.mktmpdir doesn't remove the directory.
41
+ #
42
+ # dir = Dir.mktmpdir
43
+ # begin
44
+ # # use the directory...
45
+ # open("#{dir}/foo", "w") { ... }
46
+ # ensure
47
+ # # remove the directory.
48
+ # FileUtils.remove_entry dir
49
+ # end
50
+ #
51
+ def self.mktmpdir: (?(String | [ String, String ] | nil), ?String?, ?max_try: Integer?) -> String
52
+ | [X] (?(String | [ String, String ] | nil), ?String?, ?max_try: Integer?) { (String) -> X } -> X
53
+ end
metadata ADDED
@@ -0,0 +1,292 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rbs
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.0
5
+ platform: ruby
6
+ authors:
7
+ - Soutaro Matsumoto
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2020-05-19 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '13.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '13.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: minitest
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '5.0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '5.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: racc
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: 1.4.16
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 1.4.16
69
+ - !ruby/object:Gem::Dependency
70
+ name: rubocop
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: rubocop-rubycw
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: minitest-reporters
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: 1.3.6
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: 1.3.6
111
+ - !ruby/object:Gem::Dependency
112
+ name: json
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: 2.3.0
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: 2.3.0
125
+ description: RBS is the language for type signatures for Ruby and standard library
126
+ definitions.
127
+ email:
128
+ - matsumoto@soutaro.com
129
+ executables:
130
+ - rbs
131
+ extensions: []
132
+ extra_rdoc_files: []
133
+ files:
134
+ - ".github/workflows/ruby.yml"
135
+ - ".gitignore"
136
+ - ".rubocop.yml"
137
+ - BSDL
138
+ - CHANGELOG.md
139
+ - COPYING
140
+ - Gemfile
141
+ - README.md
142
+ - Rakefile
143
+ - bin/annotate-with-rdoc
144
+ - bin/console
145
+ - bin/query-rdoc
146
+ - bin/setup
147
+ - bin/sort
148
+ - bin/test_runner.rb
149
+ - docs/CONTRIBUTING.md
150
+ - docs/sigs.md
151
+ - docs/stdlib.md
152
+ - docs/syntax.md
153
+ - exe/rbs
154
+ - lib/rbs.rb
155
+ - lib/rbs/ast/annotation.rb
156
+ - lib/rbs/ast/comment.rb
157
+ - lib/rbs/ast/declarations.rb
158
+ - lib/rbs/ast/members.rb
159
+ - lib/rbs/buffer.rb
160
+ - lib/rbs/builtin_names.rb
161
+ - lib/rbs/cli.rb
162
+ - lib/rbs/constant.rb
163
+ - lib/rbs/constant_table.rb
164
+ - lib/rbs/definition.rb
165
+ - lib/rbs/definition_builder.rb
166
+ - lib/rbs/environment.rb
167
+ - lib/rbs/environment_loader.rb
168
+ - lib/rbs/environment_walker.rb
169
+ - lib/rbs/errors.rb
170
+ - lib/rbs/location.rb
171
+ - lib/rbs/method_type.rb
172
+ - lib/rbs/namespace.rb
173
+ - lib/rbs/parser.rb
174
+ - lib/rbs/parser.y
175
+ - lib/rbs/prototype/rb.rb
176
+ - lib/rbs/prototype/rbi.rb
177
+ - lib/rbs/prototype/runtime.rb
178
+ - lib/rbs/substitution.rb
179
+ - lib/rbs/test.rb
180
+ - lib/rbs/test/errors.rb
181
+ - lib/rbs/test/hook.rb
182
+ - lib/rbs/test/setup.rb
183
+ - lib/rbs/test/spy.rb
184
+ - lib/rbs/test/test_helper.rb
185
+ - lib/rbs/test/type_check.rb
186
+ - lib/rbs/type_name.rb
187
+ - lib/rbs/types.rb
188
+ - lib/rbs/variance_calculator.rb
189
+ - lib/rbs/vendorer.rb
190
+ - lib/rbs/version.rb
191
+ - lib/rbs/writer.rb
192
+ - lib/ruby/signature.rb
193
+ - rbs.gemspec
194
+ - stdlib/abbrev/abbrev.rbs
195
+ - stdlib/base64/base64.rbs
196
+ - stdlib/benchmark/benchmark.rbs
197
+ - stdlib/builtin/array.rbs
198
+ - stdlib/builtin/basic_object.rbs
199
+ - stdlib/builtin/binding.rbs
200
+ - stdlib/builtin/builtin.rbs
201
+ - stdlib/builtin/class.rbs
202
+ - stdlib/builtin/comparable.rbs
203
+ - stdlib/builtin/complex.rbs
204
+ - stdlib/builtin/constants.rbs
205
+ - stdlib/builtin/data.rbs
206
+ - stdlib/builtin/deprecated.rbs
207
+ - stdlib/builtin/dir.rbs
208
+ - stdlib/builtin/encoding.rbs
209
+ - stdlib/builtin/enumerable.rbs
210
+ - stdlib/builtin/enumerator.rbs
211
+ - stdlib/builtin/errno.rbs
212
+ - stdlib/builtin/errors.rbs
213
+ - stdlib/builtin/exception.rbs
214
+ - stdlib/builtin/false_class.rbs
215
+ - stdlib/builtin/fiber.rbs
216
+ - stdlib/builtin/fiber_error.rbs
217
+ - stdlib/builtin/file.rbs
218
+ - stdlib/builtin/file_test.rbs
219
+ - stdlib/builtin/float.rbs
220
+ - stdlib/builtin/gc.rbs
221
+ - stdlib/builtin/hash.rbs
222
+ - stdlib/builtin/integer.rbs
223
+ - stdlib/builtin/io.rbs
224
+ - stdlib/builtin/kernel.rbs
225
+ - stdlib/builtin/marshal.rbs
226
+ - stdlib/builtin/match_data.rbs
227
+ - stdlib/builtin/math.rbs
228
+ - stdlib/builtin/method.rbs
229
+ - stdlib/builtin/module.rbs
230
+ - stdlib/builtin/nil_class.rbs
231
+ - stdlib/builtin/numeric.rbs
232
+ - stdlib/builtin/object.rbs
233
+ - stdlib/builtin/proc.rbs
234
+ - stdlib/builtin/process.rbs
235
+ - stdlib/builtin/random.rbs
236
+ - stdlib/builtin/range.rbs
237
+ - stdlib/builtin/rational.rbs
238
+ - stdlib/builtin/rb_config.rbs
239
+ - stdlib/builtin/regexp.rbs
240
+ - stdlib/builtin/ruby_vm.rbs
241
+ - stdlib/builtin/signal.rbs
242
+ - stdlib/builtin/string.rbs
243
+ - stdlib/builtin/string_io.rbs
244
+ - stdlib/builtin/struct.rbs
245
+ - stdlib/builtin/symbol.rbs
246
+ - stdlib/builtin/thread.rbs
247
+ - stdlib/builtin/thread_group.rbs
248
+ - stdlib/builtin/time.rbs
249
+ - stdlib/builtin/trace_point.rbs
250
+ - stdlib/builtin/true_class.rbs
251
+ - stdlib/builtin/unbound_method.rbs
252
+ - stdlib/builtin/warning.rbs
253
+ - stdlib/coverage/coverage.rbs
254
+ - stdlib/csv/csv.rbs
255
+ - stdlib/erb/erb.rbs
256
+ - stdlib/find/find.rbs
257
+ - stdlib/ipaddr/ipaddr.rbs
258
+ - stdlib/json/json.rbs
259
+ - stdlib/pathname/pathname.rbs
260
+ - stdlib/prime/integer-extension.rbs
261
+ - stdlib/prime/prime.rbs
262
+ - stdlib/securerandom/securerandom.rbs
263
+ - stdlib/set/set.rbs
264
+ - stdlib/tmpdir/tmpdir.rbs
265
+ homepage: https://github.com/ruby/rbs
266
+ licenses:
267
+ - BSD-2-Clause
268
+ - Ruby
269
+ metadata:
270
+ homepage_uri: https://github.com/ruby/rbs
271
+ source_code_uri: https://github.com/ruby/rbs.git
272
+ changelog_uri: https://github.com/ruby/rbs/blob/master/CHANGELOG.md
273
+ post_install_message:
274
+ rdoc_options: []
275
+ require_paths:
276
+ - lib
277
+ required_ruby_version: !ruby/object:Gem::Requirement
278
+ requirements:
279
+ - - ">="
280
+ - !ruby/object:Gem::Version
281
+ version: '0'
282
+ required_rubygems_version: !ruby/object:Gem::Requirement
283
+ requirements:
284
+ - - ">="
285
+ - !ruby/object:Gem::Version
286
+ version: '0'
287
+ requirements: []
288
+ rubygems_version: 3.1.2
289
+ signing_key:
290
+ specification_version: 4
291
+ summary: Type signature for Ruby.
292
+ test_files: []