steep 0.16.0 → 0.16.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (147) hide show
  1. checksums.yaml +4 -4
  2. data/.gitmodules +0 -3
  3. data/CHANGELOG.md +6 -0
  4. data/Rakefile +0 -13
  5. data/bin/setup +0 -2
  6. data/bin/smoke_runner.rb +0 -1
  7. data/exe/steep +0 -1
  8. data/lib/steep/project/file.rb +1 -1
  9. data/lib/steep/project/hover_content.rb +1 -1
  10. data/lib/steep/server/code_worker.rb +1 -1
  11. data/lib/steep/server/signature_worker.rb +4 -4
  12. data/lib/steep/type_construction.rb +10 -16
  13. data/lib/steep/type_inference/constant_env.rb +2 -10
  14. data/lib/steep/type_inference/context.rb +1 -0
  15. data/lib/steep/version.rb +1 -1
  16. data/steep.gemspec +1 -5
  17. metadata +17 -135
  18. data/exe/rbs +0 -3
  19. data/vendor/ruby-signature/.github/workflows/ruby.yml +0 -27
  20. data/vendor/ruby-signature/.gitignore +0 -12
  21. data/vendor/ruby-signature/.rubocop.yml +0 -15
  22. data/vendor/ruby-signature/BSDL +0 -22
  23. data/vendor/ruby-signature/COPYING +0 -56
  24. data/vendor/ruby-signature/Gemfile +0 -6
  25. data/vendor/ruby-signature/README.md +0 -93
  26. data/vendor/ruby-signature/Rakefile +0 -142
  27. data/vendor/ruby-signature/bin/annotate-with-rdoc +0 -157
  28. data/vendor/ruby-signature/bin/console +0 -14
  29. data/vendor/ruby-signature/bin/query-rdoc +0 -103
  30. data/vendor/ruby-signature/bin/setup +0 -10
  31. data/vendor/ruby-signature/bin/sort +0 -89
  32. data/vendor/ruby-signature/bin/test_runner.rb +0 -16
  33. data/vendor/ruby-signature/docs/CONTRIBUTING.md +0 -97
  34. data/vendor/ruby-signature/docs/sigs.md +0 -148
  35. data/vendor/ruby-signature/docs/stdlib.md +0 -152
  36. data/vendor/ruby-signature/docs/syntax.md +0 -528
  37. data/vendor/ruby-signature/exe/rbs +0 -7
  38. data/vendor/ruby-signature/lib/rbs.rb +0 -64
  39. data/vendor/ruby-signature/lib/rbs/ast/annotation.rb +0 -27
  40. data/vendor/ruby-signature/lib/rbs/ast/comment.rb +0 -27
  41. data/vendor/ruby-signature/lib/rbs/ast/declarations.rb +0 -395
  42. data/vendor/ruby-signature/lib/rbs/ast/members.rb +0 -362
  43. data/vendor/ruby-signature/lib/rbs/buffer.rb +0 -50
  44. data/vendor/ruby-signature/lib/rbs/builtin_names.rb +0 -55
  45. data/vendor/ruby-signature/lib/rbs/cli.rb +0 -558
  46. data/vendor/ruby-signature/lib/rbs/constant.rb +0 -26
  47. data/vendor/ruby-signature/lib/rbs/constant_table.rb +0 -150
  48. data/vendor/ruby-signature/lib/rbs/definition.rb +0 -170
  49. data/vendor/ruby-signature/lib/rbs/definition_builder.rb +0 -919
  50. data/vendor/ruby-signature/lib/rbs/environment.rb +0 -281
  51. data/vendor/ruby-signature/lib/rbs/environment_loader.rb +0 -136
  52. data/vendor/ruby-signature/lib/rbs/environment_walker.rb +0 -124
  53. data/vendor/ruby-signature/lib/rbs/errors.rb +0 -187
  54. data/vendor/ruby-signature/lib/rbs/location.rb +0 -102
  55. data/vendor/ruby-signature/lib/rbs/method_type.rb +0 -123
  56. data/vendor/ruby-signature/lib/rbs/namespace.rb +0 -91
  57. data/vendor/ruby-signature/lib/rbs/parser.y +0 -1344
  58. data/vendor/ruby-signature/lib/rbs/prototype/rb.rb +0 -553
  59. data/vendor/ruby-signature/lib/rbs/prototype/rbi.rb +0 -587
  60. data/vendor/ruby-signature/lib/rbs/prototype/runtime.rb +0 -381
  61. data/vendor/ruby-signature/lib/rbs/substitution.rb +0 -46
  62. data/vendor/ruby-signature/lib/rbs/test.rb +0 -26
  63. data/vendor/ruby-signature/lib/rbs/test/errors.rb +0 -61
  64. data/vendor/ruby-signature/lib/rbs/test/hook.rb +0 -294
  65. data/vendor/ruby-signature/lib/rbs/test/setup.rb +0 -58
  66. data/vendor/ruby-signature/lib/rbs/test/spy.rb +0 -325
  67. data/vendor/ruby-signature/lib/rbs/test/test_helper.rb +0 -183
  68. data/vendor/ruby-signature/lib/rbs/test/type_check.rb +0 -254
  69. data/vendor/ruby-signature/lib/rbs/type_name.rb +0 -70
  70. data/vendor/ruby-signature/lib/rbs/types.rb +0 -936
  71. data/vendor/ruby-signature/lib/rbs/variance_calculator.rb +0 -138
  72. data/vendor/ruby-signature/lib/rbs/vendorer.rb +0 -47
  73. data/vendor/ruby-signature/lib/rbs/version.rb +0 -3
  74. data/vendor/ruby-signature/lib/rbs/writer.rb +0 -269
  75. data/vendor/ruby-signature/lib/ruby/signature.rb +0 -7
  76. data/vendor/ruby-signature/rbs.gemspec +0 -46
  77. data/vendor/ruby-signature/stdlib/abbrev/abbrev.rbs +0 -60
  78. data/vendor/ruby-signature/stdlib/base64/base64.rbs +0 -71
  79. data/vendor/ruby-signature/stdlib/benchmark/benchmark.rbs +0 -372
  80. data/vendor/ruby-signature/stdlib/builtin/array.rbs +0 -1997
  81. data/vendor/ruby-signature/stdlib/builtin/basic_object.rbs +0 -280
  82. data/vendor/ruby-signature/stdlib/builtin/binding.rbs +0 -177
  83. data/vendor/ruby-signature/stdlib/builtin/builtin.rbs +0 -45
  84. data/vendor/ruby-signature/stdlib/builtin/class.rbs +0 -145
  85. data/vendor/ruby-signature/stdlib/builtin/comparable.rbs +0 -116
  86. data/vendor/ruby-signature/stdlib/builtin/complex.rbs +0 -400
  87. data/vendor/ruby-signature/stdlib/builtin/constants.rbs +0 -37
  88. data/vendor/ruby-signature/stdlib/builtin/data.rbs +0 -5
  89. data/vendor/ruby-signature/stdlib/builtin/deprecated.rbs +0 -2
  90. data/vendor/ruby-signature/stdlib/builtin/dir.rbs +0 -413
  91. data/vendor/ruby-signature/stdlib/builtin/encoding.rbs +0 -607
  92. data/vendor/ruby-signature/stdlib/builtin/enumerable.rbs +0 -404
  93. data/vendor/ruby-signature/stdlib/builtin/enumerator.rbs +0 -260
  94. data/vendor/ruby-signature/stdlib/builtin/errno.rbs +0 -781
  95. data/vendor/ruby-signature/stdlib/builtin/errors.rbs +0 -582
  96. data/vendor/ruby-signature/stdlib/builtin/exception.rbs +0 -194
  97. data/vendor/ruby-signature/stdlib/builtin/false_class.rbs +0 -40
  98. data/vendor/ruby-signature/stdlib/builtin/fiber.rbs +0 -68
  99. data/vendor/ruby-signature/stdlib/builtin/fiber_error.rbs +0 -12
  100. data/vendor/ruby-signature/stdlib/builtin/file.rbs +0 -1076
  101. data/vendor/ruby-signature/stdlib/builtin/file_test.rbs +0 -59
  102. data/vendor/ruby-signature/stdlib/builtin/float.rbs +0 -696
  103. data/vendor/ruby-signature/stdlib/builtin/gc.rbs +0 -243
  104. data/vendor/ruby-signature/stdlib/builtin/hash.rbs +0 -1029
  105. data/vendor/ruby-signature/stdlib/builtin/integer.rbs +0 -707
  106. data/vendor/ruby-signature/stdlib/builtin/io.rbs +0 -683
  107. data/vendor/ruby-signature/stdlib/builtin/kernel.rbs +0 -576
  108. data/vendor/ruby-signature/stdlib/builtin/marshal.rbs +0 -161
  109. data/vendor/ruby-signature/stdlib/builtin/match_data.rbs +0 -271
  110. data/vendor/ruby-signature/stdlib/builtin/math.rbs +0 -369
  111. data/vendor/ruby-signature/stdlib/builtin/method.rbs +0 -185
  112. data/vendor/ruby-signature/stdlib/builtin/module.rbs +0 -1104
  113. data/vendor/ruby-signature/stdlib/builtin/nil_class.rbs +0 -82
  114. data/vendor/ruby-signature/stdlib/builtin/numeric.rbs +0 -409
  115. data/vendor/ruby-signature/stdlib/builtin/object.rbs +0 -824
  116. data/vendor/ruby-signature/stdlib/builtin/proc.rbs +0 -429
  117. data/vendor/ruby-signature/stdlib/builtin/process.rbs +0 -1227
  118. data/vendor/ruby-signature/stdlib/builtin/random.rbs +0 -267
  119. data/vendor/ruby-signature/stdlib/builtin/range.rbs +0 -226
  120. data/vendor/ruby-signature/stdlib/builtin/rational.rbs +0 -424
  121. data/vendor/ruby-signature/stdlib/builtin/rb_config.rbs +0 -57
  122. data/vendor/ruby-signature/stdlib/builtin/regexp.rbs +0 -1083
  123. data/vendor/ruby-signature/stdlib/builtin/ruby_vm.rbs +0 -14
  124. data/vendor/ruby-signature/stdlib/builtin/signal.rbs +0 -55
  125. data/vendor/ruby-signature/stdlib/builtin/string.rbs +0 -1901
  126. data/vendor/ruby-signature/stdlib/builtin/string_io.rbs +0 -284
  127. data/vendor/ruby-signature/stdlib/builtin/struct.rbs +0 -40
  128. data/vendor/ruby-signature/stdlib/builtin/symbol.rbs +0 -228
  129. data/vendor/ruby-signature/stdlib/builtin/thread.rbs +0 -1108
  130. data/vendor/ruby-signature/stdlib/builtin/thread_group.rbs +0 -23
  131. data/vendor/ruby-signature/stdlib/builtin/time.rbs +0 -1047
  132. data/vendor/ruby-signature/stdlib/builtin/trace_point.rbs +0 -290
  133. data/vendor/ruby-signature/stdlib/builtin/true_class.rbs +0 -46
  134. data/vendor/ruby-signature/stdlib/builtin/unbound_method.rbs +0 -153
  135. data/vendor/ruby-signature/stdlib/builtin/warning.rbs +0 -17
  136. data/vendor/ruby-signature/stdlib/coverage/coverage.rbs +0 -62
  137. data/vendor/ruby-signature/stdlib/csv/csv.rbs +0 -773
  138. data/vendor/ruby-signature/stdlib/erb/erb.rbs +0 -392
  139. data/vendor/ruby-signature/stdlib/find/find.rbs +0 -40
  140. data/vendor/ruby-signature/stdlib/ipaddr/ipaddr.rbs +0 -247
  141. data/vendor/ruby-signature/stdlib/json/json.rbs +0 -335
  142. data/vendor/ruby-signature/stdlib/pathname/pathname.rbs +0 -1093
  143. data/vendor/ruby-signature/stdlib/prime/integer-extension.rbs +0 -23
  144. data/vendor/ruby-signature/stdlib/prime/prime.rbs +0 -188
  145. data/vendor/ruby-signature/stdlib/securerandom/securerandom.rbs +0 -9
  146. data/vendor/ruby-signature/stdlib/set/set.rbs +0 -301
  147. data/vendor/ruby-signature/stdlib/tmpdir/tmpdir.rbs +0 -53
