rbs 3.0.0.dev.1 → 3.0.0.dev.3
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/.github/workflows/comments.yml +2 -1
- data/.github/workflows/ruby.yml +4 -3
- data/CHANGELOG.md +28 -0
- data/Gemfile.lock +12 -12
- data/README.md +1 -0
- data/Rakefile +77 -3
- data/Steepfile +1 -1
- data/core/array.rbs +574 -424
- data/core/basic_object.rbs +11 -39
- data/core/binding.rbs +1 -1
- data/core/builtin.rbs +9 -1
- data/core/class.rbs +37 -0
- data/core/comparable.rbs +7 -18
- data/core/complex.rbs +2 -2
- data/core/data.rbs +419 -0
- data/core/dir.rbs +52 -104
- data/core/encoding.rbs +22 -181
- data/core/enumerable.rbs +212 -175
- data/core/enumerator/product.rbs +96 -0
- data/core/enumerator.rbs +57 -8
- data/core/errors.rbs +8 -2
- data/core/exception.rbs +41 -0
- data/core/fiber.rbs +95 -12
- data/core/file.rbs +840 -275
- data/core/file_test.rbs +34 -19
- data/core/float.rbs +40 -96
- data/core/gc.rbs +15 -3
- data/core/hash.rbs +114 -176
- data/core/integer.rbs +85 -145
- data/core/io/buffer.rbs +187 -60
- data/core/io/wait.rbs +28 -16
- data/core/io.rbs +1859 -1389
- data/core/kernel.rbs +525 -961
- data/core/match_data.rbs +306 -142
- data/core/math.rbs +506 -234
- data/core/method.rbs +0 -24
- data/core/module.rbs +111 -18
- data/core/nil_class.rbs +2 -0
- data/core/numeric.rbs +76 -144
- data/core/object.rbs +88 -212
- data/core/proc.rbs +17 -5
- data/core/process.rbs +22 -5
- data/core/ractor.rbs +1 -1
- data/core/random.rbs +20 -3
- data/core/range.rbs +91 -89
- data/core/rational.rbs +2 -3
- data/core/rbs/unnamed/argf.rbs +177 -120
- data/core/rbs/unnamed/env_class.rbs +89 -163
- data/core/rbs/unnamed/random.rbs +36 -12
- data/core/refinement.rbs +8 -0
- data/core/regexp.rbs +462 -272
- data/core/ruby_vm.rbs +210 -0
- data/{stdlib/set/0 → core}/set.rbs +43 -47
- data/core/string.rbs +1403 -1332
- data/core/string_io.rbs +191 -107
- data/core/struct.rbs +67 -63
- data/core/symbol.rbs +187 -201
- data/core/thread.rbs +40 -35
- data/core/time.rbs +902 -826
- data/core/trace_point.rbs +55 -6
- data/core/unbound_method.rbs +48 -24
- data/docs/collection.md +4 -0
- data/docs/syntax.md +55 -0
- data/ext/rbs_extension/constants.c +16 -2
- data/ext/rbs_extension/constants.h +8 -1
- data/ext/rbs_extension/extconf.rb +1 -1
- data/ext/rbs_extension/lexer.c +834 -777
- data/ext/rbs_extension/lexer.h +3 -1
- data/ext/rbs_extension/lexer.re +3 -1
- data/ext/rbs_extension/lexstate.c +4 -2
- data/ext/rbs_extension/parser.c +262 -43
- data/ext/rbs_extension/ruby_objs.c +56 -2
- data/ext/rbs_extension/ruby_objs.h +7 -1
- data/lib/rbs/annotate/rdoc_annotator.rb +1 -1
- data/lib/rbs/ast/declarations.rb +49 -2
- data/lib/rbs/ast/directives.rb +39 -0
- data/lib/rbs/cli.rb +38 -19
- data/lib/rbs/collection/cleaner.rb +8 -1
- data/lib/rbs/collection/config/lockfile.rb +3 -1
- data/lib/rbs/collection/config/lockfile_generator.rb +37 -30
- data/lib/rbs/collection/config.rb +3 -3
- data/lib/rbs/collection/sources/git.rb +10 -3
- data/lib/rbs/collection/sources/local.rb +79 -0
- data/lib/rbs/collection/sources.rb +8 -1
- data/lib/rbs/definition_builder/ancestor_builder.rb +24 -8
- data/lib/rbs/definition_builder.rb +8 -8
- data/lib/rbs/environment/use_map.rb +77 -0
- data/lib/rbs/environment.rb +358 -88
- data/lib/rbs/environment_loader.rb +12 -9
- data/lib/rbs/environment_walker.rb +1 -1
- data/lib/rbs/errors.rb +52 -37
- data/lib/rbs/locator.rb +27 -8
- data/lib/rbs/parser_aux.rb +8 -6
- data/lib/rbs/resolver/constant_resolver.rb +23 -7
- data/lib/rbs/resolver/type_name_resolver.rb +2 -1
- data/lib/rbs/sorter.rb +5 -5
- data/lib/rbs/test/setup.rb +1 -1
- data/lib/rbs/type_alias_dependency.rb +1 -1
- data/lib/rbs/type_alias_regularity.rb +3 -3
- data/lib/rbs/validator.rb +23 -2
- data/lib/rbs/variance_calculator.rb +2 -2
- data/lib/rbs/version.rb +1 -1
- data/lib/rbs/writer.rb +28 -2
- data/lib/rbs.rb +2 -2
- data/lib/rdoc_plugin/parser.rb +2 -2
- data/rbs.gemspec +1 -1
- data/sig/ancestor_graph.rbs +22 -2
- data/sig/collection/config/lockfile_generator.rbs +8 -10
- data/sig/collection/config.rbs +1 -1
- data/sig/collection/sources.rbs +44 -9
- data/sig/constant.rbs +1 -1
- data/sig/declarations.rbs +36 -3
- data/sig/definition.rbs +1 -1
- data/sig/definition_builder.rbs +0 -1
- data/sig/directives.rbs +61 -0
- data/sig/environment.rbs +150 -29
- data/sig/environment_loader.rbs +1 -1
- data/sig/errors.rbs +22 -1
- data/sig/locator.rbs +14 -2
- data/sig/parser.rbs +8 -15
- data/sig/resolver/constant_resolver.rbs +1 -2
- data/sig/shims/{abstract_syntax_tree.rbs → _abstract_syntax_tree.rbs} +0 -0
- data/sig/shims/bundler.rbs +18 -0
- data/sig/shims/rubygems.rbs +6 -0
- data/sig/use_map.rbs +35 -0
- data/sig/validator.rbs +12 -5
- data/sig/writer.rbs +4 -2
- data/stdlib/bigdecimal/0/big_decimal.rbs +16 -13
- data/stdlib/cgi/0/core.rbs +16 -0
- data/stdlib/coverage/0/coverage.rbs +50 -8
- data/stdlib/csv/0/csv.rbs +1 -1
- data/stdlib/date/0/date.rbs +856 -726
- data/stdlib/date/0/date_time.rbs +83 -210
- data/stdlib/erb/0/erb.rbs +13 -36
- data/stdlib/etc/0/etc.rbs +127 -20
- data/stdlib/fileutils/0/fileutils.rbs +1290 -381
- data/stdlib/logger/0/logger.rbs +466 -316
- data/stdlib/net-http/0/net-http.rbs +2211 -534
- data/stdlib/nkf/0/nkf.rbs +5 -5
- data/stdlib/objspace/0/objspace.rbs +31 -14
- data/stdlib/openssl/0/openssl.rbs +11 -7
- data/stdlib/optparse/0/optparse.rbs +20 -17
- data/stdlib/pathname/0/pathname.rbs +21 -4
- data/stdlib/pstore/0/pstore.rbs +378 -154
- data/stdlib/pty/0/pty.rbs +24 -8
- data/stdlib/ripper/0/ripper.rbs +1650 -0
- data/stdlib/socket/0/addrinfo.rbs +9 -15
- data/stdlib/socket/0/socket.rbs +36 -3
- data/stdlib/strscan/0/string_scanner.rbs +7 -5
- data/stdlib/tempfile/0/tempfile.rbs +104 -44
- data/stdlib/time/0/time.rbs +2 -2
- data/stdlib/uri/0/file.rbs +5 -0
- data/stdlib/uri/0/generic.rbs +2 -2
- data/stdlib/yaml/0/yaml.rbs +2 -2
- data/stdlib/zlib/0/zlib.rbs +1 -1
- metadata +13 -13
- data/core/deprecated.rbs +0 -9
- data/lib/rbs/constant_table.rb +0 -167
- data/lib/rbs/type_name_resolver.rb +0 -67
- data/sig/constant_table.rbs +0 -30
- data/sig/shims/ripper.rbs +0 -8
- data/sig/type_name_resolver.rbs +0 -26
- data/steep/Gemfile +0 -3
- data/steep/Gemfile.lock +0 -61
data/sig/parser.rbs
CHANGED
|
@@ -6,15 +6,13 @@ module RBS
|
|
|
6
6
|
# If no token is left in the input, it returns `nil`.
|
|
7
7
|
#
|
|
8
8
|
# ```ruby
|
|
9
|
+
# RBS::Parser.parse_method_type("() -> void") # => `() -> void`
|
|
9
10
|
# RBS::Parser.parse_method_type("() -> void", range: 0...) # => `() -> void`
|
|
10
11
|
# RBS::Parser.parse_method_type("() -> void () -> String", range: 11...) # => `() -> String`
|
|
11
12
|
# RBS::Parser.parse_method_type("() -> void () -> String", range: 23...) # => nil
|
|
12
13
|
# ```
|
|
13
14
|
#
|
|
14
|
-
|
|
15
|
-
#
|
|
16
|
-
def self.parse_method_type: (Buffer | String, range: Range[Integer?], ?variables: Array[Symbol]) -> MethodType?
|
|
17
|
-
| (Buffer | String, ?line: top, ?column: top, ?variables: Array[Symbol]) -> MethodType
|
|
15
|
+
def self.parse_method_type: (Buffer | String, ?range: Range[Integer?], ?variables: Array[Symbol]) -> MethodType?
|
|
18
16
|
|
|
19
17
|
# Parse a type and return it
|
|
20
18
|
#
|
|
@@ -22,22 +20,17 @@ module RBS
|
|
|
22
20
|
# If no token is left in the input, it returns `nil`.
|
|
23
21
|
#
|
|
24
22
|
# ```ruby
|
|
23
|
+
# RBS::Parser.parse_type("String") # => `String`
|
|
25
24
|
# RBS::Parser.parse_type("String", range: 0...) # => `String`
|
|
26
25
|
# RBS::Parser.parse_type("String Integer", pos: 7...) # => `Integer`
|
|
27
26
|
# RBS::Parser.parse_type("String Integer", pos: 14...) # => nil
|
|
28
27
|
# ```
|
|
29
28
|
#
|
|
30
|
-
|
|
31
|
-
#
|
|
32
|
-
def self.parse_type: (Buffer | String, range: Range[Integer?], ?variables: Array[Symbol]) -> Types::t?
|
|
33
|
-
| (Buffer | String, ?line: top, ?column: top, ?variables: Array[Symbol]) -> Types::t
|
|
29
|
+
def self.parse_type: (Buffer | String, ?range: Range[Integer?], ?variables: Array[Symbol]) -> Types::t?
|
|
34
30
|
|
|
35
31
|
# Parse whole RBS file and return an array of declarations
|
|
36
32
|
#
|
|
37
|
-
|
|
38
|
-
#
|
|
39
|
-
def self.parse_signature: (Buffer | String) -> Array[AST::Declarations::t]
|
|
40
|
-
| (Buffer | String, ?line: top, ?column: top) -> Array[AST::Declarations::t]
|
|
33
|
+
def self.parse_signature: (Buffer | String) -> [Buffer, Array[AST::Directives::t], Array[AST::Declarations::t]]
|
|
41
34
|
|
|
42
35
|
KEYWORDS: Hash[String, bot]
|
|
43
36
|
|
|
@@ -45,11 +38,11 @@ module RBS
|
|
|
45
38
|
|
|
46
39
|
def self.buffer: (String | Buffer source) -> Buffer
|
|
47
40
|
|
|
48
|
-
def self._parse_type: (Buffer, Integer start_pos, Integer end_pos, Array[Symbol] variables
|
|
41
|
+
def self._parse_type: (Buffer, Integer start_pos, Integer end_pos, Array[Symbol] variables) -> Types::t?
|
|
49
42
|
|
|
50
|
-
def self._parse_method_type: (Buffer, Integer start_pos, Integer end_pos, Array[Symbol] variables
|
|
43
|
+
def self._parse_method_type: (Buffer, Integer start_pos, Integer end_pos, Array[Symbol] variables) -> MethodType?
|
|
51
44
|
|
|
52
|
-
def self._parse_signature: (Buffer, Integer end_pos) -> Array[AST::Declarations::t]
|
|
45
|
+
def self._parse_signature: (Buffer, Integer end_pos) -> [Array[AST::Directives::t], Array[AST::Declarations::t]]
|
|
53
46
|
|
|
54
47
|
class LocatedValue
|
|
55
48
|
end
|
|
@@ -37,7 +37,7 @@ module RBS
|
|
|
37
37
|
|
|
38
38
|
def constant_of_module: (TypeName name, Environment::ClassEntry | Environment::ModuleEntry) -> Constant
|
|
39
39
|
|
|
40
|
-
def constant_of_constant: (TypeName name, Environment::
|
|
40
|
+
def constant_of_constant: (TypeName name, Environment::ConstantEntry) -> Constant
|
|
41
41
|
end
|
|
42
42
|
|
|
43
43
|
attr_reader builder: DefinitionBuilder
|
|
@@ -65,7 +65,6 @@ module RBS
|
|
|
65
65
|
# ^ <- constant_name
|
|
66
66
|
# ```
|
|
67
67
|
#
|
|
68
|
-
# Find the
|
|
69
68
|
def resolve_child: (TypeName module_name, Symbol constant_name) -> Constant?
|
|
70
69
|
|
|
71
70
|
# Returns the table of all constants accessible with `::` (colon2) operator.
|
|
File without changes
|
data/sig/shims/bundler.rbs
CHANGED
|
@@ -1,13 +1,31 @@
|
|
|
1
1
|
module Bundler
|
|
2
2
|
class LockfileParser
|
|
3
3
|
def initialize: (String) -> void
|
|
4
|
+
|
|
4
5
|
def specs: () -> Array[LazySpecification]
|
|
5
6
|
end
|
|
6
7
|
|
|
7
8
|
class LazySpecification
|
|
8
9
|
def name: () -> String
|
|
10
|
+
|
|
9
11
|
def version: () -> String
|
|
12
|
+
|
|
13
|
+
def dependencies: () -> Array[Gem::Dependency]
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
class Dependency < Gem::Dependency
|
|
17
|
+
attr_reader autorequire: Array[String]?
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
class Definition
|
|
21
|
+
def lockfile: () -> Pathname
|
|
22
|
+
|
|
23
|
+
def locked_gems: () -> LockfileParser
|
|
24
|
+
|
|
25
|
+
def dependencies: () -> Array[Dependency]
|
|
10
26
|
end
|
|
11
27
|
|
|
12
28
|
def self.default_lockfile: () -> Pathname
|
|
29
|
+
|
|
30
|
+
def self.definition: () -> Definition
|
|
13
31
|
end
|
data/sig/shims/rubygems.rbs
CHANGED
data/sig/use_map.rbs
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
module RBS
|
|
2
|
+
class Environment
|
|
3
|
+
# ```rb
|
|
4
|
+
# map = UseMap.build(environment)
|
|
5
|
+
#
|
|
6
|
+
# map.resolve?(TypeName("TN")) # => nil or resolved type name
|
|
7
|
+
# ```
|
|
8
|
+
#
|
|
9
|
+
class UseMap
|
|
10
|
+
class Table
|
|
11
|
+
attr_reader known_types: Set[TypeName]
|
|
12
|
+
|
|
13
|
+
attr_reader children: Hash[Namespace, Set[TypeName]]
|
|
14
|
+
|
|
15
|
+
def initialize: () -> void
|
|
16
|
+
|
|
17
|
+
def compute_children: () -> self
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
attr_reader use_dirs: Array[AST::Directives::Use]
|
|
21
|
+
|
|
22
|
+
@map: Hash[Symbol, TypeName]
|
|
23
|
+
|
|
24
|
+
@table: Table
|
|
25
|
+
|
|
26
|
+
def initialize: (table: Table) -> void
|
|
27
|
+
|
|
28
|
+
def resolve?: (TypeName) -> TypeName?
|
|
29
|
+
|
|
30
|
+
def resolve: (TypeName) -> TypeName
|
|
31
|
+
|
|
32
|
+
def build_map: (AST::Directives::Use::clause) -> self
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
data/sig/validator.rbs
CHANGED
|
@@ -2,7 +2,7 @@ module RBS
|
|
|
2
2
|
class Validator
|
|
3
3
|
attr_reader env: Environment
|
|
4
4
|
|
|
5
|
-
attr_reader resolver: TypeNameResolver
|
|
5
|
+
attr_reader resolver: Resolver::TypeNameResolver
|
|
6
6
|
|
|
7
7
|
attr_reader definition_builder: DefinitionBuilder
|
|
8
8
|
|
|
@@ -10,11 +10,11 @@ module RBS
|
|
|
10
10
|
|
|
11
11
|
attr_reader type_alias_regularity: TypeAliasRegularity
|
|
12
12
|
|
|
13
|
-
def initialize: (env: Environment, resolver: TypeNameResolver) -> void
|
|
13
|
+
def initialize: (env: Environment, resolver: Resolver::TypeNameResolver) -> void
|
|
14
14
|
|
|
15
15
|
# Validates the presence of type names and type application arity match.
|
|
16
16
|
#
|
|
17
|
-
def validate_type: (Types::t, context:
|
|
17
|
+
def validate_type: (Types::t, context: Resolver::context) -> void
|
|
18
18
|
|
|
19
19
|
# Validates type alias definition:
|
|
20
20
|
#
|
|
@@ -25,7 +25,7 @@ module RBS
|
|
|
25
25
|
#
|
|
26
26
|
# It yields the rhs type if block is given, so that you can validate the rhs type.
|
|
27
27
|
#
|
|
28
|
-
def validate_type_alias: (entry: Environment::
|
|
28
|
+
def validate_type_alias: (entry: Environment::TypeAliasEntry) ?{ (Types::t rhs_type) -> void } -> void
|
|
29
29
|
|
|
30
30
|
# Validates the type parameters in generic methods.
|
|
31
31
|
#
|
|
@@ -42,11 +42,18 @@ module RBS
|
|
|
42
42
|
#
|
|
43
43
|
def validate_type_params: (Array[AST::TypeParam] params, type_name: TypeName, ?method_name: Symbol?, location: Location[untyped, untyped]?) -> void
|
|
44
44
|
|
|
45
|
+
# Validates class alias declaration
|
|
46
|
+
#
|
|
47
|
+
# - The right hand side can be normalized
|
|
48
|
+
# - No mixing alias declaration between class and modules
|
|
49
|
+
#
|
|
50
|
+
def validate_class_alias: (entry: Environment::ClassAliasEntry | Environment::ModuleAliasEntry) -> void
|
|
51
|
+
|
|
45
52
|
private
|
|
46
53
|
|
|
47
54
|
# Resolves relative type names to absolute type names in given context.
|
|
48
55
|
# Yields the type when the type name resolution using `#resolver` fails.
|
|
49
56
|
#
|
|
50
|
-
def absolute_type: (Types::t, context:
|
|
57
|
+
def absolute_type: (Types::t, context: Resolver::context) { (Types::t) -> TypeName } -> Types::t
|
|
51
58
|
end
|
|
52
59
|
end
|
data/sig/writer.rbs
CHANGED
|
@@ -21,7 +21,7 @@ module RBS
|
|
|
21
21
|
# Output the array of declarations.
|
|
22
22
|
# It automatically inserts empty lines between the declarations.
|
|
23
23
|
#
|
|
24
|
-
def write: (Array[AST::Declarations::t]) -> void
|
|
24
|
+
def write: (Array[AST::Declarations::t | AST::Directives::t]) -> void
|
|
25
25
|
|
|
26
26
|
def preserve?: () -> bool
|
|
27
27
|
|
|
@@ -96,6 +96,8 @@ module RBS
|
|
|
96
96
|
|
|
97
97
|
def format_annotation: (AST::Annotation) -> String
|
|
98
98
|
|
|
99
|
+
def write_directive: (AST::Directives::t) -> void
|
|
100
|
+
|
|
99
101
|
def write_annotation: (Array[AST::Annotation]) -> void
|
|
100
102
|
|
|
101
103
|
def write_comment: (AST::Comment?) -> void
|
|
@@ -108,7 +110,7 @@ module RBS
|
|
|
108
110
|
|
|
109
111
|
def name_and_args: (TypeName, Array[Types::t]) -> String?
|
|
110
112
|
|
|
111
|
-
def write_alias: (AST::Declarations::
|
|
113
|
+
def write_alias: (AST::Declarations::TypeAlias) -> void
|
|
112
114
|
|
|
113
115
|
def method_name: (Symbol) -> String
|
|
114
116
|
|
|
@@ -145,12 +145,8 @@ class BigDecimal < Numeric
|
|
|
145
145
|
|
|
146
146
|
# <!--
|
|
147
147
|
# rdoc-file=ext/bigdecimal/bigdecimal.c
|
|
148
|
-
# -
|
|
148
|
+
# - double_fig()
|
|
149
149
|
# -->
|
|
150
|
-
# Returns the number of digits a Float object is allowed to have; the result is
|
|
151
|
-
# system-dependent:
|
|
152
|
-
#
|
|
153
|
-
# BigDecimal.double_fig # => 16
|
|
154
150
|
#
|
|
155
151
|
def self.double_fig: () -> Integer
|
|
156
152
|
|
|
@@ -1007,7 +1003,9 @@ class BigDecimal < Numeric
|
|
|
1007
1003
|
# -->
|
|
1008
1004
|
# Returns the sign of the value.
|
|
1009
1005
|
#
|
|
1010
|
-
# Returns a positive value if > 0, a negative value if < 0
|
|
1006
|
+
# Returns a positive value if > 0, a negative value if < 0. It behaves the same
|
|
1007
|
+
# with zeros - it returns a positive value for a positive zero (BigDecimal('0'))
|
|
1008
|
+
# and a negative value for a negative zero (BigDecimal('-0')).
|
|
1011
1009
|
#
|
|
1012
1010
|
# The specific value returned indicates the type and sign of the BigDecimal, as
|
|
1013
1011
|
# follows:
|
|
@@ -1348,12 +1346,15 @@ module Kernel
|
|
|
1348
1346
|
# - BigDecimal(value, exception: true) -> bigdecimal
|
|
1349
1347
|
# - BigDecimal(value, ndigits, exception: true) -> bigdecimal
|
|
1350
1348
|
# -->
|
|
1351
|
-
# Returns the
|
|
1352
|
-
#
|
|
1349
|
+
# Returns the BigDecimal converted from `value` with a precision of `ndigits`
|
|
1350
|
+
# decimal digits.
|
|
1351
|
+
#
|
|
1352
|
+
# When `ndigits` is less than the number of significant digits in the value, the
|
|
1353
|
+
# result is rounded to that number of digits, according to the current rounding
|
|
1354
|
+
# mode; see BigDecimal.mode.
|
|
1353
1355
|
#
|
|
1354
|
-
#
|
|
1355
|
-
#
|
|
1356
|
-
# according to the current rounding mode; see BigDecimal.mode.
|
|
1356
|
+
# When `ndigits` is 0, the number of digits to correctly represent a float
|
|
1357
|
+
# number is determined automatically.
|
|
1357
1358
|
#
|
|
1358
1359
|
# Returns `value` converted to a BigDecimal, depending on the type of `value`:
|
|
1359
1360
|
#
|
|
@@ -1486,13 +1487,15 @@ class Float
|
|
|
1486
1487
|
# - float.to_d(precision) -> bigdecimal
|
|
1487
1488
|
# -->
|
|
1488
1489
|
# Returns the value of `float` as a BigDecimal. The `precision` parameter is
|
|
1489
|
-
# used to determine the number of significant digits for the result
|
|
1490
|
-
# is
|
|
1490
|
+
# used to determine the number of significant digits for the result. When
|
|
1491
|
+
# `precision` is set to `0`, the number of digits to represent the float being
|
|
1492
|
+
# converted is determined automatically. The default `precision` is `0`.
|
|
1491
1493
|
#
|
|
1492
1494
|
# require 'bigdecimal'
|
|
1493
1495
|
# require 'bigdecimal/util'
|
|
1494
1496
|
#
|
|
1495
1497
|
# 0.5.to_d # => 0.5e0
|
|
1498
|
+
# 1.234.to_d # => 0.1234e1
|
|
1496
1499
|
# 1.234.to_d(2) # => 0.12e1
|
|
1497
1500
|
#
|
|
1498
1501
|
# See also BigDecimal::new.
|
data/stdlib/cgi/0/core.rbs
CHANGED
|
@@ -882,6 +882,14 @@ class CGI
|
|
|
882
882
|
#
|
|
883
883
|
def escapeHTML: (string str) -> String
|
|
884
884
|
|
|
885
|
+
# <!--
|
|
886
|
+
# rdoc-file=ext/cgi/escape/escape.c
|
|
887
|
+
# - CGI.escapeURIComponent(string) -> string
|
|
888
|
+
# -->
|
|
889
|
+
# Returns URL-escaped string following RFC 3986.
|
|
890
|
+
#
|
|
891
|
+
def escapeURIComponent: (string) -> String
|
|
892
|
+
|
|
885
893
|
# <!--
|
|
886
894
|
# rdoc-file=ext/cgi/escape/escape.c
|
|
887
895
|
# - CGI.unescape(string, encoding=@@accept_charset) -> string
|
|
@@ -897,6 +905,14 @@ class CGI
|
|
|
897
905
|
# Returns HTML-unescaped string.
|
|
898
906
|
#
|
|
899
907
|
def unescapeHTML: (string str) -> String
|
|
908
|
+
|
|
909
|
+
# <!--
|
|
910
|
+
# rdoc-file=ext/cgi/escape/escape.c
|
|
911
|
+
# - CGI.unescapeURIComponent(string, encoding=@@accept_charset) -> string
|
|
912
|
+
# -->
|
|
913
|
+
# Returns URL-unescaped string following RFC 3986.
|
|
914
|
+
#
|
|
915
|
+
def unescapeURIComponent: (string) -> String
|
|
900
916
|
end
|
|
901
917
|
|
|
902
918
|
# <!-- rdoc-file=lib/cgi/core.rb -->
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
# experimental, so these APIs may be changed in future.
|
|
4
4
|
#
|
|
5
5
|
# Caveat: Currently, only process-global coverage measurement is supported. You
|
|
6
|
-
# cannot measure per-thread
|
|
6
|
+
# cannot measure per-thread coverage.
|
|
7
7
|
#
|
|
8
8
|
# # Usage
|
|
9
9
|
#
|
|
@@ -153,7 +153,7 @@ module Coverage
|
|
|
153
153
|
# - line_stub(file)
|
|
154
154
|
# -->
|
|
155
155
|
#
|
|
156
|
-
def self.line_stub: () -> Array[Integer?]
|
|
156
|
+
def self.line_stub: (String) -> Array[Integer?]
|
|
157
157
|
|
|
158
158
|
# <!--
|
|
159
159
|
# rdoc-file=ext/coverage/coverage.c
|
|
@@ -190,15 +190,41 @@ module Coverage
|
|
|
190
190
|
|
|
191
191
|
# <!--
|
|
192
192
|
# rdoc-file=ext/coverage/coverage.c
|
|
193
|
-
# - Coverage.
|
|
194
|
-
# - Coverage.
|
|
195
|
-
# - Coverage.
|
|
196
|
-
# - Coverage.
|
|
193
|
+
# - Coverage.setup => nil
|
|
194
|
+
# - Coverage.setup(:all) => nil
|
|
195
|
+
# - Coverage.setup(lines: bool, branches: bool, methods: bool, eval: bool) => nil
|
|
196
|
+
# - Coverage.setup(oneshot_lines: true) => nil
|
|
197
|
+
# -->
|
|
198
|
+
# Set up the coverage measurement.
|
|
199
|
+
#
|
|
200
|
+
# Note that this method does not start the measurement itself. Use
|
|
201
|
+
# Coverage.resume to start the measurement.
|
|
202
|
+
#
|
|
203
|
+
# You may want to use Coverage.start to setup and then start the measurement.
|
|
204
|
+
#
|
|
205
|
+
def self.setup: (?lines: bool, ?branches: bool, ?methods: bool, ?eval: bool) -> nil
|
|
206
|
+
| (oneshot_lines: bool, ?branches: bool, ?methods: bool, ?eval: bool) -> nil
|
|
207
|
+
| (:all) -> nil
|
|
208
|
+
|
|
209
|
+
# <!--
|
|
210
|
+
# rdoc-file=ext/coverage/coverage.c
|
|
211
|
+
# - Coverage.start => nil
|
|
212
|
+
# - Coverage.start(:all) => nil
|
|
213
|
+
# - Coverage.start(lines: bool, branches: bool, methods: bool, eval: bool) => nil
|
|
214
|
+
# - Coverage.start(oneshot_lines: true) => nil
|
|
197
215
|
# -->
|
|
198
216
|
# Enables the coverage measurement. See the documentation of Coverage class in
|
|
199
217
|
# detail. This is equivalent to Coverage.setup and Coverage.resume.
|
|
200
218
|
#
|
|
201
|
-
|
|
219
|
+
alias self.start self.setup
|
|
220
|
+
|
|
221
|
+
# <!--
|
|
222
|
+
# rdoc-file=ext/coverage/coverage.c
|
|
223
|
+
# - Coverage.state => :idle, :suspended, :running
|
|
224
|
+
# -->
|
|
225
|
+
# Returns the state of the coverage measurement.
|
|
226
|
+
#
|
|
227
|
+
def self.state: () -> (:idle | :suspended | :running)
|
|
202
228
|
|
|
203
229
|
# <!--
|
|
204
230
|
# rdoc-file=ext/coverage/coverage.c
|
|
@@ -207,12 +233,28 @@ module Coverage
|
|
|
207
233
|
# Start/resume the coverage measurement.
|
|
208
234
|
#
|
|
209
235
|
# Caveat: Currently, only process-global coverage measurement is supported. You
|
|
210
|
-
# cannot measure per-thread
|
|
236
|
+
# cannot measure per-thread coverage. If your process has multiple thread, using
|
|
211
237
|
# Coverage.resume/suspend to capture code coverage executed from only a limited
|
|
212
238
|
# code block, may yield misleading results.
|
|
213
239
|
#
|
|
214
240
|
def self.resume: () -> nil
|
|
215
241
|
|
|
242
|
+
# <!--
|
|
243
|
+
# rdoc-file=ext/coverage/coverage.c
|
|
244
|
+
# - Coverage.supported?(mode) -> true or false
|
|
245
|
+
# -->
|
|
246
|
+
# Returns true if coverage measurement is supported for the given mode.
|
|
247
|
+
#
|
|
248
|
+
# The mode should be one of the following symbols: `:lines`, `:branches`,
|
|
249
|
+
# `:methods`, `:eval`.
|
|
250
|
+
#
|
|
251
|
+
# Example:
|
|
252
|
+
#
|
|
253
|
+
# Coverage.supported?(:lines) #=> true
|
|
254
|
+
# Coverage.supported?(:all) #=> false
|
|
255
|
+
#
|
|
256
|
+
def self.supported?: (Symbol) -> bool
|
|
257
|
+
|
|
216
258
|
# <!--
|
|
217
259
|
# rdoc-file=ext/coverage/coverage.c
|
|
218
260
|
# - Coverage.suspend => nil
|
data/stdlib/csv/0/csv.rbs
CHANGED
|
@@ -2488,7 +2488,7 @@ class CSV::Row < Object
|
|
|
2488
2488
|
# `index_or_header` and `specifiers`.
|
|
2489
2489
|
#
|
|
2490
2490
|
# The nested objects may be instances of various classes. See [Dig
|
|
2491
|
-
# Methods](
|
|
2491
|
+
# Methods](rdoc-ref:dig_methods.rdoc).
|
|
2492
2492
|
#
|
|
2493
2493
|
# Examples:
|
|
2494
2494
|
# source = "Name,Value\nfoo,0\nbar,1\nbaz,2\n"
|