rbs 4.1.0.pre.2-java
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 +7 -0
- data/.clang-format +75 -0
- data/.clangd +2 -0
- data/.github/dependabot.yml +24 -0
- data/.github/workflows/bundle-update.yml +63 -0
- data/.github/workflows/c-check.yml +61 -0
- data/.github/workflows/comments.yml +37 -0
- data/.github/workflows/dependabot.yml +30 -0
- data/.github/workflows/jruby.yml +67 -0
- data/.github/workflows/milestone.yml +83 -0
- data/.github/workflows/ruby.yml +158 -0
- data/.github/workflows/rust.yml +184 -0
- data/.github/workflows/truffleruby.yml +54 -0
- data/.github/workflows/typecheck.yml +39 -0
- data/.github/workflows/wasm.yml +53 -0
- data/.github/workflows/windows.yml +49 -0
- data/.gitignore +38 -0
- data/.rubocop.yml +72 -0
- data/BSDL +22 -0
- data/CHANGELOG.md +2292 -0
- data/COPYING +56 -0
- data/README.md +240 -0
- data/Rakefile +869 -0
- data/Steepfile +53 -0
- data/config.yml +913 -0
- data/core/array.rbs +4142 -0
- data/core/basic_object.rbs +376 -0
- data/core/binding.rbs +148 -0
- data/core/builtin.rbs +278 -0
- data/core/class.rbs +223 -0
- data/core/comparable.rbs +192 -0
- data/core/complex.rbs +812 -0
- data/core/constants.rbs +96 -0
- data/core/data.rbs +415 -0
- data/core/dir.rbs +993 -0
- data/core/encoding.rbs +1368 -0
- data/core/enumerable.rbs +2506 -0
- data/core/enumerator/arithmetic_sequence.rbs +70 -0
- data/core/enumerator/product.rbs +92 -0
- data/core/enumerator.rbs +705 -0
- data/core/env.rbs +6 -0
- data/core/errno.rbs +682 -0
- data/core/errors.rbs +789 -0
- data/core/exception.rbs +485 -0
- data/core/false_class.rbs +82 -0
- data/core/fiber.rbs +570 -0
- data/core/fiber_error.rbs +11 -0
- data/core/file.rbs +2045 -0
- data/core/file_constants.rbs +463 -0
- data/core/file_stat.rbs +534 -0
- data/core/file_test.rbs +331 -0
- data/core/float.rbs +1316 -0
- data/core/gc.rbs +788 -0
- data/core/global_variables.rbs +184 -0
- data/core/hash.rbs +2183 -0
- data/core/integer.rbs +1374 -0
- data/core/io/buffer.rbs +995 -0
- data/core/io/wait.rbs +48 -0
- data/core/io.rbs +3472 -0
- data/core/kernel.rbs +3172 -0
- data/core/marshal.rbs +207 -0
- data/core/match_data.rbs +637 -0
- data/core/math.rbs +770 -0
- data/core/method.rbs +422 -0
- data/core/module.rbs +1856 -0
- data/core/nil_class.rbs +210 -0
- data/core/numeric.rbs +832 -0
- data/core/object.rbs +108 -0
- data/core/object_space/weak_key_map.rbs +166 -0
- data/core/object_space.rbs +197 -0
- data/core/pathname.rbs +1322 -0
- data/core/proc.rbs +905 -0
- data/core/process.rbs +2316 -0
- data/core/ractor.rbs +924 -0
- data/core/random.rbs +255 -0
- data/core/range.rbs +1209 -0
- data/core/rational.rbs +502 -0
- data/core/rb_config.rbs +88 -0
- data/core/rbs/ops.rbs +154 -0
- data/core/rbs/unnamed/argf.rbs +1236 -0
- data/core/rbs/unnamed/env_class.rbs +1214 -0
- data/core/rbs/unnamed/main_class.rbs +123 -0
- data/core/rbs/unnamed/random.rbs +186 -0
- data/core/refinement.rbs +59 -0
- data/core/regexp.rbs +1974 -0
- data/core/ruby.rbs +53 -0
- data/core/ruby_vm.rbs +809 -0
- data/core/rubygems/basic_specification.rbs +6 -0
- data/core/rubygems/config_file.rbs +38 -0
- data/core/rubygems/dependency_installer.rbs +6 -0
- data/core/rubygems/errors.rbs +109 -0
- data/core/rubygems/installer.rbs +15 -0
- data/core/rubygems/path_support.rbs +6 -0
- data/core/rubygems/platform.rbs +7 -0
- data/core/rubygems/request_set.rbs +49 -0
- data/core/rubygems/requirement.rbs +148 -0
- data/core/rubygems/rubygems.rbs +1105 -0
- data/core/rubygems/source_list.rbs +15 -0
- data/core/rubygems/specification.rbs +23 -0
- data/core/rubygems/stream_ui.rbs +5 -0
- data/core/rubygems/uninstaller.rbs +10 -0
- data/core/rubygems/version.rbs +293 -0
- data/core/set.rbs +751 -0
- data/core/signal.rbs +110 -0
- data/core/string.rbs +5532 -0
- data/core/struct.rbs +668 -0
- data/core/symbol.rbs +482 -0
- data/core/thread.rbs +1826 -0
- data/core/thread_group.rbs +79 -0
- data/core/time.rbs +1793 -0
- data/core/trace_point.rbs +483 -0
- data/core/true_class.rbs +98 -0
- data/core/unbound_method.rbs +337 -0
- data/core/warning.rbs +87 -0
- data/docs/CONTRIBUTING.md +107 -0
- data/docs/aliases.md +79 -0
- data/docs/architecture.md +110 -0
- data/docs/collection.md +192 -0
- data/docs/config.md +171 -0
- data/docs/data_and_struct.md +86 -0
- data/docs/encoding.md +56 -0
- data/docs/gem.md +56 -0
- data/docs/inline.md +634 -0
- data/docs/rbs_by_example.md +309 -0
- data/docs/repo.md +125 -0
- data/docs/rust.md +96 -0
- data/docs/sigs.md +167 -0
- data/docs/stdlib.md +147 -0
- data/docs/syntax.md +940 -0
- data/docs/tools.md +17 -0
- data/docs/type_fingerprint.md +21 -0
- data/docs/wasm_serialization.md +80 -0
- data/exe/rbs +7 -0
- data/ext/rbs_extension/ast_translation.c +1855 -0
- data/ext/rbs_extension/ast_translation.h +41 -0
- data/ext/rbs_extension/class_constants.c +187 -0
- data/ext/rbs_extension/class_constants.h +104 -0
- data/ext/rbs_extension/compat.h +10 -0
- data/ext/rbs_extension/extconf.rb +40 -0
- data/ext/rbs_extension/legacy_location.c +294 -0
- data/ext/rbs_extension/legacy_location.h +82 -0
- data/ext/rbs_extension/main.c +613 -0
- data/ext/rbs_extension/rbs_extension.h +16 -0
- data/ext/rbs_extension/rbs_string_bridging.c +9 -0
- data/ext/rbs_extension/rbs_string_bridging.h +24 -0
- data/goodcheck.yml +91 -0
- data/include/rbs/ast.h +1047 -0
- data/include/rbs/defines.h +99 -0
- data/include/rbs/lexer.h +207 -0
- data/include/rbs/location.h +40 -0
- data/include/rbs/parser.h +153 -0
- data/include/rbs/serialize.h +39 -0
- data/include/rbs/string.h +47 -0
- data/include/rbs/util/rbs_allocator.h +59 -0
- data/include/rbs/util/rbs_assert.h +20 -0
- data/include/rbs/util/rbs_buffer.h +83 -0
- data/include/rbs/util/rbs_constant_pool.h +155 -0
- data/include/rbs/util/rbs_encoding.h +282 -0
- data/include/rbs/util/rbs_unescape.h +24 -0
- data/include/rbs.h +14 -0
- data/lib/rbs/ancestor_graph.rb +92 -0
- data/lib/rbs/annotate/annotations.rb +199 -0
- data/lib/rbs/annotate/formatter.rb +82 -0
- data/lib/rbs/annotate/rdoc_annotator.rb +398 -0
- data/lib/rbs/annotate/rdoc_source.rb +131 -0
- data/lib/rbs/annotate.rb +8 -0
- data/lib/rbs/ast/annotation.rb +29 -0
- data/lib/rbs/ast/comment.rb +29 -0
- data/lib/rbs/ast/declarations.rb +472 -0
- data/lib/rbs/ast/directives.rb +49 -0
- data/lib/rbs/ast/members.rb +451 -0
- data/lib/rbs/ast/ruby/annotations.rb +451 -0
- data/lib/rbs/ast/ruby/comment_block.rb +247 -0
- data/lib/rbs/ast/ruby/declarations.rb +291 -0
- data/lib/rbs/ast/ruby/helpers/constant_helper.rb +28 -0
- data/lib/rbs/ast/ruby/helpers/location_helper.rb +15 -0
- data/lib/rbs/ast/ruby/members.rb +762 -0
- data/lib/rbs/ast/type_param.rb +235 -0
- data/lib/rbs/ast/visitor.rb +137 -0
- data/lib/rbs/buffer.rb +189 -0
- data/lib/rbs/builtin_names.rb +58 -0
- data/lib/rbs/cli/colored_io.rb +48 -0
- data/lib/rbs/cli/diff.rb +84 -0
- data/lib/rbs/cli/validate.rb +294 -0
- data/lib/rbs/cli.rb +1253 -0
- data/lib/rbs/collection/cleaner.rb +38 -0
- data/lib/rbs/collection/config/lockfile.rb +92 -0
- data/lib/rbs/collection/config/lockfile_generator.rb +269 -0
- data/lib/rbs/collection/config.rb +81 -0
- data/lib/rbs/collection/installer.rb +32 -0
- data/lib/rbs/collection/sources/base.rb +14 -0
- data/lib/rbs/collection/sources/git.rb +265 -0
- data/lib/rbs/collection/sources/local.rb +81 -0
- data/lib/rbs/collection/sources/rubygems.rb +48 -0
- data/lib/rbs/collection/sources/stdlib.rb +50 -0
- data/lib/rbs/collection/sources.rb +38 -0
- data/lib/rbs/collection.rb +16 -0
- data/lib/rbs/constant.rb +28 -0
- data/lib/rbs/definition.rb +415 -0
- data/lib/rbs/definition_builder/ancestor_builder.rb +678 -0
- data/lib/rbs/definition_builder/method_builder.rb +295 -0
- data/lib/rbs/definition_builder.rb +1054 -0
- data/lib/rbs/diff.rb +131 -0
- data/lib/rbs/environment/class_entry.rb +69 -0
- data/lib/rbs/environment/module_entry.rb +66 -0
- data/lib/rbs/environment/use_map.rb +77 -0
- data/lib/rbs/environment.rb +1028 -0
- data/lib/rbs/environment_loader.rb +167 -0
- data/lib/rbs/environment_walker.rb +155 -0
- data/lib/rbs/errors.rb +634 -0
- data/lib/rbs/factory.rb +18 -0
- data/lib/rbs/file_finder.rb +28 -0
- data/lib/rbs/inline_parser/comment_association.rb +117 -0
- data/lib/rbs/inline_parser.rb +568 -0
- data/lib/rbs/location_aux.rb +170 -0
- data/lib/rbs/locator.rb +247 -0
- data/lib/rbs/method_type.rb +145 -0
- data/lib/rbs/namespace.rb +154 -0
- data/lib/rbs/parser/lex_result.rb +15 -0
- data/lib/rbs/parser/token.rb +23 -0
- data/lib/rbs/parser_aux.rb +142 -0
- data/lib/rbs/prototype/helpers.rb +197 -0
- data/lib/rbs/prototype/node_usage.rb +99 -0
- data/lib/rbs/prototype/rb.rb +816 -0
- data/lib/rbs/prototype/rbi.rb +625 -0
- data/lib/rbs/prototype/runtime/helpers.rb +59 -0
- data/lib/rbs/prototype/runtime/reflection.rb +19 -0
- data/lib/rbs/prototype/runtime/value_object_generator.rb +279 -0
- data/lib/rbs/prototype/runtime.rb +680 -0
- data/lib/rbs/repository.rb +127 -0
- data/lib/rbs/resolver/constant_resolver.rb +219 -0
- data/lib/rbs/resolver/type_name_resolver.rb +167 -0
- data/lib/rbs/rewriter.rb +70 -0
- data/lib/rbs/sorter.rb +198 -0
- data/lib/rbs/source.rb +99 -0
- data/lib/rbs/substitution.rb +83 -0
- data/lib/rbs/subtractor.rb +204 -0
- data/lib/rbs/test/errors.rb +80 -0
- data/lib/rbs/test/guaranteed.rb +30 -0
- data/lib/rbs/test/hook.rb +212 -0
- data/lib/rbs/test/observer.rb +19 -0
- data/lib/rbs/test/setup.rb +84 -0
- data/lib/rbs/test/setup_helper.rb +50 -0
- data/lib/rbs/test/tester.rb +167 -0
- data/lib/rbs/test/type_check.rb +457 -0
- data/lib/rbs/test.rb +112 -0
- data/lib/rbs/type_alias_dependency.rb +100 -0
- data/lib/rbs/type_alias_regularity.rb +126 -0
- data/lib/rbs/type_name.rb +122 -0
- data/lib/rbs/types.rb +1604 -0
- data/lib/rbs/unit_test/convertibles.rb +177 -0
- data/lib/rbs/unit_test/spy.rb +138 -0
- data/lib/rbs/unit_test/type_assertions.rb +383 -0
- data/lib/rbs/unit_test/with_aliases.rb +145 -0
- data/lib/rbs/unit_test.rb +6 -0
- data/lib/rbs/validator.rb +186 -0
- data/lib/rbs/variance_calculator.rb +189 -0
- data/lib/rbs/vendorer.rb +71 -0
- data/lib/rbs/version.rb +5 -0
- data/lib/rbs/wasm/deserializer.rb +213 -0
- data/lib/rbs/wasm/jars/asm-analysis.jar +0 -0
- data/lib/rbs/wasm/jars/asm-commons.jar +0 -0
- data/lib/rbs/wasm/jars/asm-tree.jar +0 -0
- data/lib/rbs/wasm/jars/asm-util.jar +0 -0
- data/lib/rbs/wasm/jars/asm.jar +0 -0
- data/lib/rbs/wasm/jars/compiler.jar +0 -0
- data/lib/rbs/wasm/jars/log.jar +0 -0
- data/lib/rbs/wasm/jars/runtime.jar +0 -0
- data/lib/rbs/wasm/jars/wasi.jar +0 -0
- data/lib/rbs/wasm/jars/wasm.jar +0 -0
- data/lib/rbs/wasm/location.rb +61 -0
- data/lib/rbs/wasm/parser.rb +137 -0
- data/lib/rbs/wasm/rbs_parser.wasm +0 -0
- data/lib/rbs/wasm/runtime.rb +217 -0
- data/lib/rbs/wasm/serialization_schema.rb +110 -0
- data/lib/rbs/writer.rb +424 -0
- data/lib/rbs.rb +117 -0
- data/lib/rdoc/discover.rb +20 -0
- data/lib/rdoc_plugin/parser.rb +163 -0
- data/rbs.gemspec +68 -0
- data/schema/annotation.json +14 -0
- data/schema/comment.json +26 -0
- data/schema/decls.json +326 -0
- data/schema/function.json +87 -0
- data/schema/location.json +56 -0
- data/schema/members.json +266 -0
- data/schema/methodType.json +50 -0
- data/schema/typeParam.json +52 -0
- data/schema/types.json +317 -0
- data/sig/ancestor_builder.rbs +163 -0
- data/sig/ancestor_graph.rbs +60 -0
- data/sig/annotate/annotations.rbs +102 -0
- data/sig/annotate/formatter.rbs +24 -0
- data/sig/annotate/rdoc_annotater.rbs +85 -0
- data/sig/annotate/rdoc_source.rbs +32 -0
- data/sig/annotation.rbs +27 -0
- data/sig/ast/ruby/annotations.rbs +470 -0
- data/sig/ast/ruby/comment_block.rbs +127 -0
- data/sig/ast/ruby/declarations.rbs +158 -0
- data/sig/ast/ruby/helpers/constant_helper.rbs +11 -0
- data/sig/ast/ruby/helpers/location_helper.rbs +15 -0
- data/sig/ast/ruby/members.rbs +198 -0
- data/sig/buffer.rbs +108 -0
- data/sig/builtin_names.rbs +44 -0
- data/sig/cli/colored_io.rbs +15 -0
- data/sig/cli/diff.rbs +15 -0
- data/sig/cli/validate.rbs +47 -0
- data/sig/cli.rbs +89 -0
- data/sig/collection/cleaner.rbs +13 -0
- data/sig/collection/config/lockfile.rbs +74 -0
- data/sig/collection/config/lockfile_generator.rbs +68 -0
- data/sig/collection/config.rbs +46 -0
- data/sig/collection/installer.rbs +17 -0
- data/sig/collection/sources.rbs +214 -0
- data/sig/collection.rbs +4 -0
- data/sig/comment.rbs +26 -0
- data/sig/constant.rbs +21 -0
- data/sig/declarations.rbs +274 -0
- data/sig/definition.rbs +232 -0
- data/sig/definition_builder.rbs +181 -0
- data/sig/diff.rbs +28 -0
- data/sig/directives.rbs +77 -0
- data/sig/environment/class_entry.rbs +50 -0
- data/sig/environment/module_entry.rbs +50 -0
- data/sig/environment.rbs +286 -0
- data/sig/environment_loader.rbs +111 -0
- data/sig/environment_walker.rbs +65 -0
- data/sig/errors.rbs +408 -0
- data/sig/factory.rbs +5 -0
- data/sig/file_finder.rbs +28 -0
- data/sig/inline_parser/comment_association.rbs +71 -0
- data/sig/inline_parser.rbs +126 -0
- data/sig/location.rbs +135 -0
- data/sig/locator.rbs +56 -0
- data/sig/manifest.yaml +5 -0
- data/sig/members.rbs +258 -0
- data/sig/method_builder.rbs +89 -0
- data/sig/method_types.rbs +58 -0
- data/sig/namespace.rbs +161 -0
- data/sig/parser.rbs +164 -0
- data/sig/prototype/helpers.rbs +29 -0
- data/sig/prototype/node_usage.rbs +20 -0
- data/sig/prototype/rb.rbs +96 -0
- data/sig/prototype/rbi.rbs +75 -0
- data/sig/prototype/runtime.rbs +182 -0
- data/sig/rbs.rbs +21 -0
- data/sig/rdoc/rbs.rbs +67 -0
- data/sig/repository.rbs +85 -0
- data/sig/resolver/constant_resolver.rbs +92 -0
- data/sig/resolver/context.rbs +34 -0
- data/sig/resolver/type_name_resolver.rbs +61 -0
- data/sig/rewriter.rbs +45 -0
- data/sig/shims/bundler.rbs +38 -0
- data/sig/shims/enumerable.rbs +5 -0
- data/sig/shims/rubygems.rbs +19 -0
- data/sig/sorter.rbs +41 -0
- data/sig/source.rbs +48 -0
- data/sig/substitution.rbs +48 -0
- data/sig/subtractor.rbs +37 -0
- data/sig/test/errors.rbs +52 -0
- data/sig/test/guranteed.rbs +9 -0
- data/sig/test/type_check.rbs +19 -0
- data/sig/test.rbs +82 -0
- data/sig/type_alias_dependency.rbs +53 -0
- data/sig/type_alias_regularity.rbs +98 -0
- data/sig/type_param.rbs +115 -0
- data/sig/typename.rbs +89 -0
- data/sig/types.rbs +578 -0
- data/sig/unit_test/convertibles.rbs +154 -0
- data/sig/unit_test/spy.rbs +22 -0
- data/sig/unit_test/type_assertions.rbs +211 -0
- data/sig/unit_test/with_aliases.rbs +136 -0
- data/sig/use_map.rbs +35 -0
- data/sig/util.rbs +9 -0
- data/sig/validator.rbs +63 -0
- data/sig/variance_calculator.rbs +87 -0
- data/sig/vendorer.rbs +51 -0
- data/sig/version.rbs +3 -0
- data/sig/visitor.rbs +47 -0
- data/sig/wasm/deserializer.rbs +66 -0
- data/sig/wasm/serialization_schema.rbs +13 -0
- data/sig/writer.rbs +127 -0
- data/src/ast.c +1628 -0
- data/src/lexer.c +3217 -0
- data/src/lexer.re +155 -0
- data/src/lexstate.c +217 -0
- data/src/location.c +31 -0
- data/src/parser.c +4255 -0
- data/src/serialize.c +958 -0
- data/src/string.c +41 -0
- data/src/util/rbs_allocator.c +162 -0
- data/src/util/rbs_assert.c +19 -0
- data/src/util/rbs_buffer.c +54 -0
- data/src/util/rbs_constant_pool.c +268 -0
- data/src/util/rbs_encoding.c +21308 -0
- data/src/util/rbs_unescape.c +167 -0
- data/stdlib/abbrev/0/abbrev.rbs +66 -0
- data/stdlib/abbrev/0/array.rbs +26 -0
- data/stdlib/base64/0/base64.rbs +355 -0
- data/stdlib/benchmark/0/benchmark.rbs +452 -0
- data/stdlib/bigdecimal/0/big_decimal.rbs +1647 -0
- data/stdlib/bigdecimal-math/0/big_math.rbs +280 -0
- data/stdlib/bigdecimal-math/0/manifest.yaml +2 -0
- data/stdlib/cgi/0/core.rbs +911 -0
- data/stdlib/cgi/0/manifest.yaml +4 -0
- data/stdlib/cgi-escape/0/escape.rbs +171 -0
- data/stdlib/coverage/0/coverage.rbs +266 -0
- data/stdlib/csv/0/csv.rbs +3776 -0
- data/stdlib/csv/0/manifest.yaml +3 -0
- data/stdlib/date/0/date.rbs +1598 -0
- data/stdlib/date/0/date_time.rbs +617 -0
- data/stdlib/date/0/time.rbs +26 -0
- data/stdlib/dbm/0/dbm.rbs +421 -0
- data/stdlib/delegate/0/delegator.rbs +187 -0
- data/stdlib/delegate/0/kernel.rbs +47 -0
- data/stdlib/delegate/0/simple_delegator.rbs +96 -0
- data/stdlib/did_you_mean/0/did_you_mean.rbs +344 -0
- data/stdlib/digest/0/digest.rbs +687 -0
- data/stdlib/erb/0/erb.rbs +933 -0
- data/stdlib/etc/0/etc.rbs +884 -0
- data/stdlib/fileutils/0/fileutils.rbs +1753 -0
- data/stdlib/find/0/find.rbs +49 -0
- data/stdlib/forwardable/0/forwardable.rbs +271 -0
- data/stdlib/io-console/0/io-console.rbs +414 -0
- data/stdlib/ipaddr/0/ipaddr.rbs +436 -0
- data/stdlib/json/0/json.rbs +1963 -0
- data/stdlib/kconv/0/kconv.rbs +166 -0
- data/stdlib/logger/0/formatter.rbs +45 -0
- data/stdlib/logger/0/log_device.rbs +100 -0
- data/stdlib/logger/0/logger.rbs +796 -0
- data/stdlib/logger/0/manifest.yaml +2 -0
- data/stdlib/logger/0/period.rbs +17 -0
- data/stdlib/logger/0/severity.rbs +34 -0
- data/stdlib/minitest/0/kernel.rbs +42 -0
- data/stdlib/minitest/0/minitest/abstract_reporter.rbs +52 -0
- data/stdlib/minitest/0/minitest/assertion.rbs +17 -0
- data/stdlib/minitest/0/minitest/assertions.rbs +590 -0
- data/stdlib/minitest/0/minitest/backtrace_filter.rbs +23 -0
- data/stdlib/minitest/0/minitest/bench_spec.rbs +102 -0
- data/stdlib/minitest/0/minitest/benchmark.rbs +259 -0
- data/stdlib/minitest/0/minitest/composite_reporter.rbs +25 -0
- data/stdlib/minitest/0/minitest/compress.rbs +13 -0
- data/stdlib/minitest/0/minitest/error_on_warning.rbs +3 -0
- data/stdlib/minitest/0/minitest/expectation.rbs +2 -0
- data/stdlib/minitest/0/minitest/expectations.rbs +21 -0
- data/stdlib/minitest/0/minitest/guard.rbs +64 -0
- data/stdlib/minitest/0/minitest/mock.rbs +64 -0
- data/stdlib/minitest/0/minitest/parallel/executor.rbs +46 -0
- data/stdlib/minitest/0/minitest/parallel/test/class_methods.rbs +5 -0
- data/stdlib/minitest/0/minitest/parallel/test.rbs +3 -0
- data/stdlib/minitest/0/minitest/parallel.rbs +2 -0
- data/stdlib/minitest/0/minitest/pride_io.rbs +62 -0
- data/stdlib/minitest/0/minitest/pride_lol.rbs +19 -0
- data/stdlib/minitest/0/minitest/progress_reporter.rbs +11 -0
- data/stdlib/minitest/0/minitest/reportable.rbs +53 -0
- data/stdlib/minitest/0/minitest/reporter.rbs +5 -0
- data/stdlib/minitest/0/minitest/result.rbs +28 -0
- data/stdlib/minitest/0/minitest/runnable.rbs +163 -0
- data/stdlib/minitest/0/minitest/skip.rbs +6 -0
- data/stdlib/minitest/0/minitest/spec/dsl/instance_methods.rbs +48 -0
- data/stdlib/minitest/0/minitest/spec/dsl.rbs +129 -0
- data/stdlib/minitest/0/minitest/spec.rbs +11 -0
- data/stdlib/minitest/0/minitest/statistics_reporter.rbs +81 -0
- data/stdlib/minitest/0/minitest/summary_reporter.rbs +18 -0
- data/stdlib/minitest/0/minitest/test/lifecycle_hooks.rbs +92 -0
- data/stdlib/minitest/0/minitest/test.rbs +69 -0
- data/stdlib/minitest/0/minitest/unexpected_error.rbs +12 -0
- data/stdlib/minitest/0/minitest/unexpected_warning.rbs +6 -0
- data/stdlib/minitest/0/minitest/unit/test_case.rbs +3 -0
- data/stdlib/minitest/0/minitest/unit.rbs +4 -0
- data/stdlib/minitest/0/minitest.rbs +115 -0
- data/stdlib/monitor/0/monitor.rbs +363 -0
- data/stdlib/mutex_m/0/mutex_m.rbs +104 -0
- data/stdlib/net-http/0/manifest.yaml +3 -0
- data/stdlib/net-http/0/net-http.rbs +5580 -0
- data/stdlib/net-protocol/0/manifest.yaml +2 -0
- data/stdlib/net-protocol/0/net-protocol.rbs +56 -0
- data/stdlib/net-smtp/0/manifest.yaml +2 -0
- data/stdlib/net-smtp/0/net-smtp.rbs +55 -0
- data/stdlib/nkf/0/nkf.rbs +402 -0
- data/stdlib/objspace/0/objspace.rbs +470 -0
- data/stdlib/observable/0/observable.rbs +217 -0
- data/stdlib/open-uri/0/manifest.yaml +4 -0
- data/stdlib/open-uri/0/open-uri.rbs +433 -0
- data/stdlib/open3/0/open3.rbs +606 -0
- data/stdlib/openssl/0/manifest.yaml +3 -0
- data/stdlib/openssl/0/openssl.rbs +12231 -0
- data/stdlib/optparse/0/optparse.rbs +1734 -0
- data/stdlib/pathname/0/pathname.rbs +36 -0
- data/stdlib/pp/0/manifest.yaml +2 -0
- data/stdlib/pp/0/pp.rbs +301 -0
- data/stdlib/prettyprint/0/prettyprint.rbs +383 -0
- data/stdlib/pstore/0/pstore.rbs +608 -0
- data/stdlib/psych/0/core_ext.rbs +12 -0
- data/stdlib/psych/0/dbm.rbs +237 -0
- data/stdlib/psych/0/manifest.yaml +3 -0
- data/stdlib/psych/0/psych.rbs +455 -0
- data/stdlib/psych/0/store.rbs +57 -0
- data/stdlib/pty/0/pty.rbs +240 -0
- data/stdlib/random-formatter/0/random-formatter.rbs +277 -0
- data/stdlib/rdoc/0/code_object.rbs +52 -0
- data/stdlib/rdoc/0/comment.rbs +61 -0
- data/stdlib/rdoc/0/context.rbs +153 -0
- data/stdlib/rdoc/0/markup.rbs +117 -0
- data/stdlib/rdoc/0/options.rbs +76 -0
- data/stdlib/rdoc/0/parser.rbs +56 -0
- data/stdlib/rdoc/0/rdoc.rbs +393 -0
- data/stdlib/rdoc/0/ri.rbs +17 -0
- data/stdlib/rdoc/0/store.rbs +48 -0
- data/stdlib/rdoc/0/top_level.rbs +97 -0
- data/stdlib/resolv/0/manifest.yaml +3 -0
- data/stdlib/resolv/0/resolv.rbs +1787 -0
- data/stdlib/ripper/0/ripper.rbs +1654 -0
- data/stdlib/securerandom/0/manifest.yaml +2 -0
- data/stdlib/securerandom/0/securerandom.rbs +49 -0
- data/stdlib/shellwords/0/shellwords.rbs +229 -0
- data/stdlib/singleton/0/singleton.rbs +134 -0
- data/stdlib/socket/0/addrinfo.rbs +666 -0
- data/stdlib/socket/0/basic_socket.rbs +590 -0
- data/stdlib/socket/0/constants.rbs +2295 -0
- data/stdlib/socket/0/ip_socket.rbs +94 -0
- data/stdlib/socket/0/socket.rbs +4170 -0
- data/stdlib/socket/0/socket_error.rbs +5 -0
- data/stdlib/socket/0/tcp_server.rbs +192 -0
- data/stdlib/socket/0/tcp_socket.rbs +87 -0
- data/stdlib/socket/0/udp_socket.rbs +133 -0
- data/stdlib/socket/0/unix_server.rbs +169 -0
- data/stdlib/socket/0/unix_socket.rbs +172 -0
- data/stdlib/stringio/0/stringio.rbs +1681 -0
- data/stdlib/strscan/0/string_scanner.rbs +1648 -0
- data/stdlib/tempfile/0/tempfile.rbs +483 -0
- data/stdlib/time/0/time.rbs +434 -0
- data/stdlib/timeout/0/timeout.rbs +137 -0
- data/stdlib/tmpdir/0/tmpdir.rbs +69 -0
- data/stdlib/tsort/0/cyclic.rbs +8 -0
- data/stdlib/tsort/0/interfaces.rbs +20 -0
- data/stdlib/tsort/0/tsort.rbs +410 -0
- data/stdlib/uri/0/common.rbs +621 -0
- data/stdlib/uri/0/file.rbs +118 -0
- data/stdlib/uri/0/ftp.rbs +13 -0
- data/stdlib/uri/0/generic.rbs +1116 -0
- data/stdlib/uri/0/http.rbs +104 -0
- data/stdlib/uri/0/https.rbs +14 -0
- data/stdlib/uri/0/ldap.rbs +230 -0
- data/stdlib/uri/0/ldaps.rbs +14 -0
- data/stdlib/uri/0/mailto.rbs +92 -0
- data/stdlib/uri/0/rfc2396_parser.rbs +189 -0
- data/stdlib/uri/0/rfc3986_parser.rbs +2 -0
- data/stdlib/uri/0/ws.rbs +13 -0
- data/stdlib/uri/0/wss.rbs +9 -0
- data/stdlib/yaml/0/manifest.yaml +2 -0
- data/stdlib/yaml/0/yaml.rbs +1 -0
- data/stdlib/zlib/0/buf_error.rbs +10 -0
- data/stdlib/zlib/0/data_error.rbs +10 -0
- data/stdlib/zlib/0/deflate.rbs +211 -0
- data/stdlib/zlib/0/error.rbs +20 -0
- data/stdlib/zlib/0/gzip_file/crc_error.rbs +12 -0
- data/stdlib/zlib/0/gzip_file/error.rbs +23 -0
- data/stdlib/zlib/0/gzip_file/length_error.rbs +12 -0
- data/stdlib/zlib/0/gzip_file/no_footer.rbs +11 -0
- data/stdlib/zlib/0/gzip_file.rbs +156 -0
- data/stdlib/zlib/0/gzip_reader.rbs +293 -0
- data/stdlib/zlib/0/gzip_writer.rbs +168 -0
- data/stdlib/zlib/0/inflate.rbs +180 -0
- data/stdlib/zlib/0/mem_error.rbs +10 -0
- data/stdlib/zlib/0/need_dict.rbs +13 -0
- data/stdlib/zlib/0/stream_end.rbs +11 -0
- data/stdlib/zlib/0/stream_error.rbs +11 -0
- data/stdlib/zlib/0/version_error.rbs +11 -0
- data/stdlib/zlib/0/zlib.rbs +449 -0
- data/stdlib/zlib/0/zstream.rbs +201 -0
- data/wasm/README.md +59 -0
- data/wasm/rbs_wasm.c +411 -0
- metadata +660 -0
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# <!-- rdoc-file=lib/yaml/store.rb -->
|
|
2
|
+
# YAML::Store provides the same functionality as PStore, except it uses YAML to
|
|
3
|
+
# dump objects instead of Marshal.
|
|
4
|
+
#
|
|
5
|
+
# ## Example
|
|
6
|
+
#
|
|
7
|
+
# require 'yaml/store'
|
|
8
|
+
#
|
|
9
|
+
# Person = Struct.new :first_name, :last_name
|
|
10
|
+
#
|
|
11
|
+
# people = [Person.new("Bob", "Smith"), Person.new("Mary", "Johnson")]
|
|
12
|
+
#
|
|
13
|
+
# store = YAML::Store.new "test.store"
|
|
14
|
+
#
|
|
15
|
+
# store.transaction do
|
|
16
|
+
# store["people"] = people
|
|
17
|
+
# store["greeting"] = { "hello" => "world" }
|
|
18
|
+
# end
|
|
19
|
+
#
|
|
20
|
+
# After running the above code, the contents of "test.store" will be:
|
|
21
|
+
#
|
|
22
|
+
# ---
|
|
23
|
+
# people:
|
|
24
|
+
# - !ruby/struct:Person
|
|
25
|
+
# first_name: Bob
|
|
26
|
+
# last_name: Smith
|
|
27
|
+
# - !ruby/struct:Person
|
|
28
|
+
# first_name: Mary
|
|
29
|
+
# last_name: Johnson
|
|
30
|
+
# greeting:
|
|
31
|
+
# hello: world
|
|
32
|
+
#
|
|
33
|
+
class Psych::Store < ::PStore[string, untyped]
|
|
34
|
+
# <!--
|
|
35
|
+
# rdoc-file=lib/yaml/store.rb
|
|
36
|
+
# - initialize( file_name, yaml_opts = {} )
|
|
37
|
+
# - initialize( file_name, thread_safe = false, yaml_opts = {} )
|
|
38
|
+
# -->
|
|
39
|
+
# Creates a new YAML::Store object, which will store data in `file_name`. If the
|
|
40
|
+
# file does not already exist, it will be created.
|
|
41
|
+
#
|
|
42
|
+
# YAML::Store objects are always reentrant. But if *thread_safe* is set to true,
|
|
43
|
+
# then it will become thread-safe at the cost of a minor performance hit.
|
|
44
|
+
#
|
|
45
|
+
# Options passed in through `yaml_opts` will be used when converting the store
|
|
46
|
+
# to YAML via Hash#to_yaml().
|
|
47
|
+
#
|
|
48
|
+
def dump: (untyped table) -> String
|
|
49
|
+
|
|
50
|
+
def empty_marshal_checksum: () -> String
|
|
51
|
+
|
|
52
|
+
def empty_marshal_data: () -> String
|
|
53
|
+
|
|
54
|
+
def load: (String) -> untyped
|
|
55
|
+
|
|
56
|
+
def marshal_dump_supports_canonical_option?: () -> bool
|
|
57
|
+
end
|
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
# <!-- rdoc-file=ext/pty/pty.c -->
|
|
2
|
+
# Creates and manages pseudo terminals (PTYs). See also
|
|
3
|
+
# https://en.wikipedia.org/wiki/Pseudo_terminal
|
|
4
|
+
#
|
|
5
|
+
# PTY allows you to allocate new terminals using ::open or ::spawn a new
|
|
6
|
+
# terminal with a specific command.
|
|
7
|
+
#
|
|
8
|
+
# ## Example
|
|
9
|
+
#
|
|
10
|
+
# In this example we will change the buffering type in the `factor` command,
|
|
11
|
+
# assuming that factor uses stdio for stdout buffering.
|
|
12
|
+
#
|
|
13
|
+
# If IO.pipe is used instead of PTY.open, this code deadlocks because factor's
|
|
14
|
+
# stdout is fully buffered.
|
|
15
|
+
#
|
|
16
|
+
# # start by requiring the standard library PTY
|
|
17
|
+
# require 'pty'
|
|
18
|
+
#
|
|
19
|
+
# master, slave = PTY.open
|
|
20
|
+
# read, write = IO.pipe
|
|
21
|
+
# pid = spawn("factor", :in=>read, :out=>slave)
|
|
22
|
+
# read.close # we dont need the read
|
|
23
|
+
# slave.close # or the slave
|
|
24
|
+
#
|
|
25
|
+
# # pipe "42" to the factor command
|
|
26
|
+
# write.puts "42"
|
|
27
|
+
# # output the response from factor
|
|
28
|
+
# p master.gets #=> "42: 2 3 7\n"
|
|
29
|
+
#
|
|
30
|
+
# # pipe "144" to factor and print out the response
|
|
31
|
+
# write.puts "144"
|
|
32
|
+
# p master.gets #=> "144: 2 2 2 2 3 3\n"
|
|
33
|
+
# write.close # close the pipe
|
|
34
|
+
#
|
|
35
|
+
# # The result of read operation when pty slave is closed is platform
|
|
36
|
+
# # dependent.
|
|
37
|
+
# ret = begin
|
|
38
|
+
# master.gets # FreeBSD returns nil.
|
|
39
|
+
# rescue Errno::EIO # GNU/Linux raises EIO.
|
|
40
|
+
# nil
|
|
41
|
+
# end
|
|
42
|
+
# p ret #=> nil
|
|
43
|
+
#
|
|
44
|
+
# ## License
|
|
45
|
+
#
|
|
46
|
+
# (c) Copyright 1998 by Akinori Ito.
|
|
47
|
+
#
|
|
48
|
+
# This software may be redistributed freely for this purpose, in full or in
|
|
49
|
+
# part, provided that this entire copyright notice is included on any copies of
|
|
50
|
+
# this software and applications and derivations thereof.
|
|
51
|
+
#
|
|
52
|
+
# This software is provided on an "as is" basis, without warranty of any kind,
|
|
53
|
+
# either expressed or implied, as to any matter including, but not limited to
|
|
54
|
+
# warranty of fitness of purpose, or merchantability, or results obtained from
|
|
55
|
+
# use of this software.
|
|
56
|
+
#
|
|
57
|
+
module PTY
|
|
58
|
+
# <!--
|
|
59
|
+
# rdoc-file=ext/pty/pty.c
|
|
60
|
+
# - PTY.check(pid, raise = false) => Process::Status or nil
|
|
61
|
+
# - PTY.check(pid, true) => nil or raises PTY::ChildExited
|
|
62
|
+
# -->
|
|
63
|
+
# Checks the status of the child process specified by `pid`. Returns `nil` if
|
|
64
|
+
# the process is still alive.
|
|
65
|
+
#
|
|
66
|
+
# If the process is not alive, and `raise` was true, a PTY::ChildExited
|
|
67
|
+
# exception will be raised. Otherwise it will return a Process::Status instance.
|
|
68
|
+
#
|
|
69
|
+
# `pid`
|
|
70
|
+
# : The process id of the process to check
|
|
71
|
+
#
|
|
72
|
+
# `raise`
|
|
73
|
+
# : If `true` and the process identified by `pid` is no longer alive a
|
|
74
|
+
# PTY::ChildExited is raised.
|
|
75
|
+
#
|
|
76
|
+
def self.check: (Integer pid, ?boolish raise) -> Process::Status?
|
|
77
|
+
|
|
78
|
+
# <!-- rdoc-file=ext/pty/pty.c -->
|
|
79
|
+
# Spawns the specified command on a newly allocated pty. You can also use the
|
|
80
|
+
# alias ::getpty.
|
|
81
|
+
#
|
|
82
|
+
# The command's controlling tty is set to the slave device of the pty and its
|
|
83
|
+
# standard input/output/error is redirected to the slave device.
|
|
84
|
+
#
|
|
85
|
+
# `env` is an optional hash that provides additional environment variables to
|
|
86
|
+
# the spawned pty.
|
|
87
|
+
#
|
|
88
|
+
# # sets FOO to "bar"
|
|
89
|
+
# PTY.spawn({"FOO"=>"bar"}, "printenv", "FOO") do |r, w, pid|
|
|
90
|
+
# p r.read #=> "bar\r\n"
|
|
91
|
+
# ensure
|
|
92
|
+
# r.close; w.close; Process.wait(pid)
|
|
93
|
+
# end
|
|
94
|
+
# # unsets FOO
|
|
95
|
+
# PTY.spawn({"FOO"=>nil}, "printenv", "FOO") do |r, w, pid|
|
|
96
|
+
# p r.read #=> ""
|
|
97
|
+
# ensure
|
|
98
|
+
# r.close; w.close; Process.wait(pid)
|
|
99
|
+
# end
|
|
100
|
+
#
|
|
101
|
+
# `command` and `command_line` are the full commands to run, given a String. Any
|
|
102
|
+
# additional `arguments` will be passed to the command.
|
|
103
|
+
#
|
|
104
|
+
# ### Return values
|
|
105
|
+
#
|
|
106
|
+
# In the non-block form this returns an array of size three, <code>[r, w,
|
|
107
|
+
# pid]</code>.
|
|
108
|
+
#
|
|
109
|
+
# In the block form these same values will be yielded to the block:
|
|
110
|
+
#
|
|
111
|
+
# `r`
|
|
112
|
+
# : A readable IO that contains the command's standard output and standard
|
|
113
|
+
# error
|
|
114
|
+
#
|
|
115
|
+
# `w`
|
|
116
|
+
# : A writable IO that is the command's standard input
|
|
117
|
+
#
|
|
118
|
+
# `pid`
|
|
119
|
+
# : The process identifier for the command.
|
|
120
|
+
#
|
|
121
|
+
#
|
|
122
|
+
# ### Clean up
|
|
123
|
+
#
|
|
124
|
+
# This method does not clean up like closing IOs or waiting for child process,
|
|
125
|
+
# except that the process is detached in the block form to prevent it from
|
|
126
|
+
# becoming a zombie (see Process.detach). Any other cleanup is the
|
|
127
|
+
# responsibility of the caller. If waiting for `pid`, be sure to close both `r`
|
|
128
|
+
# and `w` before doing so; doing it in the reverse order may cause deadlock on
|
|
129
|
+
# some OSes.
|
|
130
|
+
#
|
|
131
|
+
alias self.getpty self.spawn
|
|
132
|
+
|
|
133
|
+
# <!--
|
|
134
|
+
# rdoc-file=ext/pty/pty.c
|
|
135
|
+
# - PTY.open => [master_io, slave_file]
|
|
136
|
+
# - PTY.open {|(master_io, slave_file)| ... } => block value
|
|
137
|
+
# -->
|
|
138
|
+
# Allocates a pty (pseudo-terminal).
|
|
139
|
+
#
|
|
140
|
+
# In the block form, yields an array of two elements (<code>master_io,
|
|
141
|
+
# slave_file</code>) and the value of the block is returned from `open`.
|
|
142
|
+
#
|
|
143
|
+
# The IO and File are both closed after the block completes if they haven't been
|
|
144
|
+
# already closed.
|
|
145
|
+
#
|
|
146
|
+
# PTY.open {|master, slave|
|
|
147
|
+
# p master #=> #<IO:masterpty:/dev/pts/1>
|
|
148
|
+
# p slave #=> #<File:/dev/pts/1>
|
|
149
|
+
# p slave.path #=> "/dev/pts/1"
|
|
150
|
+
# }
|
|
151
|
+
#
|
|
152
|
+
# In the non-block form, returns a two element array, <code>[master_io,
|
|
153
|
+
# slave_file]</code>.
|
|
154
|
+
#
|
|
155
|
+
# master, slave = PTY.open
|
|
156
|
+
# # do something with master for IO, or the slave file
|
|
157
|
+
#
|
|
158
|
+
# The arguments in both forms are:
|
|
159
|
+
#
|
|
160
|
+
# `master_io`
|
|
161
|
+
# : the master of the pty, as an IO.
|
|
162
|
+
#
|
|
163
|
+
# `slave_file`
|
|
164
|
+
# : the slave of the pty, as a File. The path to the terminal device is
|
|
165
|
+
# available via <code>slave_file.path</code>
|
|
166
|
+
#
|
|
167
|
+
#
|
|
168
|
+
# IO#raw! is usable to disable newline conversions:
|
|
169
|
+
#
|
|
170
|
+
# require 'io/console'
|
|
171
|
+
# PTY.open {|m, s|
|
|
172
|
+
# s.raw!
|
|
173
|
+
# # ...
|
|
174
|
+
# }
|
|
175
|
+
#
|
|
176
|
+
def self.open: () -> [ IO, File ]
|
|
177
|
+
| [A] () { ([ IO, File ]) -> A } -> A
|
|
178
|
+
|
|
179
|
+
# <!--
|
|
180
|
+
# rdoc-file=ext/pty/pty.c
|
|
181
|
+
# - PTY.spawn([env,] command_line) { |r, w, pid| ... }
|
|
182
|
+
# - PTY.spawn([env,] command_line) => [r, w, pid]
|
|
183
|
+
# - PTY.spawn([env,] command, arguments, ...) { |r, w, pid| ... }
|
|
184
|
+
# - PTY.spawn([env,] command, arguments, ...) => [r, w, pid]
|
|
185
|
+
# -->
|
|
186
|
+
# Spawns the specified command on a newly allocated pty. You can also use the
|
|
187
|
+
# alias ::getpty.
|
|
188
|
+
#
|
|
189
|
+
# The command's controlling tty is set to the slave device of the pty and its
|
|
190
|
+
# standard input/output/error is redirected to the slave device.
|
|
191
|
+
#
|
|
192
|
+
# `env` is an optional hash that provides additional environment variables to
|
|
193
|
+
# the spawned pty.
|
|
194
|
+
#
|
|
195
|
+
# # sets FOO to "bar"
|
|
196
|
+
# PTY.spawn({"FOO"=>"bar"}, "printenv", "FOO") do |r, w, pid|
|
|
197
|
+
# p r.read #=> "bar\r\n"
|
|
198
|
+
# ensure
|
|
199
|
+
# r.close; w.close; Process.wait(pid)
|
|
200
|
+
# end
|
|
201
|
+
# # unsets FOO
|
|
202
|
+
# PTY.spawn({"FOO"=>nil}, "printenv", "FOO") do |r, w, pid|
|
|
203
|
+
# p r.read #=> ""
|
|
204
|
+
# ensure
|
|
205
|
+
# r.close; w.close; Process.wait(pid)
|
|
206
|
+
# end
|
|
207
|
+
#
|
|
208
|
+
# `command` and `command_line` are the full commands to run, given a String. Any
|
|
209
|
+
# additional `arguments` will be passed to the command.
|
|
210
|
+
#
|
|
211
|
+
# ### Return values
|
|
212
|
+
#
|
|
213
|
+
# In the non-block form this returns an array of size three, <code>[r, w,
|
|
214
|
+
# pid]</code>.
|
|
215
|
+
#
|
|
216
|
+
# In the block form these same values will be yielded to the block:
|
|
217
|
+
#
|
|
218
|
+
# `r`
|
|
219
|
+
# : A readable IO that contains the command's standard output and standard
|
|
220
|
+
# error
|
|
221
|
+
#
|
|
222
|
+
# `w`
|
|
223
|
+
# : A writable IO that is the command's standard input
|
|
224
|
+
#
|
|
225
|
+
# `pid`
|
|
226
|
+
# : The process identifier for the command.
|
|
227
|
+
#
|
|
228
|
+
#
|
|
229
|
+
# ### Clean up
|
|
230
|
+
#
|
|
231
|
+
# This method does not clean up like closing IOs or waiting for child process,
|
|
232
|
+
# except that the process is detached in the block form to prevent it from
|
|
233
|
+
# becoming a zombie (see Process.detach). Any other cleanup is the
|
|
234
|
+
# responsibility of the caller. If waiting for `pid`, be sure to close both `r`
|
|
235
|
+
# and `w` before doing so; doing it in the reverse order may cause deadlock on
|
|
236
|
+
# some OSes.
|
|
237
|
+
#
|
|
238
|
+
def self.spawn: (*String command) -> [ IO, IO, Integer ]
|
|
239
|
+
| (*String command) { ([ IO, IO, Integer ]) -> void } -> void
|
|
240
|
+
end
|
|
@@ -0,0 +1,277 @@
|
|
|
1
|
+
module RBS
|
|
2
|
+
module Unnamed
|
|
3
|
+
module Random_Formatter
|
|
4
|
+
# <!--
|
|
5
|
+
# rdoc-file=lib/random/formatter.rb
|
|
6
|
+
# - base64(n=nil)
|
|
7
|
+
# -->
|
|
8
|
+
# Generate a random base64 string.
|
|
9
|
+
#
|
|
10
|
+
# The argument *n* specifies the length, in bytes, of the random number to be
|
|
11
|
+
# generated. The length of the result string is about 4/3 of *n*.
|
|
12
|
+
#
|
|
13
|
+
# If *n* is not specified or is nil, 16 is assumed. It may be larger in the
|
|
14
|
+
# future.
|
|
15
|
+
#
|
|
16
|
+
# The result may contain A-Z, a-z, 0-9, "+", "/" and "=".
|
|
17
|
+
#
|
|
18
|
+
# require 'random/formatter'
|
|
19
|
+
#
|
|
20
|
+
# Random.base64 #=> "/2BuBuLf3+WfSKyQbRcc/A=="
|
|
21
|
+
# # or
|
|
22
|
+
# prng = Random.new
|
|
23
|
+
# prng.base64 #=> "6BbW0pxO0YENxn38HMUbcQ=="
|
|
24
|
+
#
|
|
25
|
+
# See RFC 3548 for the definition of base64.
|
|
26
|
+
#
|
|
27
|
+
%a{annotate:rdoc:copy:Random::Formatter#base64}
|
|
28
|
+
def base64: (?Integer? n) -> String
|
|
29
|
+
|
|
30
|
+
# <!--
|
|
31
|
+
# rdoc-file=lib/random/formatter.rb
|
|
32
|
+
# - hex(n=nil)
|
|
33
|
+
# -->
|
|
34
|
+
# Generate a random hexadecimal string.
|
|
35
|
+
#
|
|
36
|
+
# The argument *n* specifies the length, in bytes, of the random number to be
|
|
37
|
+
# generated. The length of the resulting hexadecimal string is twice of *n*.
|
|
38
|
+
#
|
|
39
|
+
# If *n* is not specified or is nil, 16 is assumed. It may be larger in the
|
|
40
|
+
# future.
|
|
41
|
+
#
|
|
42
|
+
# The result may contain 0-9 and a-f.
|
|
43
|
+
#
|
|
44
|
+
# require 'random/formatter'
|
|
45
|
+
#
|
|
46
|
+
# Random.hex #=> "eb693ec8252cd630102fd0d0fb7c3485"
|
|
47
|
+
# # or
|
|
48
|
+
# prng = Random.new
|
|
49
|
+
# prng.hex #=> "91dc3bfb4de5b11d029d376634589b61"
|
|
50
|
+
#
|
|
51
|
+
%a{annotate:rdoc:copy:Random::Formatter#hex}
|
|
52
|
+
def hex: (?Integer? n) -> String
|
|
53
|
+
|
|
54
|
+
# <!--
|
|
55
|
+
# rdoc-file=lib/random/formatter.rb
|
|
56
|
+
# - random_bytes(n=nil)
|
|
57
|
+
# -->
|
|
58
|
+
# Generate a random binary string.
|
|
59
|
+
#
|
|
60
|
+
# The argument *n* specifies the length of the result string.
|
|
61
|
+
#
|
|
62
|
+
# If *n* is not specified or is nil, 16 is assumed. It may be larger in future.
|
|
63
|
+
#
|
|
64
|
+
# The result may contain any byte: "x00" - "xff".
|
|
65
|
+
#
|
|
66
|
+
# require 'random/formatter'
|
|
67
|
+
#
|
|
68
|
+
# Random.random_bytes #=> "\xD8\\\xE0\xF4\r\xB2\xFC*WM\xFF\x83\x18\xF45\xB6"
|
|
69
|
+
# # or
|
|
70
|
+
# prng = Random.new
|
|
71
|
+
# prng.random_bytes #=> "m\xDC\xFC/\a\x00Uf\xB2\xB2P\xBD\xFF6S\x97"
|
|
72
|
+
#
|
|
73
|
+
%a{annotate:rdoc:copy:Random::Formatter#random_bytes}
|
|
74
|
+
def random_bytes: (?Integer? n) -> String
|
|
75
|
+
|
|
76
|
+
# <!--
|
|
77
|
+
# rdoc-file=lib/random/formatter.rb
|
|
78
|
+
# - urlsafe_base64(n=nil, padding=false)
|
|
79
|
+
# -->
|
|
80
|
+
# Generate a random URL-safe base64 string.
|
|
81
|
+
#
|
|
82
|
+
# The argument *n* specifies the length, in bytes, of the random number to be
|
|
83
|
+
# generated. The length of the result string is about 4/3 of *n*.
|
|
84
|
+
#
|
|
85
|
+
# If *n* is not specified or is nil, 16 is assumed. It may be larger in the
|
|
86
|
+
# future.
|
|
87
|
+
#
|
|
88
|
+
# The boolean argument *padding* specifies the padding. If it is false or nil,
|
|
89
|
+
# padding is not generated. Otherwise padding is generated. By default, padding
|
|
90
|
+
# is not generated because "=" may be used as a URL delimiter.
|
|
91
|
+
#
|
|
92
|
+
# The result may contain A-Z, a-z, 0-9, "-" and "_". "=" is also used if
|
|
93
|
+
# *padding* is true.
|
|
94
|
+
#
|
|
95
|
+
# require 'random/formatter'
|
|
96
|
+
#
|
|
97
|
+
# Random.urlsafe_base64 #=> "b4GOKm4pOYU_-BOXcrUGDg"
|
|
98
|
+
# # or
|
|
99
|
+
# prng = Random.new
|
|
100
|
+
# prng.urlsafe_base64 #=> "UZLdOkzop70Ddx-IJR0ABg"
|
|
101
|
+
#
|
|
102
|
+
# prng.urlsafe_base64(nil, true) #=> "i0XQ-7gglIsHGV2_BNPrdQ=="
|
|
103
|
+
# prng.urlsafe_base64(nil, true) #=> "-M8rLhr7JEpJlqFGUMmOxg=="
|
|
104
|
+
#
|
|
105
|
+
# See RFC 3548 for the definition of URL-safe base64.
|
|
106
|
+
#
|
|
107
|
+
%a{annotate:rdoc:copy:Random::Formatter#urlsafe_base64}
|
|
108
|
+
def urlsafe_base64: (?Integer? n, ?boolish padding) -> String
|
|
109
|
+
|
|
110
|
+
# <!--
|
|
111
|
+
# rdoc-file=lib/random/formatter.rb
|
|
112
|
+
# - uuid()
|
|
113
|
+
# -->
|
|
114
|
+
# Generate a random v4 UUID (Universally Unique IDentifier).
|
|
115
|
+
#
|
|
116
|
+
# require 'random/formatter'
|
|
117
|
+
#
|
|
118
|
+
# Random.uuid #=> "2d931510-d99f-494a-8c67-87feb05e1594"
|
|
119
|
+
# Random.uuid #=> "bad85eb9-0713-4da7-8d36-07a8e4b00eab"
|
|
120
|
+
# # or
|
|
121
|
+
# prng = Random.new
|
|
122
|
+
# prng.uuid #=> "62936e70-1815-439b-bf89-8492855a7e6b"
|
|
123
|
+
#
|
|
124
|
+
# The version 4 UUID is purely random (except the version). It doesn't contain
|
|
125
|
+
# meaningful information such as MAC addresses, timestamps, etc.
|
|
126
|
+
#
|
|
127
|
+
# The result contains 122 random bits (15.25 random bytes).
|
|
128
|
+
#
|
|
129
|
+
# See [RFC9562](https://www.rfc-editor.org/rfc/rfc9562) for details of UUIDv4.
|
|
130
|
+
#
|
|
131
|
+
%a{annotate:rdoc:copy:Random::Formatter#uuid}
|
|
132
|
+
def uuid: () -> String
|
|
133
|
+
|
|
134
|
+
# <!--
|
|
135
|
+
# rdoc-file=lib/random/formatter.rb
|
|
136
|
+
# - uuid_v4()
|
|
137
|
+
# -->
|
|
138
|
+
#
|
|
139
|
+
%a{annotate:rdoc:copy:Random::Formatter#uuid_v4}
|
|
140
|
+
alias uuid_v4 uuid
|
|
141
|
+
|
|
142
|
+
# <!--
|
|
143
|
+
# rdoc-file=lib/random/formatter.rb
|
|
144
|
+
# - uuid_v7(extra_timestamp_bits: 0)
|
|
145
|
+
# -->
|
|
146
|
+
# Generate a random v7 UUID (Universally Unique IDentifier).
|
|
147
|
+
#
|
|
148
|
+
# require 'random/formatter'
|
|
149
|
+
#
|
|
150
|
+
# Random.uuid_v7 # => "0188d4c3-1311-7f96-85c7-242a7aa58f1e"
|
|
151
|
+
# Random.uuid_v7 # => "0188d4c3-16fe-744f-86af-38fa04c62bb5"
|
|
152
|
+
# Random.uuid_v7 # => "0188d4c3-1af8-764f-b049-c204ce0afa23"
|
|
153
|
+
# Random.uuid_v7 # => "0188d4c3-1e74-7085-b14f-ef6415dc6f31"
|
|
154
|
+
# # |<--sorted-->| |<----- random ---->|
|
|
155
|
+
#
|
|
156
|
+
# # or
|
|
157
|
+
# prng = Random.new
|
|
158
|
+
# prng.uuid_v7 # => "0188ca51-5e72-7950-a11d-def7ff977c98"
|
|
159
|
+
#
|
|
160
|
+
# The version 7 UUID starts with the least significant 48 bits of a 64 bit Unix
|
|
161
|
+
# timestamp (milliseconds since the epoch) and fills the remaining bits with
|
|
162
|
+
# random data, excluding the version and variant bits.
|
|
163
|
+
#
|
|
164
|
+
# This allows version 7 UUIDs to be sorted by creation time. Time ordered UUIDs
|
|
165
|
+
# can be used for better database index locality of newly inserted records,
|
|
166
|
+
# which may have a significant performance benefit compared to random data
|
|
167
|
+
# inserts.
|
|
168
|
+
#
|
|
169
|
+
# The result contains 74 random bits (9.25 random bytes).
|
|
170
|
+
#
|
|
171
|
+
# Note that this method cannot be made reproducible because its output includes
|
|
172
|
+
# not only random bits but also timestamp.
|
|
173
|
+
#
|
|
174
|
+
# See [RFC9562](https://www.rfc-editor.org/rfc/rfc9562) for details of UUIDv7.
|
|
175
|
+
#
|
|
176
|
+
# #### Monotonicity
|
|
177
|
+
#
|
|
178
|
+
# UUIDv7 has millisecond precision by default, so multiple UUIDs created within
|
|
179
|
+
# the same millisecond are not issued in monotonically increasing order. To
|
|
180
|
+
# create UUIDs that are time-ordered with sub-millisecond precision, up to 12
|
|
181
|
+
# bits of additional timestamp may added with `extra_timestamp_bits`. The extra
|
|
182
|
+
# timestamp precision comes at the expense of random bits. Setting
|
|
183
|
+
# <code>extra_timestamp_bits: 12</code> provides ~244ns of precision, but only
|
|
184
|
+
# 62 random bits (7.75 random bytes).
|
|
185
|
+
#
|
|
186
|
+
# prng = Random.new
|
|
187
|
+
# Array.new(4) { prng.uuid_v7(extra_timestamp_bits: 12) }
|
|
188
|
+
# # =>
|
|
189
|
+
# ["0188d4c7-13da-74f9-8b53-22a786ffdd5a",
|
|
190
|
+
# "0188d4c7-13da-753b-83a5-7fb9b2afaeea",
|
|
191
|
+
# "0188d4c7-13da-754a-88ea-ac0baeedd8db",
|
|
192
|
+
# "0188d4c7-13da-7557-83e1-7cad9cda0d8d"]
|
|
193
|
+
# # |<--- sorted --->| |<-- random --->|
|
|
194
|
+
#
|
|
195
|
+
# Array.new(4) { prng.uuid_v7(extra_timestamp_bits: 8) }
|
|
196
|
+
# # =>
|
|
197
|
+
# ["0188d4c7-3333-7a95-850a-de6edb858f7e",
|
|
198
|
+
# "0188d4c7-3333-7ae8-842e-bc3a8b7d0cf9", # <- out of order
|
|
199
|
+
# "0188d4c7-3333-7ae2-995a-9f135dc44ead", # <- out of order
|
|
200
|
+
# "0188d4c7-3333-7af9-87c3-8f612edac82e"]
|
|
201
|
+
# # |<--- sorted -->||<---- random --->|
|
|
202
|
+
#
|
|
203
|
+
# Any rollbacks of the system clock will break monotonicity. UUIDv7 is based on
|
|
204
|
+
# UTC, which excludes leap seconds and can rollback the clock. To avoid this,
|
|
205
|
+
# the system clock can synchronize with an NTP server configured to use a "leap
|
|
206
|
+
# smear" approach. NTP or PTP will also be needed to synchronize across
|
|
207
|
+
# distributed nodes.
|
|
208
|
+
#
|
|
209
|
+
# Counters and other mechanisms for stronger guarantees of monotonicity are not
|
|
210
|
+
# implemented. Applications with stricter requirements should follow [Section
|
|
211
|
+
# 6.2](https://www.rfc-editor.org/rfc/rfc9562.html#name-monotonicity-and-counter
|
|
212
|
+
# s) of the specification.
|
|
213
|
+
#
|
|
214
|
+
%a{annotate:rdoc:copy:Random::Formatter#uuid_v7}
|
|
215
|
+
def uuid_v7: (?extra_timestamp_bits: Integer) -> String
|
|
216
|
+
|
|
217
|
+
# <!--
|
|
218
|
+
# rdoc-file=lib/random/formatter.rb
|
|
219
|
+
# - alphanumeric(n = nil, chars: ALPHANUMERIC)
|
|
220
|
+
# -->
|
|
221
|
+
# Generate a random alphanumeric string.
|
|
222
|
+
#
|
|
223
|
+
# The argument *n* specifies the length, in characters, of the alphanumeric
|
|
224
|
+
# string to be generated. The argument *chars* specifies the character list
|
|
225
|
+
# which the result is consist of.
|
|
226
|
+
#
|
|
227
|
+
# If *n* is not specified or is nil, 16 is assumed. It may be larger in the
|
|
228
|
+
# future.
|
|
229
|
+
#
|
|
230
|
+
# The result may contain A-Z, a-z and 0-9, unless *chars* is specified.
|
|
231
|
+
#
|
|
232
|
+
# require 'random/formatter'
|
|
233
|
+
#
|
|
234
|
+
# Random.alphanumeric #=> "2BuBuLf3WfSKyQbR"
|
|
235
|
+
# # or
|
|
236
|
+
# prng = Random.new
|
|
237
|
+
# prng.alphanumeric(10) #=> "i6K93NdqiH"
|
|
238
|
+
#
|
|
239
|
+
# Random.alphanumeric(4, chars: [*"0".."9"]) #=> "2952"
|
|
240
|
+
# # or
|
|
241
|
+
# prng = Random.new
|
|
242
|
+
# prng.alphanumeric(10, chars: [*"!".."/"]) #=> ",.,++%/''."
|
|
243
|
+
#
|
|
244
|
+
%a{annotate:rdoc:copy:Random::Formatter#alphanumeric}
|
|
245
|
+
def alphanumeric: (?Numeric?, ?chars: Array[String]) -> String
|
|
246
|
+
|
|
247
|
+
# <!--
|
|
248
|
+
# rdoc-file=lib/random/formatter.rb
|
|
249
|
+
# - gen_random(n)
|
|
250
|
+
# -->
|
|
251
|
+
# Internal interface to Random; Generate random data *n* bytes.
|
|
252
|
+
#
|
|
253
|
+
%a{annotate:rdoc:copy:Random::Formatter#gen_random}
|
|
254
|
+
private def gen_random: (Integer n) -> String
|
|
255
|
+
|
|
256
|
+
# <!--
|
|
257
|
+
# rdoc-file=lib/random/formatter.rb
|
|
258
|
+
# - choose(source, n)
|
|
259
|
+
# -->
|
|
260
|
+
# Generate a string that randomly draws from a source array of characters.
|
|
261
|
+
#
|
|
262
|
+
# The argument *source* specifies the array of characters from which to generate
|
|
263
|
+
# the string. The argument *n* specifies the length, in characters, of the
|
|
264
|
+
# string to be generated.
|
|
265
|
+
#
|
|
266
|
+
# The result may contain whatever characters are in the source array.
|
|
267
|
+
#
|
|
268
|
+
# require 'random/formatter'
|
|
269
|
+
#
|
|
270
|
+
# prng.choose([*'l'..'r'], 16) #=> "lmrqpoonmmlqlron"
|
|
271
|
+
# prng.choose([*'0'..'9'], 5) #=> "27309"
|
|
272
|
+
#
|
|
273
|
+
%a{annotate:rdoc:copy:Random::Formatter#choose}
|
|
274
|
+
private def choose: (Array[String] source, Integer n) -> String
|
|
275
|
+
end
|
|
276
|
+
end
|
|
277
|
+
end
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
%a{annotate:rdoc:skip}
|
|
2
|
+
module RDoc
|
|
3
|
+
# <!-- rdoc-file=lib/rdoc/code_object.rb -->
|
|
4
|
+
# Base class for the RDoc code tree.
|
|
5
|
+
#
|
|
6
|
+
# We contain the common stuff for contexts (which are containers) and other
|
|
7
|
+
# elements (methods, attributes and so on)
|
|
8
|
+
#
|
|
9
|
+
# Here's the tree of the CodeObject subclasses:
|
|
10
|
+
#
|
|
11
|
+
# * RDoc::Context
|
|
12
|
+
# * RDoc::TopLevel
|
|
13
|
+
# * RDoc::ClassModule
|
|
14
|
+
# * RDoc::AnonClass (never used so far)
|
|
15
|
+
# * RDoc::NormalClass
|
|
16
|
+
# * RDoc::NormalModule
|
|
17
|
+
# * RDoc::SingleClass
|
|
18
|
+
# * RDoc::MethodAttr
|
|
19
|
+
# * RDoc::Attr
|
|
20
|
+
# * RDoc::AnyMethod
|
|
21
|
+
# * RDoc::GhostMethod
|
|
22
|
+
# * RDoc::MetaMethod
|
|
23
|
+
# * RDoc::Alias
|
|
24
|
+
# * RDoc::Constant
|
|
25
|
+
# * RDoc::Require
|
|
26
|
+
# * RDoc::Mixin
|
|
27
|
+
# * RDoc::Include
|
|
28
|
+
# * RDoc::Extend
|
|
29
|
+
#
|
|
30
|
+
class CodeObject
|
|
31
|
+
# <!-- rdoc-file=lib/rdoc/code_object.rb -->
|
|
32
|
+
# Our comment
|
|
33
|
+
#
|
|
34
|
+
attr_reader comment: Comment | String
|
|
35
|
+
|
|
36
|
+
# <!--
|
|
37
|
+
# rdoc-file=lib/rdoc/code_object.rb
|
|
38
|
+
# - new()
|
|
39
|
+
# -->
|
|
40
|
+
# Creates a new CodeObject that will document itself and its children
|
|
41
|
+
#
|
|
42
|
+
def initialize: () -> void
|
|
43
|
+
|
|
44
|
+
# <!--
|
|
45
|
+
# rdoc-file=lib/rdoc/code_object.rb
|
|
46
|
+
# - comment=(comment)
|
|
47
|
+
# -->
|
|
48
|
+
# Replaces our comment with `comment`, unless it is empty.
|
|
49
|
+
#
|
|
50
|
+
def comment=: (Comment | String | nil) -> (Comment | String | nil)
|
|
51
|
+
end
|
|
52
|
+
end
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
%a{annotate:rdoc:skip}
|
|
2
|
+
module RDoc
|
|
3
|
+
# <!-- rdoc-file=lib/rdoc/comment.rb -->
|
|
4
|
+
# A comment holds the text comment for a RDoc::CodeObject and provides a unified
|
|
5
|
+
# way of cleaning it up and parsing it into an RDoc::Markup::Document.
|
|
6
|
+
#
|
|
7
|
+
# Each comment may have a different markup format set by #format=. By default
|
|
8
|
+
# 'rdoc' is used. The :markup: directive tells RDoc which format to use.
|
|
9
|
+
#
|
|
10
|
+
# See RDoc::MarkupReference@Directive+for+Specifying+RDoc+Source+Format.
|
|
11
|
+
#
|
|
12
|
+
class Comment
|
|
13
|
+
# <!-- rdoc-file=lib/rdoc/comment.rb -->
|
|
14
|
+
# The format of this comment. Defaults to RDoc::Markup
|
|
15
|
+
#
|
|
16
|
+
attr_reader format: String
|
|
17
|
+
|
|
18
|
+
# <!-- rdoc-file=lib/rdoc/comment.rb -->
|
|
19
|
+
# The RDoc::TopLevel this comment was found in
|
|
20
|
+
#
|
|
21
|
+
attr_accessor location: String
|
|
22
|
+
|
|
23
|
+
alias file location
|
|
24
|
+
|
|
25
|
+
# <!--
|
|
26
|
+
# rdoc-file=lib/rdoc/comment.rb
|
|
27
|
+
# - new(text = nil, location = nil, language = nil)
|
|
28
|
+
# -->
|
|
29
|
+
# Creates a new comment with `text` that is found in the RDoc::TopLevel
|
|
30
|
+
# `location`.
|
|
31
|
+
#
|
|
32
|
+
def initialize: (?String? text, ?RDoc::Context? location, ?String? language) -> void
|
|
33
|
+
|
|
34
|
+
# <!--
|
|
35
|
+
# rdoc-file=lib/rdoc/comment.rb
|
|
36
|
+
# - format=(format)
|
|
37
|
+
# -->
|
|
38
|
+
# Sets the format of this comment and resets any parsed document
|
|
39
|
+
#
|
|
40
|
+
def format=: (String format) -> void
|
|
41
|
+
|
|
42
|
+
def normalized?: () -> bool
|
|
43
|
+
|
|
44
|
+
# <!--
|
|
45
|
+
# rdoc-file=lib/rdoc/comment.rb
|
|
46
|
+
# - normalize()
|
|
47
|
+
# -->
|
|
48
|
+
# Normalizes the text. See RDoc::Text#normalize_comment for details
|
|
49
|
+
#
|
|
50
|
+
def normalize: () -> self
|
|
51
|
+
|
|
52
|
+
# <!--
|
|
53
|
+
# rdoc-file=lib/rdoc/comment.rb
|
|
54
|
+
# - parse()
|
|
55
|
+
# -->
|
|
56
|
+
# Parses the comment into an RDoc::Markup::Document. The parsed document is
|
|
57
|
+
# cached until the text is changed.
|
|
58
|
+
#
|
|
59
|
+
def parse: () -> Markup::Document
|
|
60
|
+
end
|
|
61
|
+
end
|