@@ -1,424 +0,0 @@
1
- # A rational number can be represented as a pair of integer numbers: a/b (b>0),
2
- # where a is the numerator and b is the denominator. Integer a equals rational
3
- # a/1 mathematically.
4
- #
5
- # In Ruby, you can create rational objects with the Kernel#Rational, to_r, or
6
- # rationalize methods or by suffixing `r` to a literal. The return values will
7
- # be irreducible fractions.
8
- #
9
- # Rational(1) #=> (1/1)
10
- # Rational(2, 3) #=> (2/3)
11
- # Rational(4, -6) #=> (-2/3)
12
- # 3.to_r #=> (3/1)
13
- # 2/3r #=> (2/3)
14
- #
15
- # You can also create rational objects from floating-point numbers or strings.
16
- #
17
- # Rational(0.3) #=> (5404319552844595/18014398509481984)
18
- # Rational('0.3') #=> (3/10)
19
- # Rational('2/3') #=> (2/3)
20
- #
21
- # 0.3.to_r #=> (5404319552844595/18014398509481984)
22
- # '0.3'.to_r #=> (3/10)
23
- # '2/3'.to_r #=> (2/3)
24
- # 0.3.rationalize #=> (3/10)
25
- #
26
- # A rational object is an exact number, which helps you to write programs
27
- # without any rounding errors.
28
- #
29
- # 10.times.inject(0) {|t| t + 0.1 } #=> 0.9999999999999999
30
- # 10.times.inject(0) {|t| t + Rational('0.1') } #=> (1/1)
31
- #
32
- # However, when an expression includes an inexact component (numerical value or
33
- # operation), it will produce an inexact result.
34
- #
35
- # Rational(10) / 3 #=> (10/3)
36
- # Rational(10) / 3.0 #=> 3.3333333333333335
37
- #
38
- # Rational(-8) ** Rational(1, 3)
39
- # #=> (1.0000000000000002+1.7320508075688772i)
40
- #
41
- class Rational < Numeric
42
- public
43
-
44
- def %: (Integer) -> Rational
45
- | (Float) -> Float
46
- | (Rational) -> Rational
47
- | (Numeric) -> Numeric
48
-
49
- # Performs multiplication.
50
- #
51
- # Rational(2, 3) * Rational(2, 3) #=> (4/9)
52
- # Rational(900) * Rational(1) #=> (900/1)
53
- # Rational(-2, 9) * Rational(-9, 2) #=> (1/1)
54
- # Rational(9, 8) * 4 #=> (9/2)
55
- # Rational(20, 9) * 9.8 #=> 21.77777777777778
56
- #
57
- def *: (Float) -> Float
58
- | (Complex) -> Complex
59
- | (Numeric) -> Numeric
60
-
61
- # Performs exponentiation.
62
- #
63
- # Rational(2) ** Rational(3) #=> (8/1)
64
- # Rational(10) ** -2 #=> (1/100)
65
- # Rational(10) ** -2.0 #=> 0.01
66
- # Rational(-4) ** Rational(1, 2) #=> (0.0+2.0i)
67
- # Rational(1, 2) ** 0 #=> (1/1)
68
- # Rational(1, 2) ** 0.0 #=> 1.0
69
- #
70
- def **: (Complex) -> Complex
71
- | (Numeric) -> Numeric
72
-
73
- # Performs addition.
74
- #
75
- # Rational(2, 3) + Rational(2, 3) #=> (4/3)
76
- # Rational(900) + Rational(1) #=> (901/1)
77
- # Rational(-2, 9) + Rational(-9, 2) #=> (-85/18)
78
- # Rational(9, 8) + 4 #=> (41/8)
79
- # Rational(20, 9) + 9.8 #=> 12.022222222222222
80
- #
81
- def +: (Float) -> Float
82
- | (Complex) -> Complex
83
- | (Numeric) -> Rational
84
-
85
- def +@: () -> Rational
86
-
87
- # Performs subtraction.
88
- #
89
- # Rational(2, 3) - Rational(2, 3) #=> (0/1)
90
- # Rational(900) - Rational(1) #=> (899/1)
91
- # Rational(-2, 9) - Rational(-9, 2) #=> (77/18)
92
- # Rational(9, 8) - 4 #=> (-23/8)
93
- # Rational(20, 9) - 9.8 #=> -7.577777777777778
94
- #
95
- def -: (Float) -> Float
96
- | (Complex) -> Complex
97
- | (Numeric) -> Rational
98
-
99
- # Negates `rat`.
100
- #
101
- def -@: () -> Rational
102
-
103
- # Performs division.
104
- #
105
- # Rational(2, 3) / Rational(2, 3) #=> (1/1)
106
- # Rational(900) / Rational(1) #=> (900/1)
107
- # Rational(-2, 9) / Rational(-9, 2) #=> (4/81)
108
- # Rational(9, 8) / 4 #=> (9/32)
109
- # Rational(20, 9) / 9.8 #=> 0.22675736961451246
110
- #
111
- def /: (Float) -> Float
112
- | (Complex) -> Complex
113
- | (Numeric) -> Rational
114
-
115
- # Returns -1, 0, or +1 depending on whether `rational` is less than, equal to,
116
- # or greater than `numeric`.
117
- #
118
- # `nil` is returned if the two values are incomparable.
119
- #
120
- # Rational(2, 3) <=> Rational(2, 3) #=> 0
121
- # Rational(5) <=> 5 #=> 0
122
- # Rational(2, 3) <=> Rational(1, 3) #=> 1
123
- # Rational(1, 3) <=> 1 #=> -1
124
- # Rational(1, 3) <=> 0.3 #=> 1
125
- #
126
- # Rational(1, 3) <=> "0.3" #=> nil
127
- #
128
- def <=>: (Numeric) -> Integer?
129
-
130
- # Returns `true` if `rat` equals `object` numerically.
131
- #
132
- # Rational(2, 3) == Rational(2, 3) #=> true
133
- # Rational(5) == 5 #=> true
134
- # Rational(0) == 0.0 #=> true
135
- # Rational('1/3') == 0.33 #=> false
136
- # Rational('1/2') == '1/2' #=> false
137
- #
138
- def ==: (untyped) -> bool
139
-
140
- # Returns the absolute value of `rat`.
141
- #
142
- # (1/2r).abs #=> (1/2)
143
- # (-1/2r).abs #=> (1/2)
144
- #
145
- # Rational#magnitude is an alias for Rational#abs.
146
- #
147
- def abs: () -> Rational
148
-
149
- def abs2: () -> Rational
150
-
151
- def angle: () -> (Integer | Float)
152
-
153
- alias arg angle
154
-
155
- # Returns the smallest number greater than or equal to `rat` with a precision of
156
- # `ndigits` decimal digits (default: 0).
157
- #
158
- # When the precision is negative, the returned value is an integer with at least
159
- # `ndigits.abs` trailing zeros.
160
- #
161
- # Returns a rational when `ndigits` is positive, otherwise returns an integer.
162
- #
163
- # Rational(3).ceil #=> 3
164
- # Rational(2, 3).ceil #=> 1
165
- # Rational(-3, 2).ceil #=> -1
166
- #
167
- # # decimal - 1 2 3 . 4 5 6
168
- # # ^ ^ ^ ^ ^ ^
169
- # # precision -3 -2 -1 0 +1 +2
170
- #
171
- # Rational('-123.456').ceil(+1).to_f #=> -123.4
172
- # Rational('-123.456').ceil(-1) #=> -120
173
- #
174
- def ceil: () -> Integer
175
- | (Integer digits) -> (Integer | Rational)
176
-
177
- def clone: (?freeze: bool) -> self
178
-
179
- def coerce: (Numeric) -> [Numeric, Numeric]
180
-
181
- def conj: () -> Rational
182
-
183
- def conjugate: () -> Rational
184
-
185
- # Returns the denominator (always positive).
186
- #
187
- # Rational(7).denominator #=> 1
188
- # Rational(7, 1).denominator #=> 1
189
- # Rational(9, -4).denominator #=> 4
190
- # Rational(-2, -10).denominator #=> 5
191
- #
192
- def denominator: () -> Integer
193
-
194
- def div: (Numeric) -> Integer
195
-
196
- def divmod: (Numeric) -> [Numeric, Numeric]
197
-
198
- def dup: () -> self
199
-
200
- def eql?: (untyped) -> bool
201
-
202
- # Performs division and returns the value as a Float.
203
- #
204
- # Rational(2, 3).fdiv(1) #=> 0.6666666666666666
205
- # Rational(2, 3).fdiv(0.5) #=> 1.3333333333333333
206
- # Rational(2).fdiv(3) #=> 0.6666666666666666
207
- #
208
- def fdiv: (Numeric) -> Float
209
-
210
- def finite?: () -> bool
211
-
212
- # Returns the largest number less than or equal to `rat` with a precision of
213
- # `ndigits` decimal digits (default: 0).
214
- #
215
- # When the precision is negative, the returned value is an integer with at least
216
- # `ndigits.abs` trailing zeros.
217
- #
218
- # Returns a rational when `ndigits` is positive, otherwise returns an integer.
219
- #
220
- # Rational(3).floor #=> 3
221
- # Rational(2, 3).floor #=> 0
222
- # Rational(-3, 2).floor #=> -2
223
- #
224
- # # decimal - 1 2 3 . 4 5 6
225
- # # ^ ^ ^ ^ ^ ^
226
- # # precision -3 -2 -1 0 +1 +2
227
- #
228
- # Rational('-123.456').floor(+1).to_f #=> -123.5
229
- # Rational('-123.456').floor(-1) #=> -130
230
- #
231
- def floor: () -> Integer
232
- | (Integer digits) -> (Integer | Rational)
233
-
234
- def hash: () -> Integer
235
-
236
- def i: () -> Complex
237
-
238
- def imag: () -> Integer
239
-
240
- def imaginary: () -> Integer
241
-
242
- def infinite?: () -> Integer?
243
-
244
- # Returns the value as a string for inspection.
245
- #
246
- # Rational(2).inspect #=> "(2/1)"
247
- # Rational(-8, 6).inspect #=> "(-4/3)"
248
- # Rational('1/2').inspect #=> "(1/2)"
249
- #
250
- def inspect: () -> String
251
-
252
- def integer?: () -> bool
253
-
254
- # Returns the absolute value of `rat`.
255
- #
256
- # (1/2r).abs #=> (1/2)
257
- # (-1/2r).abs #=> (1/2)
258
- #
259
- # Rational#magnitude is an alias for Rational#abs.
260
- #
261
- alias magnitude abs
262
-
263
- def modulo: (Float) -> Float
264
- | (Numeric) -> Rational
265
-
266
- # Returns `true` if `rat` is less than 0.
267
- #
268
- def negative?: () -> bool
269
-
270
- def nonzero?: () -> self?
271
-
272
- # Returns the numerator.
273
- #
274
- # Rational(7).numerator #=> 7
275
- # Rational(7, 1).numerator #=> 7
276
- # Rational(9, -4).numerator #=> -9
277
- # Rational(-2, -10).numerator #=> 1
278
- #
279
- def numerator: () -> Integer
280
-
281
- alias phase angle
282
-
283
- def polar: () -> [ Rational, Integer | Float ]
284
-
285
- # Returns `true` if `rat` is greater than 0.
286
- #
287
- def positive?: () -> bool
288
-
289
- # Performs division.
290
- #
291
- # Rational(2, 3) / Rational(2, 3) #=> (1/1)
292
- # Rational(900) / Rational(1) #=> (900/1)
293
- # Rational(-2, 9) / Rational(-9, 2) #=> (4/81)
294
- # Rational(9, 8) / 4 #=> (9/32)
295
- # Rational(20, 9) / 9.8 #=> 0.22675736961451246
296
- #
297
- def quo: (Float) -> Float
298
- | (Complex) -> Complex
299
- | (Numeric) -> Rational
300
-
301
- # Returns a simpler approximation of the value if the optional argument `eps` is
302
- # given (rat-|eps| <= result <= rat+|eps|), self otherwise.
303
- #
304
- # r = Rational(5033165, 16777216)
305
- # r.rationalize #=> (5033165/16777216)
306
- # r.rationalize(Rational('0.01')) #=> (3/10)
307
- # r.rationalize(Rational('0.1')) #=> (1/3)
308
- #
309
- def rationalize: (?Numeric eps) -> Rational
310
-
311
- def real: () -> Rational
312
-
313
- def real?: () -> true
314
-
315
- def rect: () -> [ Rational, Numeric ]
316
-
317
- alias rectangular rect
318
-
319
- def remainder: (Float) -> Float
320
- | (Numeric) -> Rational
321
-
322
- # Returns `rat` rounded to the nearest value with a precision of `ndigits`
323
- # decimal digits (default: 0).
324
- #
325
- # When the precision is negative, the returned value is an integer with at least
326
- # `ndigits.abs` trailing zeros.
327
- #
328
- # Returns a rational when `ndigits` is positive, otherwise returns an integer.
329
- #
330
- # Rational(3).round #=> 3
331
- # Rational(2, 3).round #=> 1
332
- # Rational(-3, 2).round #=> -2
333
- #
334
- # # decimal - 1 2 3 . 4 5 6
335
- # # ^ ^ ^ ^ ^ ^
336
- # # precision -3 -2 -1 0 +1 +2
337
- #
338
- # Rational('-123.456').round(+1).to_f #=> -123.5
339
- # Rational('-123.456').round(-1) #=> -120
340
- #
341
- # The optional `half` keyword argument is available similar to Float#round.
342
- #
343
- # Rational(25, 100).round(1, half: :up) #=> (3/10)
344
- # Rational(25, 100).round(1, half: :down) #=> (1/5)
345
- # Rational(25, 100).round(1, half: :even) #=> (1/5)
346
- # Rational(35, 100).round(1, half: :up) #=> (2/5)
347
- # Rational(35, 100).round(1, half: :down) #=> (3/10)
348
- # Rational(35, 100).round(1, half: :even) #=> (2/5)
349
- # Rational(-25, 100).round(1, half: :up) #=> (-3/10)
350
- # Rational(-25, 100).round(1, half: :down) #=> (-1/5)
351
- # Rational(-25, 100).round(1, half: :even) #=> (-1/5)
352
- #
353
- def round: (?half: :up | :down | :even) -> Integer
354
- | (Integer digits, ?half: :up | :down | :even) -> (Integer | Rational)
355
-
356
- def step: (?Numeric limit, ?Numeric step) { (Rational) -> void } -> self
357
- | (?Numeric limit, ?Numeric step) -> Enumerator[Rational, self]
358
- | (?by: Numeric, ?to: Numeric) { (Rational) -> void } -> self
359
- | (?by: Numeric, ?to: Numeric) -> Enumerator[Rational, self]
360
-
361
- def to_c: () -> Complex
362
-
363
- # Returns the value as a Float.
364
- #
365
- # Rational(2).to_f #=> 2.0
366
- # Rational(9, 4).to_f #=> 2.25
367
- # Rational(-3, 4).to_f #=> -0.75
368
- # Rational(20, 3).to_f #=> 6.666666666666667
369
- #
370
- def to_f: () -> Float
371
-
372
- # Returns the truncated value as an integer.
373
- #
374
- # Equivalent to Rational#truncate.
375
- #
376
- # Rational(2, 3).to_i #=> 0
377
- # Rational(3).to_i #=> 3
378
- # Rational(300.6).to_i #=> 300
379
- # Rational(98, 71).to_i #=> 1
380
- # Rational(-31, 2).to_i #=> -15
381
- #
382
- def to_i: () -> Integer
383
-
384
- alias to_int to_i
385
-
386
- # Returns self.
387
- #
388
- # Rational(2).to_r #=> (2/1)
389
- # Rational(-8, 6).to_r #=> (-4/3)
390
- #
391
- def to_r: () -> Rational
392
-
393
- # Returns the value as a string.
394
- #
395
- # Rational(2).to_s #=> "2/1"
396
- # Rational(-8, 6).to_s #=> "-4/3"
397
- # Rational('1/2').to_s #=> "1/2"
398
- #
399
- def to_s: () -> String
400
-
401
- # Returns `rat` truncated (toward zero) to a precision of `ndigits` decimal
402
- # digits (default: 0).
403
- #
404
- # When the precision is negative, the returned value is an integer with at least
405
- # `ndigits.abs` trailing zeros.
406
- #
407
- # Returns a rational when `ndigits` is positive, otherwise returns an integer.
408
- #
409
- # Rational(3).truncate #=> 3
410
- # Rational(2, 3).truncate #=> 0
411
- # Rational(-3, 2).truncate #=> -1
412
- #
413
- # # decimal - 1 2 3 . 4 5 6
414
- # # ^ ^ ^ ^ ^ ^
415
- # # precision -3 -2 -1 0 +1 +2
416
- #
417
- # Rational('-123.456').truncate(+1).to_f #=> -123.4
418
- # Rational('-123.456').truncate(-1) #=> -120
419
- #
420
- def truncate: () -> Integer
421
- | (Integer ndigits) -> (Integer | Rational)
422
-
423
- def zero?: () -> bool
424
- end
@@ -1,57 +0,0 @@
1
- # The module storing Ruby interpreter configurations on building.
2
- #
3
- # This file was created by mkconfig.rb when ruby was built. It contains build
4
- # information for ruby which is used e.g. by mkmf to build compatible native
5
- # extensions. Any changes made to this file will be lost the next time ruby is
6
- # built.
7
- #
8
- module RbConfig
9
- # expands variable with given `val` value.
10
- #
11
- # RbConfig.expand("$(bindir)") # => /home/foobar/all-ruby/ruby19x/bin
12
- #
13
- def self.expand: (String val, ?Hash[String, String] config) -> String
14
-
15
- def self.fire_update!: (String key, String val, ?Hash[String, String] mkconf, ?Hash[String, String] conf) -> Array[String]?
16
-
17
- def self.ruby: () -> String
18
- end
19
-
20
- # The hash configurations stored.
21
- #
22
- RbConfig::CONFIG: Hash[String, String]
23
-
24
- # DESTDIR on make install.
25
- #
26
- RbConfig::DESTDIR: String
27
-
28
- # Almost same with CONFIG. MAKEFILE_CONFIG has other variable reference like
29
- # below.
30
- #
31
- # MAKEFILE_CONFIG["bindir"] = "$(exec_prefix)/bin"
32
- #
33
- # The values of this constant is used for creating Makefile.
34
- #
35
- # require 'rbconfig'
36
- #
37
- # print <<-END_OF_MAKEFILE
38
- # prefix = #{Config::MAKEFILE_CONFIG['prefix']}
39
- # exec_prefix = #{Config::MAKEFILE_CONFIG['exec_prefix']}
40
- # bindir = #{Config::MAKEFILE_CONFIG['bindir']}
41
- # END_OF_MAKEFILE
42
- #
43
- # => prefix = /usr/local
44
- # exec_prefix = $(prefix)
45
- # bindir = $(exec_prefix)/bin MAKEFILE_CONFIG = {}
46
- #
47
- # RbConfig.expand is used for resolving references like above in rbconfig.
48
- #
49
- # require 'rbconfig'
50
- # p Config.expand(Config::MAKEFILE_CONFIG["bindir"])
51
- # # => "/usr/local/bin"
52
- #
53
- RbConfig::MAKEFILE_CONFIG: Hash[String, String]
54
-
55
- # Ruby installed directory.
56
- #
57
- RbConfig::TOPDIR: String