rbs-relaxed 3.9.0.1
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/.github/dependabot.yml +22 -0
- data/.github/workflows/comments.yml +35 -0
- data/.github/workflows/dependabot.yml +30 -0
- data/.github/workflows/ruby.yml +82 -0
- data/.github/workflows/typecheck.yml +38 -0
- data/.github/workflows/windows.yml +43 -0
- data/.gitignore +23 -0
- data/.rubocop.yml +68 -0
- data/BSDL +22 -0
- data/CHANGELOG.md +1868 -0
- data/COPYING +56 -0
- data/README.md +203 -0
- data/Rakefile +417 -0
- data/Steepfile +44 -0
- data/config.yml +313 -0
- data/core/array.rbs +4062 -0
- data/core/basic_object.rbs +375 -0
- data/core/binding.rbs +150 -0
- data/core/builtin.rbs +277 -0
- data/core/class.rbs +220 -0
- data/core/comparable.rbs +171 -0
- data/core/complex.rbs +786 -0
- data/core/constants.rbs +96 -0
- data/core/data.rbs +415 -0
- data/core/dir.rbs +981 -0
- data/core/encoding.rbs +1371 -0
- data/core/enumerable.rbs +2405 -0
- data/core/enumerator/product.rbs +92 -0
- data/core/enumerator.rbs +630 -0
- data/core/env.rbs +6 -0
- data/core/errno.rbs +673 -0
- data/core/errors.rbs +760 -0
- data/core/exception.rbs +485 -0
- data/core/false_class.rbs +82 -0
- data/core/fiber.rbs +550 -0
- data/core/fiber_error.rbs +11 -0
- data/core/file.rbs +2936 -0
- data/core/file_test.rbs +331 -0
- data/core/float.rbs +1151 -0
- data/core/gc.rbs +644 -0
- data/core/global_variables.rbs +184 -0
- data/core/hash.rbs +1861 -0
- data/core/integer.rbs +1413 -0
- data/core/io/buffer.rbs +984 -0
- data/core/io/wait.rbs +70 -0
- data/core/io.rbs +3406 -0
- data/core/kernel.rbs +3096 -0
- data/core/marshal.rbs +207 -0
- data/core/match_data.rbs +635 -0
- data/core/math.rbs +729 -0
- data/core/method.rbs +386 -0
- data/core/module.rbs +1704 -0
- data/core/nil_class.rbs +209 -0
- data/core/numeric.rbs +818 -0
- data/core/object.rbs +110 -0
- data/core/object_space/weak_key_map.rbs +166 -0
- data/core/object_space.rbs +190 -0
- data/core/proc.rbs +868 -0
- data/core/process.rbs +2296 -0
- data/core/ractor.rbs +1068 -0
- data/core/random.rbs +237 -0
- data/core/range.rbs +1107 -0
- data/core/rational.rbs +531 -0
- data/core/rb_config.rbs +88 -0
- data/core/rbs/unnamed/argf.rbs +1229 -0
- data/core/rbs/unnamed/env_class.rbs +1209 -0
- data/core/rbs/unnamed/random.rbs +293 -0
- data/core/refinement.rbs +59 -0
- data/core/regexp.rbs +1930 -0
- data/core/ruby_vm.rbs +765 -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 +176 -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 +1171 -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 +294 -0
- data/core/set.rbs +621 -0
- data/core/signal.rbs +100 -0
- data/core/string.rbs +3583 -0
- data/core/struct.rbs +667 -0
- data/core/symbol.rbs +475 -0
- data/core/thread.rbs +1765 -0
- data/core/thread_group.rbs +79 -0
- data/core/time.rbs +1762 -0
- data/core/trace_point.rbs +477 -0
- data/core/true_class.rbs +98 -0
- data/core/unbound_method.rbs +329 -0
- data/core/warning.rbs +87 -0
- data/docs/CONTRIBUTING.md +106 -0
- data/docs/architecture.md +110 -0
- data/docs/collection.md +192 -0
- data/docs/data_and_struct.md +86 -0
- data/docs/gem.md +57 -0
- data/docs/rbs_by_example.md +309 -0
- data/docs/repo.md +125 -0
- data/docs/sigs.md +167 -0
- data/docs/stdlib.md +147 -0
- data/docs/syntax.md +910 -0
- data/docs/tools.md +17 -0
- data/exe/rbs +7 -0
- data/ext/rbs_extension/extconf.rb +15 -0
- data/ext/rbs_extension/lexer.c +2728 -0
- data/ext/rbs_extension/lexer.h +179 -0
- data/ext/rbs_extension/lexer.re +147 -0
- data/ext/rbs_extension/lexstate.c +175 -0
- data/ext/rbs_extension/location.c +325 -0
- data/ext/rbs_extension/location.h +85 -0
- data/ext/rbs_extension/main.c +33 -0
- data/ext/rbs_extension/parser.c +2973 -0
- data/ext/rbs_extension/parser.h +18 -0
- data/ext/rbs_extension/parserstate.c +397 -0
- data/ext/rbs_extension/parserstate.h +163 -0
- data/ext/rbs_extension/rbs_extension.h +31 -0
- data/ext/rbs_extension/unescape.c +32 -0
- data/goodcheck.yml +91 -0
- data/include/rbs/constants.h +82 -0
- data/include/rbs/ruby_objs.h +72 -0
- data/include/rbs/util/rbs_constant_pool.h +219 -0
- data/include/rbs.h +7 -0
- data/lib/rbs/ancestor_graph.rb +92 -0
- data/lib/rbs/annotate/annotations.rb +199 -0
- data/lib/rbs/annotate/formatter.rb +92 -0
- data/lib/rbs/annotate/rdoc_annotator.rb +400 -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 +467 -0
- data/lib/rbs/ast/directives.rb +49 -0
- data/lib/rbs/ast/members.rb +451 -0
- data/lib/rbs/ast/type_param.rb +225 -0
- data/lib/rbs/ast/visitor.rb +137 -0
- data/lib/rbs/buffer.rb +67 -0
- data/lib/rbs/builtin_names.rb +58 -0
- data/lib/rbs/cli/colored_io.rb +48 -0
- data/lib/rbs/cli/diff.rb +83 -0
- data/lib/rbs/cli/validate.rb +357 -0
- data/lib/rbs/cli.rb +1223 -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 +218 -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 +258 -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 +401 -0
- data/lib/rbs/definition_builder/ancestor_builder.rb +620 -0
- data/lib/rbs/definition_builder/method_builder.rb +254 -0
- data/lib/rbs/definition_builder.rb +845 -0
- data/lib/rbs/diff.rb +125 -0
- data/lib/rbs/environment/use_map.rb +77 -0
- data/lib/rbs/environment.rb +829 -0
- data/lib/rbs/environment_loader.rb +173 -0
- data/lib/rbs/environment_walker.rb +155 -0
- data/lib/rbs/errors.rb +645 -0
- data/lib/rbs/factory.rb +18 -0
- data/lib/rbs/file_finder.rb +28 -0
- data/lib/rbs/location_aux.rb +138 -0
- data/lib/rbs/locator.rb +243 -0
- data/lib/rbs/method_type.rb +143 -0
- data/lib/rbs/namespace.rb +125 -0
- data/lib/rbs/parser/lex_result.rb +15 -0
- data/lib/rbs/parser/token.rb +23 -0
- data/lib/rbs/parser_aux.rb +114 -0
- data/lib/rbs/prototype/helpers.rb +140 -0
- data/lib/rbs/prototype/node_usage.rb +99 -0
- data/lib/rbs/prototype/rb.rb +840 -0
- data/lib/rbs/prototype/rbi.rb +641 -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 +667 -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 +91 -0
- data/lib/rbs/sorter.rb +198 -0
- data/lib/rbs/substitution.rb +83 -0
- data/lib/rbs/subtractor.rb +201 -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 +435 -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 +109 -0
- data/lib/rbs/types.rb +1596 -0
- data/lib/rbs/unit_test/convertibles.rb +176 -0
- data/lib/rbs/unit_test/spy.rb +138 -0
- data/lib/rbs/unit_test/type_assertions.rb +347 -0
- data/lib/rbs/unit_test/with_aliases.rb +143 -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/writer.rb +424 -0
- data/lib/rbs.rb +94 -0
- data/lib/rdoc/discover.rb +20 -0
- data/lib/rdoc_plugin/parser.rb +163 -0
- data/rbs-relaxed.gemspec +48 -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 +36 -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 +82 -0
- data/sig/annotate/rdoc_source.rbs +30 -0
- data/sig/annotation.rbs +27 -0
- data/sig/buffer.rbs +32 -0
- data/sig/builtin_names.rbs +44 -0
- data/sig/cli/colored_io.rbs +15 -0
- data/sig/cli/diff.rbs +21 -0
- data/sig/cli/validate.rbs +43 -0
- data/sig/cli.rbs +87 -0
- data/sig/collection/cleaner.rbs +13 -0
- data/sig/collection/config/lockfile.rbs +74 -0
- data/sig/collection/config/lockfile_generator.rbs +66 -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 +267 -0
- data/sig/definition.rbs +173 -0
- data/sig/definition_builder.rbs +165 -0
- data/sig/diff.rbs +28 -0
- data/sig/directives.rbs +77 -0
- data/sig/environment.rbs +279 -0
- data/sig/environment_loader.rbs +111 -0
- data/sig/environment_walker.rbs +65 -0
- data/sig/errors.rbs +405 -0
- data/sig/factory.rbs +5 -0
- data/sig/file_finder.rbs +28 -0
- data/sig/location.rbs +110 -0
- data/sig/locator.rbs +58 -0
- data/sig/manifest.yaml +7 -0
- data/sig/members.rbs +258 -0
- data/sig/method_builder.rbs +84 -0
- data/sig/method_types.rbs +58 -0
- data/sig/namespace.rbs +146 -0
- data/sig/parser.rbs +100 -0
- data/sig/prototype/helpers.rbs +27 -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 +35 -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/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 +110 -0
- data/sig/typename.rbs +79 -0
- data/sig/types.rbs +579 -0
- data/sig/unit_test/convertibles.rbs +154 -0
- data/sig/unit_test/spy.rbs +30 -0
- data/sig/unit_test/type_assertions.rbs +196 -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/writer.rbs +127 -0
- data/src/constants.c +153 -0
- data/src/ruby_objs.c +795 -0
- data/src/util/rbs_constant_pool.c +342 -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 +1629 -0
- data/stdlib/bigdecimal-math/0/big_math.rbs +119 -0
- data/stdlib/bigdecimal-math/0/manifest.yaml +2 -0
- data/stdlib/cgi/0/core.rbs +1285 -0
- data/stdlib/cgi/0/manifest.yaml +3 -0
- data/stdlib/coverage/0/coverage.rbs +263 -0
- data/stdlib/csv/0/csv.rbs +3776 -0
- data/stdlib/csv/0/manifest.yaml +3 -0
- data/stdlib/date/0/date.rbs +1585 -0
- data/stdlib/date/0/date_time.rbs +616 -0
- data/stdlib/date/0/time.rbs +26 -0
- data/stdlib/dbm/0/dbm.rbs +421 -0
- data/stdlib/delegate/0/delegator.rbs +184 -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 +343 -0
- data/stdlib/digest/0/digest.rbs +577 -0
- data/stdlib/erb/0/erb.rbs +532 -0
- data/stdlib/etc/0/etc.rbs +865 -0
- data/stdlib/fileutils/0/fileutils.rbs +1734 -0
- data/stdlib/find/0/find.rbs +49 -0
- data/stdlib/forwardable/0/forwardable.rbs +268 -0
- data/stdlib/io-console/0/io-console.rbs +414 -0
- data/stdlib/ipaddr/0/ipaddr.rbs +428 -0
- data/stdlib/json/0/json.rbs +1916 -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 +5552 -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 +487 -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 +393 -0
- data/stdlib/open3/0/open3.rbs +147 -0
- data/stdlib/openssl/0/manifest.yaml +3 -0
- data/stdlib/openssl/0/openssl.rbs +12113 -0
- data/stdlib/optparse/0/optparse.rbs +1725 -0
- data/stdlib/pathname/0/pathname.rbs +1406 -0
- data/stdlib/pp/0/manifest.yaml +2 -0
- data/stdlib/pp/0/pp.rbs +300 -0
- data/stdlib/prettyprint/0/prettyprint.rbs +383 -0
- data/stdlib/pstore/0/pstore.rbs +603 -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 +402 -0
- data/stdlib/psych/0/store.rbs +59 -0
- data/stdlib/pty/0/pty.rbs +237 -0
- data/stdlib/rdoc/0/code_object.rbs +51 -0
- data/stdlib/rdoc/0/comment.rbs +59 -0
- data/stdlib/rdoc/0/context.rbs +153 -0
- data/stdlib/rdoc/0/markup.rbs +117 -0
- data/stdlib/rdoc/0/parser.rbs +56 -0
- data/stdlib/rdoc/0/rdoc.rbs +391 -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 +1830 -0
- data/stdlib/ripper/0/ripper.rbs +1648 -0
- data/stdlib/securerandom/0/securerandom.rbs +62 -0
- data/stdlib/shellwords/0/shellwords.rbs +229 -0
- data/stdlib/singleton/0/singleton.rbs +131 -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 +92 -0
- data/stdlib/socket/0/socket.rbs +4157 -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 +79 -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 +567 -0
- data/stdlib/strscan/0/string_scanner.rbs +1627 -0
- data/stdlib/tempfile/0/tempfile.rbs +479 -0
- data/stdlib/time/0/time.rbs +432 -0
- data/stdlib/timeout/0/timeout.rbs +81 -0
- data/stdlib/tmpdir/0/tmpdir.rbs +69 -0
- data/stdlib/tsort/0/cyclic.rbs +5 -0
- data/stdlib/tsort/0/interfaces.rbs +20 -0
- data/stdlib/tsort/0/tsort.rbs +409 -0
- data/stdlib/uri/0/common.rbs +582 -0
- data/stdlib/uri/0/file.rbs +118 -0
- data/stdlib/uri/0/ftp.rbs +13 -0
- data/stdlib/uri/0/generic.rbs +1108 -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 +210 -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 +166 -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 +200 -0
- metadata +532 -0
data/stdlib/pp/0/pp.rbs
ADDED
@@ -0,0 +1,300 @@
|
|
1
|
+
# <!-- rdoc-file=lib/pp.rb -->
|
2
|
+
# A pretty-printer for Ruby objects.
|
3
|
+
#
|
4
|
+
# ## What PP Does
|
5
|
+
#
|
6
|
+
# Standard output by #p returns this:
|
7
|
+
# #<PP:0x81fedf0 @genspace=#<Proc:0x81feda0>, @group_queue=#<PrettyPrint::GroupQueue:0x81fed3c @queue=[[#<PrettyPrint::Group:0x81fed78 @breakables=[], @depth=0, @break=false>], []]>, @buffer=[], @newline="\n", @group_stack=[#<PrettyPrint::Group:0x81fed78 @breakables=[], @depth=0, @break=false>], @buffer_width=0, @indent=0, @maxwidth=79, @output_width=2, @output=#<IO:0x8114ee4>>
|
8
|
+
#
|
9
|
+
# Pretty-printed output returns this:
|
10
|
+
# #<PP:0x81fedf0
|
11
|
+
# @buffer=[],
|
12
|
+
# @buffer_width=0,
|
13
|
+
# @genspace=#<Proc:0x81feda0>,
|
14
|
+
# @group_queue=
|
15
|
+
# #<PrettyPrint::GroupQueue:0x81fed3c
|
16
|
+
# @queue=
|
17
|
+
# [[#<PrettyPrint::Group:0x81fed78 @break=false, @breakables=[], @depth=0>],
|
18
|
+
# []]>,
|
19
|
+
# @group_stack=
|
20
|
+
# [#<PrettyPrint::Group:0x81fed78 @break=false, @breakables=[], @depth=0>],
|
21
|
+
# @indent=0,
|
22
|
+
# @maxwidth=79,
|
23
|
+
# @newline="\n",
|
24
|
+
# @output=#<IO:0x8114ee4>,
|
25
|
+
# @output_width=2>
|
26
|
+
#
|
27
|
+
# ## Usage
|
28
|
+
#
|
29
|
+
# pp(obj) #=> obj
|
30
|
+
# pp obj #=> obj
|
31
|
+
# pp(obj1, obj2, ...) #=> [obj1, obj2, ...]
|
32
|
+
# pp() #=> nil
|
33
|
+
#
|
34
|
+
# Output `obj(s)` to `$>` in pretty printed format.
|
35
|
+
#
|
36
|
+
# It returns `obj(s)`.
|
37
|
+
#
|
38
|
+
# ## Output Customization
|
39
|
+
#
|
40
|
+
# To define a customized pretty printing function for your classes, redefine
|
41
|
+
# method `#pretty_print(pp)` in the class. Note that `require 'pp'` is needed
|
42
|
+
# before redefining `#pretty_print(pp)`.
|
43
|
+
#
|
44
|
+
# `#pretty_print` takes the `pp` argument, which is an instance of the PP class.
|
45
|
+
# The method uses #text, #breakable, #nest, #group and #pp to print the object.
|
46
|
+
#
|
47
|
+
# ## Pretty-Print JSON
|
48
|
+
#
|
49
|
+
# To pretty-print JSON refer to JSON#pretty_generate.
|
50
|
+
#
|
51
|
+
# ## Author
|
52
|
+
# Tanaka Akira <akr@fsij.org>
|
53
|
+
#
|
54
|
+
class PP < PrettyPrint
|
55
|
+
interface _PrettyPrint
|
56
|
+
def pretty_print: (untyped q) -> untyped
|
57
|
+
|
58
|
+
def pretty_print_cycle: (untyped q) -> untyped
|
59
|
+
|
60
|
+
def is_a?: (Module) -> bool
|
61
|
+
end
|
62
|
+
|
63
|
+
interface _LeftShift
|
64
|
+
def <<: (untyped obj) -> self
|
65
|
+
end
|
66
|
+
|
67
|
+
interface _PPMethodsRequired
|
68
|
+
def text: (String obj, ?Integer width) -> void
|
69
|
+
|
70
|
+
def breakable: (?String sep, ?Integer width) -> void
|
71
|
+
|
72
|
+
def group: (?Integer indent, ?String open_obj, ?String close_obj, ?Integer open_width, ?Integer close_width) { () -> untyped } -> void
|
73
|
+
end
|
74
|
+
|
75
|
+
# <!-- rdoc-file=lib/pp.rb -->
|
76
|
+
# Module that defines helper methods for pretty_print.
|
77
|
+
#
|
78
|
+
module PPMethods : _PPMethodsRequired
|
79
|
+
# <!--
|
80
|
+
# rdoc-file=lib/pp.rb
|
81
|
+
# - guard_inspect_key() { || ... }
|
82
|
+
# -->
|
83
|
+
# Yields to a block and preserves the previous set of objects being printed.
|
84
|
+
#
|
85
|
+
def guard_inspect_key: () { () -> untyped } -> void
|
86
|
+
|
87
|
+
# <!--
|
88
|
+
# rdoc-file=lib/pp.rb
|
89
|
+
# - check_inspect_key(id)
|
90
|
+
# -->
|
91
|
+
# Check whether the object_id `id` is in the current buffer of objects to be
|
92
|
+
# pretty printed. Used to break cycles in chains of objects to be pretty
|
93
|
+
# printed.
|
94
|
+
#
|
95
|
+
def check_inspect_key: (_PrettyPrint id) -> bool
|
96
|
+
|
97
|
+
# <!--
|
98
|
+
# rdoc-file=lib/pp.rb
|
99
|
+
# - push_inspect_key(id)
|
100
|
+
# -->
|
101
|
+
# Adds the object_id `id` to the set of objects being pretty printed, so as to
|
102
|
+
# not repeat objects.
|
103
|
+
#
|
104
|
+
def push_inspect_key: (_PrettyPrint id) -> void
|
105
|
+
|
106
|
+
# <!--
|
107
|
+
# rdoc-file=lib/pp.rb
|
108
|
+
# - pop_inspect_key(id)
|
109
|
+
# -->
|
110
|
+
# Removes an object from the set of objects being pretty printed.
|
111
|
+
#
|
112
|
+
def pop_inspect_key: (_PrettyPrint id) -> void
|
113
|
+
|
114
|
+
# <!--
|
115
|
+
# rdoc-file=lib/pp.rb
|
116
|
+
# - pp(obj)
|
117
|
+
# -->
|
118
|
+
# Adds `obj` to the pretty printing buffer using Object#pretty_print or
|
119
|
+
# Object#pretty_print_cycle.
|
120
|
+
#
|
121
|
+
# Object#pretty_print_cycle is used when `obj` is already printed, a.k.a the
|
122
|
+
# object reference chain has a cycle.
|
123
|
+
#
|
124
|
+
def pp: (_PrettyPrint obj) -> untyped
|
125
|
+
|
126
|
+
# <!--
|
127
|
+
# rdoc-file=lib/pp.rb
|
128
|
+
# - object_group(obj) { || ... }
|
129
|
+
# -->
|
130
|
+
# A convenience method which is same as follows:
|
131
|
+
#
|
132
|
+
# group(1, '#<' + obj.class.name, '>') { ... }
|
133
|
+
#
|
134
|
+
def object_group: (untyped obj) { () -> untyped } -> Integer
|
135
|
+
|
136
|
+
# <!--
|
137
|
+
# rdoc-file=lib/pp.rb
|
138
|
+
# - object_address_group(obj, &block)
|
139
|
+
# -->
|
140
|
+
# A convenience method, like object_group, but also reformats the Object's
|
141
|
+
# object_id.
|
142
|
+
#
|
143
|
+
def object_address_group: (untyped obj) { () -> untyped } -> Integer
|
144
|
+
|
145
|
+
# <!--
|
146
|
+
# rdoc-file=lib/pp.rb
|
147
|
+
# - comma_breakable()
|
148
|
+
# -->
|
149
|
+
# A convenience method which is same as follows:
|
150
|
+
#
|
151
|
+
# text ','
|
152
|
+
# breakable
|
153
|
+
#
|
154
|
+
def comma_breakable: () -> void
|
155
|
+
|
156
|
+
# <!--
|
157
|
+
# rdoc-file=lib/pp.rb
|
158
|
+
# - seplist(list, sep=nil, iter_method=:each) { |element| ... }
|
159
|
+
# -->
|
160
|
+
# Adds a separated list. The list is separated by comma with breakable space, by
|
161
|
+
# default.
|
162
|
+
#
|
163
|
+
# #seplist iterates the `list` using `iter_method`. It yields each object to the
|
164
|
+
# block given for #seplist. The procedure `separator_proc` is called between
|
165
|
+
# each yields.
|
166
|
+
#
|
167
|
+
# If the iteration is zero times, `separator_proc` is not called at all.
|
168
|
+
#
|
169
|
+
# If `separator_proc` is nil or not given, +lambda { comma_breakable }+ is used.
|
170
|
+
# If `iter_method` is not given, :each is used.
|
171
|
+
#
|
172
|
+
# For example, following 3 code fragments has similar effect.
|
173
|
+
#
|
174
|
+
# q.seplist([1,2,3]) {|v| xxx v }
|
175
|
+
#
|
176
|
+
# q.seplist([1,2,3], lambda { q.comma_breakable }, :each) {|v| xxx v }
|
177
|
+
#
|
178
|
+
# xxx 1
|
179
|
+
# q.comma_breakable
|
180
|
+
# xxx 2
|
181
|
+
# q.comma_breakable
|
182
|
+
# xxx 3
|
183
|
+
#
|
184
|
+
def seplist: (untyped list, ?(^() -> void)? sep, ?interned iter_method) { (*untyped, **untyped) -> void } -> void
|
185
|
+
|
186
|
+
# <!--
|
187
|
+
# rdoc-file=lib/pp.rb
|
188
|
+
# - pp_object(obj)
|
189
|
+
# -->
|
190
|
+
# A present standard failsafe for pretty printing any given Object
|
191
|
+
#
|
192
|
+
def pp_object: (untyped obj) -> untyped
|
193
|
+
|
194
|
+
# <!--
|
195
|
+
# rdoc-file=lib/pp.rb
|
196
|
+
# - pp_hash(obj)
|
197
|
+
# -->
|
198
|
+
# A pretty print for a Hash
|
199
|
+
#
|
200
|
+
def pp_hash: (untyped obj) -> untyped
|
201
|
+
end
|
202
|
+
include PPMethods
|
203
|
+
|
204
|
+
class SingleLine < ::PrettyPrint::SingleLine
|
205
|
+
include PPMethods
|
206
|
+
end
|
207
|
+
|
208
|
+
module ObjectMixin : BasicObject
|
209
|
+
def pretty_print: (PP q) -> untyped
|
210
|
+
|
211
|
+
def pretty_print_cycle: (PP q) -> untyped
|
212
|
+
|
213
|
+
def pretty_print_instance_variables: () -> Array[Symbol]
|
214
|
+
|
215
|
+
def pretty_print_inspect: () -> untyped
|
216
|
+
end
|
217
|
+
|
218
|
+
# <!--
|
219
|
+
# rdoc-file=lib/pp.rb
|
220
|
+
# - width_for(out)
|
221
|
+
# -->
|
222
|
+
# Returns the usable width for `out`. As the width of `out`:
|
223
|
+
# 1. If `out` is assigned to a tty device, its width is used.
|
224
|
+
# 2. Otherwise, or it could not get the value, the `COLUMN` environment
|
225
|
+
# variable is assumed to be set to the width.
|
226
|
+
# 3. If `COLUMN` is not set to a non-zero number, 80 is assumed.
|
227
|
+
#
|
228
|
+
# And finally, returns the above width value - 1.
|
229
|
+
# * This -1 is for Windows command prompt, which moves the cursor to the next
|
230
|
+
# line if it reaches the last column.
|
231
|
+
#
|
232
|
+
def self.width_for: (untyped out) -> Integer
|
233
|
+
|
234
|
+
# <!--
|
235
|
+
# rdoc-file=lib/pp.rb
|
236
|
+
# - pp(obj, out=$>, width=width_for(out))
|
237
|
+
# -->
|
238
|
+
# Outputs `obj` to `out` in pretty printed format of `width` columns in width.
|
239
|
+
#
|
240
|
+
# If `out` is omitted, `$>` is assumed. If `width` is omitted, the width of
|
241
|
+
# `out` is assumed (see width_for).
|
242
|
+
#
|
243
|
+
# PP.pp returns `out`.
|
244
|
+
#
|
245
|
+
def self.pp: (_PrettyPrint obj, ?_LeftShift out, ?Integer width) -> untyped
|
246
|
+
|
247
|
+
# <!--
|
248
|
+
# rdoc-file=lib/pp.rb
|
249
|
+
# - singleline_pp(obj, out=$>)
|
250
|
+
# -->
|
251
|
+
# Outputs `obj` to `out` like PP.pp but with no indent and newline.
|
252
|
+
#
|
253
|
+
# PP.singleline_pp returns `out`.
|
254
|
+
#
|
255
|
+
def self.singleline_pp: (_PrettyPrint obj, ?_LeftShift out) -> untyped
|
256
|
+
def self.mcall: (untyped obj, Module mod, interned meth, *untyped args) ?{ (*untyped, **untyped) -> untyped } -> untyped
|
257
|
+
|
258
|
+
# <!--
|
259
|
+
# rdoc-file=lib/pp.rb
|
260
|
+
# - sharing_detection()
|
261
|
+
# -->
|
262
|
+
# Returns the sharing detection flag as a boolean value. It is false (nil) by
|
263
|
+
# default.
|
264
|
+
# ----
|
265
|
+
# <!--
|
266
|
+
# rdoc-file=lib/pp.rb
|
267
|
+
# - sharing_detection=(b)
|
268
|
+
# -->
|
269
|
+
# Sets the sharing detection flag to b.
|
270
|
+
#
|
271
|
+
attr_accessor self.sharing_detection: bool?
|
272
|
+
end
|
273
|
+
|
274
|
+
%a{annotate:rdoc:skip}
|
275
|
+
class RubyVM::AbstractSyntaxTree::Node
|
276
|
+
# <!--
|
277
|
+
# rdoc-file=lib/pp.rb
|
278
|
+
# - pretty_print_children(q, names = [])
|
279
|
+
# -->
|
280
|
+
#
|
281
|
+
def pretty_print_children: (PP q, ?Array[untyped] names) -> void
|
282
|
+
end
|
283
|
+
|
284
|
+
%a{annotate:rdoc:skip}
|
285
|
+
class Object
|
286
|
+
include PP::ObjectMixin
|
287
|
+
end
|
288
|
+
|
289
|
+
%a{annotate:rdoc:skip}
|
290
|
+
module Kernel
|
291
|
+
# <!--
|
292
|
+
# rdoc-file=lib/pp.rb
|
293
|
+
# - pretty_inspect()
|
294
|
+
# -->
|
295
|
+
# Returns a pretty printed object as a string.
|
296
|
+
#
|
297
|
+
# See the PP module for more information.
|
298
|
+
#
|
299
|
+
def pretty_inspect: () -> String
|
300
|
+
end
|
@@ -0,0 +1,383 @@
|
|
1
|
+
# <!-- rdoc-file=lib/prettyprint.rb -->
|
2
|
+
# This class implements a pretty printing algorithm. It finds line breaks and
|
3
|
+
# nice indentations for grouped structure.
|
4
|
+
#
|
5
|
+
# By default, the class assumes that primitive elements are strings and each
|
6
|
+
# byte in the strings have single column in width. But it can be used for other
|
7
|
+
# situations by giving suitable arguments for some methods:
|
8
|
+
# * newline object and space generation block for PrettyPrint.new
|
9
|
+
# * optional width argument for PrettyPrint#text
|
10
|
+
# * PrettyPrint#breakable
|
11
|
+
#
|
12
|
+
# There are several candidate uses:
|
13
|
+
# * text formatting using proportional fonts
|
14
|
+
# * multibyte characters which has columns different to number of bytes
|
15
|
+
# * non-string formatting
|
16
|
+
#
|
17
|
+
# ## Bugs
|
18
|
+
# * Box based formatting?
|
19
|
+
# * Other (better) model/algorithm?
|
20
|
+
#
|
21
|
+
# Report any bugs at http://bugs.ruby-lang.org
|
22
|
+
#
|
23
|
+
# ## References
|
24
|
+
# Christian Lindig, Strictly Pretty, March 2000,
|
25
|
+
# https://lindig.github.io/papers/strictly-pretty-2000.pdf
|
26
|
+
#
|
27
|
+
# Philip Wadler, A prettier printer, March 1998,
|
28
|
+
# https://homepages.inf.ed.ac.uk/wadler/topics/language-design.html#prettier
|
29
|
+
#
|
30
|
+
# ## Author
|
31
|
+
# Tanaka Akira <akr@fsij.org>
|
32
|
+
#
|
33
|
+
class PrettyPrint
|
34
|
+
interface _Output
|
35
|
+
def <<: (String) -> void
|
36
|
+
end
|
37
|
+
|
38
|
+
# <!--
|
39
|
+
# rdoc-file=lib/prettyprint.rb
|
40
|
+
# - format(output=''.dup, maxwidth=79, newline="\n", genspace=lambda {|n| ' ' * n}) { |q| ... }
|
41
|
+
# -->
|
42
|
+
# This is a convenience method which is same as follows:
|
43
|
+
#
|
44
|
+
# begin
|
45
|
+
# q = PrettyPrint.new(output, maxwidth, newline, &genspace)
|
46
|
+
# ...
|
47
|
+
# q.flush
|
48
|
+
# output
|
49
|
+
# end
|
50
|
+
#
|
51
|
+
def self.format: (?untyped output, ?Integer maxwidth, ?String newline, ?^(Integer) -> Integer genspace) { (PrettyPrint) -> untyped } -> _Output
|
52
|
+
|
53
|
+
# <!--
|
54
|
+
# rdoc-file=lib/prettyprint.rb
|
55
|
+
# - singleline_format(output=''.dup, maxwidth=nil, newline=nil, genspace=nil) { |q| ... }
|
56
|
+
# -->
|
57
|
+
# This is similar to PrettyPrint::format but the result has no breaks.
|
58
|
+
#
|
59
|
+
# `maxwidth`, `newline` and `genspace` are ignored.
|
60
|
+
#
|
61
|
+
# The invocation of `breakable` in the block doesn't break a line and is treated
|
62
|
+
# as just an invocation of `text`.
|
63
|
+
#
|
64
|
+
def self.singleline_format: (?untyped output, ?Integer? maxwidth, ?String? newline, ?^(Integer) -> Integer? genspace) { (PrettyPrint::SingleLine) -> untyped } -> _Output
|
65
|
+
|
66
|
+
# <!--
|
67
|
+
# rdoc-file=lib/prettyprint.rb
|
68
|
+
# - new(output=''.dup, maxwidth=79, newline="\n", &genspace)
|
69
|
+
# -->
|
70
|
+
# Creates a buffer for pretty printing.
|
71
|
+
#
|
72
|
+
# `output` is an output target. If it is not specified, '' is assumed. It should
|
73
|
+
# have a << method which accepts the first argument `obj` of PrettyPrint#text,
|
74
|
+
# the first argument `sep` of PrettyPrint#breakable, the first argument
|
75
|
+
# `newline` of PrettyPrint.new, and the result of a given block for
|
76
|
+
# PrettyPrint.new.
|
77
|
+
#
|
78
|
+
# `maxwidth` specifies maximum line length. If it is not specified, 79 is
|
79
|
+
# assumed. However actual outputs may overflow `maxwidth` if long non-breakable
|
80
|
+
# texts are provided.
|
81
|
+
#
|
82
|
+
# `newline` is used for line breaks. "n" is used if it is not specified.
|
83
|
+
#
|
84
|
+
# The block is used to generate spaces. {|width| ' ' * width} is used if it is
|
85
|
+
# not given.
|
86
|
+
#
|
87
|
+
def initialize: (?untyped output, ?Integer maxwidth, ?String newline, ?^(Integer) -> Integer genspace) -> void
|
88
|
+
|
89
|
+
# <!-- rdoc-file=lib/prettyprint.rb -->
|
90
|
+
# The output object.
|
91
|
+
#
|
92
|
+
# This defaults to '', and should accept the << method
|
93
|
+
#
|
94
|
+
attr_reader output: _Output
|
95
|
+
|
96
|
+
# <!-- rdoc-file=lib/prettyprint.rb -->
|
97
|
+
# The maximum width of a line, before it is separated in to a newline
|
98
|
+
#
|
99
|
+
# This defaults to 79, and should be an Integer
|
100
|
+
#
|
101
|
+
attr_reader maxwidth: Integer
|
102
|
+
|
103
|
+
# <!-- rdoc-file=lib/prettyprint.rb -->
|
104
|
+
# The value that is appended to `output` to add a new line.
|
105
|
+
#
|
106
|
+
# This defaults to "n", and should be String
|
107
|
+
#
|
108
|
+
attr_reader newline: String
|
109
|
+
|
110
|
+
# <!-- rdoc-file=lib/prettyprint.rb -->
|
111
|
+
# A lambda or Proc, that takes one argument, of an Integer, and returns the
|
112
|
+
# corresponding number of spaces.
|
113
|
+
#
|
114
|
+
# By default this is:
|
115
|
+
# lambda {|n| ' ' * n}
|
116
|
+
#
|
117
|
+
attr_reader genspace: Proc
|
118
|
+
|
119
|
+
# <!-- rdoc-file=lib/prettyprint.rb -->
|
120
|
+
# The number of spaces to be indented
|
121
|
+
#
|
122
|
+
attr_reader indent: Integer
|
123
|
+
|
124
|
+
# <!-- rdoc-file=lib/prettyprint.rb -->
|
125
|
+
# The PrettyPrint::GroupQueue of groups in stack to be pretty printed
|
126
|
+
#
|
127
|
+
attr_reader group_queue: PrettyPrint::GroupQueue
|
128
|
+
|
129
|
+
# <!--
|
130
|
+
# rdoc-file=lib/prettyprint.rb
|
131
|
+
# - current_group()
|
132
|
+
# -->
|
133
|
+
# Returns the group most recently added to the stack.
|
134
|
+
#
|
135
|
+
# Contrived example:
|
136
|
+
# out = ""
|
137
|
+
# => ""
|
138
|
+
# q = PrettyPrint.new(out)
|
139
|
+
# => #<PrettyPrint:0x82f85c0 @output="", @maxwidth=79, @newline="\n", @genspace=#<Proc:0x82f8368@/home/vbatts/.rvm/rubies/ruby-head/lib/ruby/2.0.0/prettyprint.rb:82 (lambda)>, @output_width=0, @buffer_width=0, @buffer=[], @group_stack=[#<PrettyPrint::Group:0x82f8138 @depth=0, @breakables=[], @break=false>], @group_queue=#<PrettyPrint::GroupQueue:0x82fb7c0 @queue=[[#<PrettyPrint::Group:0x82f8138 @depth=0, @breakables=[], @break=false>]]>, @indent=0>
|
140
|
+
# q.group {
|
141
|
+
# q.text q.current_group.inspect
|
142
|
+
# q.text q.newline
|
143
|
+
# q.group(q.current_group.depth + 1) {
|
144
|
+
# q.text q.current_group.inspect
|
145
|
+
# q.text q.newline
|
146
|
+
# q.group(q.current_group.depth + 1) {
|
147
|
+
# q.text q.current_group.inspect
|
148
|
+
# q.text q.newline
|
149
|
+
# q.group(q.current_group.depth + 1) {
|
150
|
+
# q.text q.current_group.inspect
|
151
|
+
# q.text q.newline
|
152
|
+
# }
|
153
|
+
# }
|
154
|
+
# }
|
155
|
+
# }
|
156
|
+
# => 284
|
157
|
+
# puts out
|
158
|
+
# #<PrettyPrint::Group:0x8354758 @depth=1, @breakables=[], @break=false>
|
159
|
+
# #<PrettyPrint::Group:0x8354550 @depth=2, @breakables=[], @break=false>
|
160
|
+
# #<PrettyPrint::Group:0x83541cc @depth=3, @breakables=[], @break=false>
|
161
|
+
# #<PrettyPrint::Group:0x8347e54 @depth=4, @breakables=[], @break=false>
|
162
|
+
#
|
163
|
+
def current_group: () -> PrettyPrint::Group
|
164
|
+
|
165
|
+
# <!--
|
166
|
+
# rdoc-file=lib/prettyprint.rb
|
167
|
+
# - break_outmost_groups()
|
168
|
+
# -->
|
169
|
+
# Breaks the buffer into lines that are shorter than #maxwidth
|
170
|
+
#
|
171
|
+
def break_outmost_groups: () -> untyped
|
172
|
+
|
173
|
+
# <!--
|
174
|
+
# rdoc-file=lib/prettyprint.rb
|
175
|
+
# - text(obj, width=obj.length)
|
176
|
+
# -->
|
177
|
+
# This adds `obj` as a text of `width` columns in width.
|
178
|
+
#
|
179
|
+
# If `width` is not specified, obj.length is used.
|
180
|
+
#
|
181
|
+
def text: (String obj, ?Integer width) -> void
|
182
|
+
|
183
|
+
# <!--
|
184
|
+
# rdoc-file=lib/prettyprint.rb
|
185
|
+
# - fill_breakable(sep=' ', width=sep.length)
|
186
|
+
# -->
|
187
|
+
# This is similar to #breakable except the decision to break or not is
|
188
|
+
# determined individually.
|
189
|
+
#
|
190
|
+
# Two #fill_breakable under a group may cause 4 results: (break,break),
|
191
|
+
# (break,non-break), (non-break,break), (non-break,non-break). This is different
|
192
|
+
# to #breakable because two #breakable under a group may cause 2 results:
|
193
|
+
# (break,break), (non-break,non-break).
|
194
|
+
#
|
195
|
+
# The text `sep` is inserted if a line is not broken at this point.
|
196
|
+
#
|
197
|
+
# If `sep` is not specified, " " is used.
|
198
|
+
#
|
199
|
+
# If `width` is not specified, `sep.length` is used. You will have to specify
|
200
|
+
# this when `sep` is a multibyte character, for example.
|
201
|
+
#
|
202
|
+
def fill_breakable: (?String sep, ?Integer width) -> void
|
203
|
+
|
204
|
+
# <!--
|
205
|
+
# rdoc-file=lib/prettyprint.rb
|
206
|
+
# - breakable(sep=' ', width=sep.length)
|
207
|
+
# -->
|
208
|
+
# This says "you can break a line here if necessary", and a `width`-column text
|
209
|
+
# `sep` is inserted if a line is not broken at the point.
|
210
|
+
#
|
211
|
+
# If `sep` is not specified, " " is used.
|
212
|
+
#
|
213
|
+
# If `width` is not specified, `sep.length` is used. You will have to specify
|
214
|
+
# this when `sep` is a multibyte character, for example.
|
215
|
+
#
|
216
|
+
def breakable: (?String sep, ?Integer width) -> void
|
217
|
+
|
218
|
+
# <!--
|
219
|
+
# rdoc-file=lib/prettyprint.rb
|
220
|
+
# - group(indent=0, open_obj='', close_obj='', open_width=open_obj.length, close_width=close_obj.length) { || ... }
|
221
|
+
# -->
|
222
|
+
# Groups line break hints added in the block. The line break hints are all to be
|
223
|
+
# used or not.
|
224
|
+
#
|
225
|
+
# If `indent` is specified, the method call is regarded as nested by
|
226
|
+
# nest(indent) { ... }.
|
227
|
+
#
|
228
|
+
# If `open_obj` is specified, `text open_obj, open_width` is called before
|
229
|
+
# grouping. If `close_obj` is specified, `text close_obj, close_width` is called
|
230
|
+
# after grouping.
|
231
|
+
#
|
232
|
+
def group: (?::Integer indent, ?::String open_obj, ?::String close_obj, ?Integer open_width, ?Integer close_width) { () -> untyped } -> Integer
|
233
|
+
|
234
|
+
# <!--
|
235
|
+
# rdoc-file=lib/prettyprint.rb
|
236
|
+
# - group_sub() { || ... }
|
237
|
+
# -->
|
238
|
+
# Takes a block and queues a new group that is indented 1 level further.
|
239
|
+
#
|
240
|
+
def group_sub: () { () -> untyped } -> untyped
|
241
|
+
|
242
|
+
# <!--
|
243
|
+
# rdoc-file=lib/prettyprint.rb
|
244
|
+
# - nest(indent) { || ... }
|
245
|
+
# -->
|
246
|
+
# Increases left margin after newline with `indent` for line breaks added in the
|
247
|
+
# block.
|
248
|
+
#
|
249
|
+
def nest: (Integer indent) { () -> untyped } -> void
|
250
|
+
|
251
|
+
# <!--
|
252
|
+
# rdoc-file=lib/prettyprint.rb
|
253
|
+
# - flush()
|
254
|
+
# -->
|
255
|
+
# outputs buffered data.
|
256
|
+
#
|
257
|
+
def flush: () -> Integer
|
258
|
+
|
259
|
+
class Text
|
260
|
+
def initialize: () -> void
|
261
|
+
|
262
|
+
attr_reader width: Integer
|
263
|
+
|
264
|
+
def output: (untyped `out`, untyped output_width) -> untyped
|
265
|
+
|
266
|
+
def add: (untyped obj, Integer width) -> void
|
267
|
+
end
|
268
|
+
|
269
|
+
class Breakable
|
270
|
+
def initialize: (String sep, Integer width, PrettyPrint q) -> void
|
271
|
+
|
272
|
+
attr_reader obj: String
|
273
|
+
|
274
|
+
attr_reader width: Integer
|
275
|
+
|
276
|
+
attr_reader indent: Integer
|
277
|
+
|
278
|
+
def output: (untyped `out`, Integer output_width) -> untyped
|
279
|
+
end
|
280
|
+
|
281
|
+
class Group
|
282
|
+
def initialize: (untyped depth) -> void
|
283
|
+
|
284
|
+
attr_reader depth: untyped
|
285
|
+
|
286
|
+
attr_reader breakables: Array[PrettyPrint::Breakable]
|
287
|
+
|
288
|
+
def break: () -> bool
|
289
|
+
|
290
|
+
def break?: () -> bool
|
291
|
+
|
292
|
+
def first?: () -> bool
|
293
|
+
end
|
294
|
+
|
295
|
+
class GroupQueue
|
296
|
+
def initialize: (*untyped groups) -> void
|
297
|
+
|
298
|
+
def enq: (untyped group) -> void
|
299
|
+
|
300
|
+
def deq: () -> (PrettyPrint::Group | nil)
|
301
|
+
|
302
|
+
def delete: (PrettyPrint::Group group) -> void
|
303
|
+
end
|
304
|
+
|
305
|
+
# <!-- rdoc-file=lib/prettyprint.rb -->
|
306
|
+
# PrettyPrint::SingleLine is used by PrettyPrint.singleline_format
|
307
|
+
#
|
308
|
+
# It is passed to be similar to a PrettyPrint object itself, by responding to:
|
309
|
+
# * #text
|
310
|
+
# * #breakable
|
311
|
+
# * #nest
|
312
|
+
# * #group
|
313
|
+
# * #flush
|
314
|
+
# * #first?
|
315
|
+
#
|
316
|
+
# but instead, the output has no line breaks
|
317
|
+
#
|
318
|
+
class SingleLine
|
319
|
+
# <!--
|
320
|
+
# rdoc-file=lib/prettyprint.rb
|
321
|
+
# - new(output, maxwidth=nil, newline=nil)
|
322
|
+
# -->
|
323
|
+
# Create a PrettyPrint::SingleLine object
|
324
|
+
#
|
325
|
+
# Arguments:
|
326
|
+
# * `output` - String (or similar) to store rendered text. Needs to respond to
|
327
|
+
# '<<'
|
328
|
+
# * `maxwidth` - Argument position expected to be here for compatibility.
|
329
|
+
# This argument is a noop.
|
330
|
+
#
|
331
|
+
# * `newline` - Argument position expected to be here for compatibility.
|
332
|
+
# This argument is a noop.
|
333
|
+
#
|
334
|
+
def initialize: (String | untyped output, ?Integer? maxwidth, ?String? newline) -> void
|
335
|
+
|
336
|
+
# <!--
|
337
|
+
# rdoc-file=lib/prettyprint.rb
|
338
|
+
# - text(obj, width=nil)
|
339
|
+
# -->
|
340
|
+
# Add `obj` to the text to be output.
|
341
|
+
#
|
342
|
+
# `width` argument is here for compatibility. It is a noop argument.
|
343
|
+
#
|
344
|
+
def text: (String obj, ?Integer? width) -> void
|
345
|
+
|
346
|
+
# <!--
|
347
|
+
# rdoc-file=lib/prettyprint.rb
|
348
|
+
# - breakable(sep=' ', width=nil)
|
349
|
+
# -->
|
350
|
+
# Appends `sep` to the text to be output. By default `sep` is ' '
|
351
|
+
#
|
352
|
+
# `width` argument is here for compatibility. It is a noop argument.
|
353
|
+
#
|
354
|
+
def breakable: (?String sep, ?Integer? width) -> void
|
355
|
+
|
356
|
+
def nest: (untyped indent) { () -> untyped } -> void
|
357
|
+
|
358
|
+
# <!--
|
359
|
+
# rdoc-file=lib/prettyprint.rb
|
360
|
+
# - group(indent=nil, open_obj='', close_obj='', open_width=nil, close_width=nil) { || ... }
|
361
|
+
# -->
|
362
|
+
# Opens a block for grouping objects to be pretty printed.
|
363
|
+
#
|
364
|
+
# Arguments:
|
365
|
+
# * `indent` - noop argument. Present for compatibility.
|
366
|
+
# * `open_obj` - text appended before the &blok. Default is ''
|
367
|
+
# * `close_obj` - text appended after the &blok. Default is ''
|
368
|
+
# * `open_width` - noop argument. Present for compatibility.
|
369
|
+
# * `close_width` - noop argument. Present for compatibility.
|
370
|
+
#
|
371
|
+
def group: (?Integer? indent, ?String open_obj, ?String close_obj, ?Integer? open_width, ?Integer? close_width) { () -> untyped } -> untyped
|
372
|
+
|
373
|
+
def flush: () -> nil
|
374
|
+
|
375
|
+
# <!--
|
376
|
+
# rdoc-file=lib/prettyprint.rb
|
377
|
+
# - first?()
|
378
|
+
# -->
|
379
|
+
# This is used as a predicate, and ought to be called first.
|
380
|
+
#
|
381
|
+
def first?: () -> bool
|
382
|
+
end
|
383
|
+
end
|