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
@@ -0,0 +1,577 @@
|
|
1
|
+
# <!-- rdoc-file=ext/digest/digest.c -->
|
2
|
+
# This module provides a framework for message digest libraries.
|
3
|
+
#
|
4
|
+
# You may want to look at OpenSSL::Digest as it supports more algorithms.
|
5
|
+
#
|
6
|
+
# A cryptographic hash function is a procedure that takes data and returns a
|
7
|
+
# fixed bit string: the hash value, also known as *digest*. Hash functions are
|
8
|
+
# also called one-way functions, it is easy to compute a digest from a message,
|
9
|
+
# but it is infeasible to generate a message from a digest.
|
10
|
+
#
|
11
|
+
# ## Examples
|
12
|
+
#
|
13
|
+
# require 'digest'
|
14
|
+
#
|
15
|
+
# # Compute a complete digest
|
16
|
+
# Digest::SHA256.digest 'message' #=> "\xABS\n\x13\xE4Y..."
|
17
|
+
#
|
18
|
+
# sha256 = Digest::SHA256.new
|
19
|
+
# sha256.digest 'message' #=> "\xABS\n\x13\xE4Y..."
|
20
|
+
#
|
21
|
+
# # Other encoding formats
|
22
|
+
# Digest::SHA256.hexdigest 'message' #=> "ab530a13e459..."
|
23
|
+
# Digest::SHA256.base64digest 'message' #=> "q1MKE+RZFJgr..."
|
24
|
+
#
|
25
|
+
# # Compute digest by chunks
|
26
|
+
# md5 = Digest::MD5.new
|
27
|
+
# md5.update 'message1'
|
28
|
+
# md5 << 'message2' # << is an alias for update
|
29
|
+
#
|
30
|
+
# md5.hexdigest #=> "94af09c09bb9..."
|
31
|
+
#
|
32
|
+
# # Compute digest for a file
|
33
|
+
# sha256 = Digest::SHA256.file 'testfile'
|
34
|
+
# sha256.hexdigest
|
35
|
+
#
|
36
|
+
# Additionally digests can be encoded in "bubble babble" format as a sequence of
|
37
|
+
# consonants and vowels which is more recognizable and comparable than a
|
38
|
+
# hexadecimal digest.
|
39
|
+
#
|
40
|
+
# require 'digest/bubblebabble'
|
41
|
+
#
|
42
|
+
# Digest::SHA256.bubblebabble 'message' #=> "xopoh-fedac-fenyh-..."
|
43
|
+
#
|
44
|
+
# See the bubble babble specification at
|
45
|
+
# http://web.mit.edu/kenta/www/one/bubblebabble/spec/jrtrjwzi/draft-huima-01.txt
|
46
|
+
# .
|
47
|
+
#
|
48
|
+
# ## Digest algorithms
|
49
|
+
#
|
50
|
+
# Different digest algorithms (or hash functions) are available:
|
51
|
+
#
|
52
|
+
# MD5
|
53
|
+
# : See RFC 1321 The MD5 Message-Digest Algorithm
|
54
|
+
#
|
55
|
+
# RIPEMD-160
|
56
|
+
# : As Digest::RMD160. See
|
57
|
+
# http://homes.esat.kuleuven.be/~bosselae/ripemd160.html.
|
58
|
+
#
|
59
|
+
# SHA1
|
60
|
+
# : See FIPS 180 Secure Hash Standard.
|
61
|
+
#
|
62
|
+
# SHA2 family
|
63
|
+
# : See FIPS 180 Secure Hash Standard which defines the following algorithms:
|
64
|
+
# * SHA512
|
65
|
+
# * SHA384
|
66
|
+
# * SHA256
|
67
|
+
#
|
68
|
+
#
|
69
|
+
# The latest versions of the FIPS publications can be found here:
|
70
|
+
# http://csrc.nist.gov/publications/PubsFIPS.html.
|
71
|
+
#
|
72
|
+
module Digest
|
73
|
+
# <!--
|
74
|
+
# rdoc-file=ext/digest/bubblebabble/bubblebabble.c
|
75
|
+
# - Digest.bubblebabble(string) -> bubblebabble_string
|
76
|
+
# -->
|
77
|
+
# Returns a BubbleBabble encoded version of a given *string*.
|
78
|
+
#
|
79
|
+
def self.bubblebabble: (string) -> String
|
80
|
+
|
81
|
+
def self.const_missing: (Symbol name) -> singleton(::Digest::Base)
|
82
|
+
|
83
|
+
# <!--
|
84
|
+
# rdoc-file=ext/digest/digest.c
|
85
|
+
# - Digest.hexencode(string) -> hexencoded_string
|
86
|
+
# -->
|
87
|
+
# Generates a hex-encoded version of a given *string*.
|
88
|
+
#
|
89
|
+
def self.hexencode: (string) -> String
|
90
|
+
|
91
|
+
private
|
92
|
+
|
93
|
+
def bubblebabble: (string) -> String
|
94
|
+
|
95
|
+
def hexencode: (string) -> String
|
96
|
+
end
|
97
|
+
|
98
|
+
# <!-- rdoc-file=ext/digest/lib/digest.rb -->
|
99
|
+
# A mutex for Digest().
|
100
|
+
#
|
101
|
+
Digest::REQUIRE_MUTEX: Thread::Mutex
|
102
|
+
|
103
|
+
# <!-- rdoc-file=ext/digest/digest.c -->
|
104
|
+
# This module provides instance methods for a digest implementation object to
|
105
|
+
# calculate message digest values.
|
106
|
+
#
|
107
|
+
module Digest::Instance
|
108
|
+
# <!-- rdoc-file=ext/digest/digest.c -->
|
109
|
+
# Updates the digest using a given *string* and returns self.
|
110
|
+
#
|
111
|
+
# The update() method and the left-shift operator are overridden by each
|
112
|
+
# implementation subclass. (One should be an alias for the other)
|
113
|
+
#
|
114
|
+
def <<: (string) -> self
|
115
|
+
|
116
|
+
# <!--
|
117
|
+
# rdoc-file=ext/digest/digest.c
|
118
|
+
# - digest_obj == another_digest_obj -> boolean
|
119
|
+
# - digest_obj == string -> boolean
|
120
|
+
# -->
|
121
|
+
# If a string is given, checks whether it is equal to the hex-encoded hash value
|
122
|
+
# of the digest object. If another digest instance is given, checks whether
|
123
|
+
# they have the same hash value. Otherwise returns false.
|
124
|
+
#
|
125
|
+
def ==: (instance | string) -> bool
|
126
|
+
|
127
|
+
# <!--
|
128
|
+
# rdoc-file=ext/digest/lib/digest.rb
|
129
|
+
# - base64digest(str = nil)
|
130
|
+
# -->
|
131
|
+
# If none is given, returns the resulting hash value of the digest in a base64
|
132
|
+
# encoded form, keeping the digest's state.
|
133
|
+
#
|
134
|
+
# If a `string` is given, returns the hash value for the given `string` in a
|
135
|
+
# base64 encoded form, resetting the digest to the initial state before and
|
136
|
+
# after the process.
|
137
|
+
#
|
138
|
+
# In either case, the return value is properly padded with '=' and contains no
|
139
|
+
# line feeds.
|
140
|
+
#
|
141
|
+
def base64digest: (?string? str) -> String
|
142
|
+
|
143
|
+
# <!--
|
144
|
+
# rdoc-file=ext/digest/lib/digest.rb
|
145
|
+
# - base64digest!()
|
146
|
+
# -->
|
147
|
+
# Returns the resulting hash value and resets the digest to the initial state.
|
148
|
+
#
|
149
|
+
def base64digest!: () -> String
|
150
|
+
|
151
|
+
# <!--
|
152
|
+
# rdoc-file=ext/digest/digest.c
|
153
|
+
# - digest_obj.block_length -> integer
|
154
|
+
# -->
|
155
|
+
# Returns the block length of the digest.
|
156
|
+
#
|
157
|
+
# This method is overridden by each implementation subclass.
|
158
|
+
#
|
159
|
+
def block_length: () -> Integer
|
160
|
+
|
161
|
+
# <!--
|
162
|
+
# rdoc-file=ext/digest/bubblebabble/bubblebabble.c
|
163
|
+
# - digest_obj.bubblebabble -> hash_string
|
164
|
+
# -->
|
165
|
+
# Returns the resulting hash value in a Bubblebabble encoded form.
|
166
|
+
#
|
167
|
+
def bubblebabble: () -> String
|
168
|
+
|
169
|
+
# <!--
|
170
|
+
# rdoc-file=ext/digest/digest.c
|
171
|
+
# - digest_obj.digest -> string
|
172
|
+
# - digest_obj.digest(string) -> string
|
173
|
+
# -->
|
174
|
+
# If none is given, returns the resulting hash value of the digest, keeping the
|
175
|
+
# digest's state.
|
176
|
+
#
|
177
|
+
# If a *string* is given, returns the hash value for the given *string*,
|
178
|
+
# resetting the digest to the initial state before and after the process.
|
179
|
+
#
|
180
|
+
def digest: (?string) -> String
|
181
|
+
|
182
|
+
# <!--
|
183
|
+
# rdoc-file=ext/digest/digest.c
|
184
|
+
# - digest_obj.digest! -> string
|
185
|
+
# -->
|
186
|
+
# Returns the resulting hash value and resets the digest to the initial state.
|
187
|
+
#
|
188
|
+
def digest!: () -> String
|
189
|
+
|
190
|
+
# <!--
|
191
|
+
# rdoc-file=ext/digest/digest.c
|
192
|
+
# - digest_obj.digest_length -> integer
|
193
|
+
# -->
|
194
|
+
# Returns the length of the hash value of the digest.
|
195
|
+
#
|
196
|
+
# This method should be overridden by each implementation subclass. If not,
|
197
|
+
# digest_obj.digest().length() is returned.
|
198
|
+
#
|
199
|
+
def digest_length: () -> Integer
|
200
|
+
|
201
|
+
# <!--
|
202
|
+
# rdoc-file=ext/digest/lib/digest.rb
|
203
|
+
# - file(name)
|
204
|
+
# -->
|
205
|
+
# Updates the digest with the contents of a given file *name* and returns self.
|
206
|
+
#
|
207
|
+
def file: (string name) -> instance
|
208
|
+
|
209
|
+
# <!--
|
210
|
+
# rdoc-file=ext/digest/digest.c
|
211
|
+
# - digest_obj.hexdigest -> string
|
212
|
+
# - digest_obj.hexdigest(string) -> string
|
213
|
+
# -->
|
214
|
+
# If none is given, returns the resulting hash value of the digest in a
|
215
|
+
# hex-encoded form, keeping the digest's state.
|
216
|
+
#
|
217
|
+
# If a *string* is given, returns the hash value for the given *string* in a
|
218
|
+
# hex-encoded form, resetting the digest to the initial state before and after
|
219
|
+
# the process.
|
220
|
+
#
|
221
|
+
def hexdigest: (?string) -> String
|
222
|
+
|
223
|
+
# <!--
|
224
|
+
# rdoc-file=ext/digest/digest.c
|
225
|
+
# - digest_obj.hexdigest! -> string
|
226
|
+
# -->
|
227
|
+
# Returns the resulting hash value in a hex-encoded form and resets the digest
|
228
|
+
# to the initial state.
|
229
|
+
#
|
230
|
+
def hexdigest!: () -> String
|
231
|
+
|
232
|
+
# <!--
|
233
|
+
# rdoc-file=ext/digest/digest.c
|
234
|
+
# - digest_obj.inspect -> string
|
235
|
+
# -->
|
236
|
+
# Creates a printable version of the digest object.
|
237
|
+
#
|
238
|
+
def inspect: () -> String
|
239
|
+
|
240
|
+
# <!--
|
241
|
+
# rdoc-file=ext/digest/digest.c
|
242
|
+
# - digest_obj.length -> integer
|
243
|
+
# - digest_obj.size -> integer
|
244
|
+
# -->
|
245
|
+
# Returns digest_obj.digest_length().
|
246
|
+
#
|
247
|
+
def length: () -> Integer
|
248
|
+
|
249
|
+
# <!--
|
250
|
+
# rdoc-file=ext/digest/digest.c
|
251
|
+
# - digest_obj.new -> another_digest_obj
|
252
|
+
# -->
|
253
|
+
# Returns a new, initialized copy of the digest object. Equivalent to
|
254
|
+
# digest_obj.clone().reset().
|
255
|
+
#
|
256
|
+
def new: () -> instance
|
257
|
+
|
258
|
+
# <!--
|
259
|
+
# rdoc-file=ext/digest/digest.c
|
260
|
+
# - digest_obj.reset -> digest_obj
|
261
|
+
# -->
|
262
|
+
# Resets the digest to the initial state and returns self.
|
263
|
+
#
|
264
|
+
# This method is overridden by each implementation subclass.
|
265
|
+
#
|
266
|
+
def reset: () -> self
|
267
|
+
|
268
|
+
# <!-- rdoc-file=ext/digest/digest.c -->
|
269
|
+
# Returns digest_obj.digest_length().
|
270
|
+
#
|
271
|
+
def size: () -> Integer
|
272
|
+
|
273
|
+
# <!--
|
274
|
+
# rdoc-file=ext/digest/digest.c
|
275
|
+
# - digest_obj.to_s -> string
|
276
|
+
# -->
|
277
|
+
# Returns digest_obj.hexdigest().
|
278
|
+
#
|
279
|
+
def to_s: () -> String
|
280
|
+
|
281
|
+
# <!--
|
282
|
+
# rdoc-file=ext/digest/digest.c
|
283
|
+
# - digest_obj.update(string) -> digest_obj
|
284
|
+
# - digest_obj << string -> digest_obj
|
285
|
+
# -->
|
286
|
+
# Updates the digest using a given *string* and returns self.
|
287
|
+
#
|
288
|
+
# The update() method and the left-shift operator are overridden by each
|
289
|
+
# implementation subclass. (One should be an alias for the other)
|
290
|
+
#
|
291
|
+
def update: (string) -> self
|
292
|
+
|
293
|
+
private
|
294
|
+
|
295
|
+
# <!--
|
296
|
+
# rdoc-file=ext/digest/digest.c
|
297
|
+
# - digest_obj.instance_eval { finish } -> digest_obj
|
298
|
+
# -->
|
299
|
+
# Finishes the digest and returns the resulting hash value.
|
300
|
+
#
|
301
|
+
# This method is overridden by each implementation subclass and often made
|
302
|
+
# private, because some of those subclasses may leave internal data
|
303
|
+
# uninitialized. Do not call this method from outside. Use #digest!() instead,
|
304
|
+
# which ensures that internal data be reset for security reasons.
|
305
|
+
#
|
306
|
+
def finish: () -> self
|
307
|
+
end
|
308
|
+
|
309
|
+
# <!-- rdoc-file=ext/digest/digest.c -->
|
310
|
+
# This module stands as a base class for digest implementation classes.
|
311
|
+
#
|
312
|
+
class Digest::Class
|
313
|
+
include ::Digest::Instance
|
314
|
+
|
315
|
+
# <!--
|
316
|
+
# rdoc-file=ext/digest/lib/digest.rb
|
317
|
+
# - base64digest(str, *args)
|
318
|
+
# -->
|
319
|
+
# Returns the base64 encoded hash value of a given *string*. The return value
|
320
|
+
# is properly padded with '=' and contains no line feeds.
|
321
|
+
#
|
322
|
+
def self.base64digest: (string str) -> String
|
323
|
+
|
324
|
+
# <!--
|
325
|
+
# rdoc-file=ext/digest/bubblebabble/bubblebabble.c
|
326
|
+
# - Digest::Class.bubblebabble(string, ...) -> hash_string
|
327
|
+
# -->
|
328
|
+
# Returns the BubbleBabble encoded hash value of a given *string*.
|
329
|
+
#
|
330
|
+
def self.bubblebabble: (string) -> String
|
331
|
+
|
332
|
+
# <!--
|
333
|
+
# rdoc-file=ext/digest/digest.c
|
334
|
+
# - Digest::Class.digest(string, *parameters) -> hash_string
|
335
|
+
# -->
|
336
|
+
# Returns the hash value of a given *string*. This is equivalent to
|
337
|
+
# Digest::Class.new(*parameters).digest(string), where extra *parameters*, if
|
338
|
+
# any, are passed through to the constructor and the *string* is passed to
|
339
|
+
# #digest().
|
340
|
+
#
|
341
|
+
def self.digest: (string) -> String
|
342
|
+
|
343
|
+
# <!--
|
344
|
+
# rdoc-file=ext/digest/lib/digest.rb
|
345
|
+
# - file(name, *args)
|
346
|
+
# -->
|
347
|
+
# Creates a digest object and reads a given file, *name*. Optional arguments are
|
348
|
+
# passed to the constructor of the digest class.
|
349
|
+
#
|
350
|
+
# p Digest::SHA256.file("X11R6.8.2-src.tar.bz2").hexdigest
|
351
|
+
# # => "f02e3c85572dc9ad7cb77c2a638e3be24cc1b5bea9fdbb0b0299c9668475c534"
|
352
|
+
#
|
353
|
+
def self.file: (string name) -> instance
|
354
|
+
|
355
|
+
# <!--
|
356
|
+
# rdoc-file=ext/digest/digest.c
|
357
|
+
# - Digest::Class.hexdigest(string[, ...]) -> hash_string
|
358
|
+
# -->
|
359
|
+
# Returns the hex-encoded hash value of a given *string*. This is almost
|
360
|
+
# equivalent to Digest.hexencode(Digest::Class.new(*parameters).digest(string)).
|
361
|
+
#
|
362
|
+
def self.hexdigest: (string) -> String
|
363
|
+
|
364
|
+
private
|
365
|
+
|
366
|
+
def initialize: () -> void
|
367
|
+
end
|
368
|
+
|
369
|
+
# <!-- rdoc-file=ext/digest/digest.c -->
|
370
|
+
# This abstract class provides a common interface to message digest
|
371
|
+
# implementation classes written in C.
|
372
|
+
#
|
373
|
+
# ## Write a Digest subclass in C
|
374
|
+
# Digest::Base provides a common interface to message digest classes written in
|
375
|
+
# C. These classes must provide a struct of type rb_digest_metadata_t:
|
376
|
+
# typedef int (*rb_digest_hash_init_func_t)(void *);
|
377
|
+
# typedef void (*rb_digest_hash_update_func_t)(void *, unsigned char *, size_t);
|
378
|
+
# typedef int (*rb_digest_hash_finish_func_t)(void *, unsigned char *);
|
379
|
+
#
|
380
|
+
# typedef struct {
|
381
|
+
# int api_version;
|
382
|
+
# size_t digest_len;
|
383
|
+
# size_t block_len;
|
384
|
+
# size_t ctx_size;
|
385
|
+
# rb_digest_hash_init_func_t init_func;
|
386
|
+
# rb_digest_hash_update_func_t update_func;
|
387
|
+
# rb_digest_hash_finish_func_t finish_func;
|
388
|
+
# } rb_digest_metadata_t;
|
389
|
+
#
|
390
|
+
# This structure must be set as an instance variable named `metadata` (without
|
391
|
+
# the +@+ in front of the name). By example:
|
392
|
+
# static const rb_digest_metadata_t sha1 = {
|
393
|
+
# RUBY_DIGEST_API_VERSION,
|
394
|
+
# SHA1_DIGEST_LENGTH,
|
395
|
+
# SHA1_BLOCK_LENGTH,
|
396
|
+
# sizeof(SHA1_CTX),
|
397
|
+
# (rb_digest_hash_init_func_t)SHA1_Init,
|
398
|
+
# (rb_digest_hash_update_func_t)SHA1_Update,
|
399
|
+
# (rb_digest_hash_finish_func_t)SHA1_Finish,
|
400
|
+
# };
|
401
|
+
#
|
402
|
+
# rb_ivar_set(cDigest_SHA1, rb_intern("metadata"),
|
403
|
+
# rb_digest_make_metadata(&sha1));
|
404
|
+
#
|
405
|
+
class Digest::Base < Digest::Class
|
406
|
+
# <!-- rdoc-file=ext/digest/digest.c -->
|
407
|
+
# Update the digest using given *string* and return `self`.
|
408
|
+
#
|
409
|
+
def <<: (string) -> self
|
410
|
+
|
411
|
+
# <!--
|
412
|
+
# rdoc-file=ext/digest/digest.c
|
413
|
+
# - digest_base.block_length -> Integer
|
414
|
+
# -->
|
415
|
+
# Return the block length of the digest in bytes.
|
416
|
+
#
|
417
|
+
def block_length: () -> Integer
|
418
|
+
|
419
|
+
# <!--
|
420
|
+
# rdoc-file=ext/digest/digest.c
|
421
|
+
# - digest_base.digest_length -> Integer
|
422
|
+
# -->
|
423
|
+
# Return the length of the hash value in bytes.
|
424
|
+
#
|
425
|
+
def digest_length: () -> Integer
|
426
|
+
|
427
|
+
# <!--
|
428
|
+
# rdoc-file=ext/digest/digest.c
|
429
|
+
# - digest_base.reset -> digest_base
|
430
|
+
# -->
|
431
|
+
# Reset the digest to its initial state and return `self`.
|
432
|
+
#
|
433
|
+
def reset: () -> self
|
434
|
+
|
435
|
+
%a{annotate:rdoc:skip}
|
436
|
+
alias update <<
|
437
|
+
|
438
|
+
private
|
439
|
+
|
440
|
+
def finish: () -> String
|
441
|
+
|
442
|
+
def initialize_copy: (self) -> self
|
443
|
+
end
|
444
|
+
|
445
|
+
# <!-- rdoc-file=ext/digest/sha1/sha1init.c -->
|
446
|
+
# A class for calculating message digests using the SHA-1 Secure Hash Algorithm
|
447
|
+
# by NIST (the US' National Institute of Standards and Technology), described in
|
448
|
+
# FIPS PUB 180-1.
|
449
|
+
#
|
450
|
+
# See Digest::Instance for digest API.
|
451
|
+
#
|
452
|
+
# SHA-1 calculates a digest of 160 bits (20 bytes).
|
453
|
+
#
|
454
|
+
# ## Examples
|
455
|
+
# require 'digest'
|
456
|
+
#
|
457
|
+
# # Compute a complete digest
|
458
|
+
# Digest::SHA1.hexdigest 'abc' #=> "a9993e36..."
|
459
|
+
#
|
460
|
+
# # Compute digest by chunks
|
461
|
+
# sha1 = Digest::SHA1.new # =>#<Digest::SHA1>
|
462
|
+
# sha1.update "ab"
|
463
|
+
# sha1 << "c" # alias for #update
|
464
|
+
# sha1.hexdigest # => "a9993e36..."
|
465
|
+
#
|
466
|
+
# # Use the same object to compute another digest
|
467
|
+
# sha1.reset
|
468
|
+
# sha1 << "message"
|
469
|
+
# sha1.hexdigest # => "6f9b9af3..."
|
470
|
+
#
|
471
|
+
class Digest::SHA1 < Digest::Base
|
472
|
+
end
|
473
|
+
|
474
|
+
# <!-- rdoc-file=ext/digest/md5/md5init.c -->
|
475
|
+
# A class for calculating message digests using the MD5 Message-Digest Algorithm
|
476
|
+
# by RSA Data Security, Inc., described in RFC1321.
|
477
|
+
#
|
478
|
+
# MD5 calculates a digest of 128 bits (16 bytes).
|
479
|
+
#
|
480
|
+
# ## Examples
|
481
|
+
# require 'digest'
|
482
|
+
#
|
483
|
+
# # Compute a complete digest
|
484
|
+
# Digest::MD5.hexdigest 'abc' #=> "90015098..."
|
485
|
+
#
|
486
|
+
# # Compute digest by chunks
|
487
|
+
# md5 = Digest::MD5.new # =>#<Digest::MD5>
|
488
|
+
# md5.update "ab"
|
489
|
+
# md5 << "c" # alias for #update
|
490
|
+
# md5.hexdigest # => "90015098..."
|
491
|
+
#
|
492
|
+
# # Use the same object to compute another digest
|
493
|
+
# md5.reset
|
494
|
+
# md5 << "message"
|
495
|
+
# md5.hexdigest # => "78e73102..."
|
496
|
+
#
|
497
|
+
class Digest::MD5 < Digest::Base
|
498
|
+
end
|
499
|
+
|
500
|
+
# <!-- rdoc-file=ext/digest/rmd160/rmd160init.c -->
|
501
|
+
# A class for calculating message digests using RIPEMD-160 cryptographic hash
|
502
|
+
# function, designed by Hans Dobbertin, Antoon Bosselaers, and Bart Preneel.
|
503
|
+
#
|
504
|
+
# RMD160 calculates a digest of 160 bits (20 bytes).
|
505
|
+
#
|
506
|
+
# ## Examples
|
507
|
+
# require 'digest'
|
508
|
+
#
|
509
|
+
# # Compute a complete digest
|
510
|
+
# Digest::RMD160.hexdigest 'abc' #=> "8eb208f7..."
|
511
|
+
#
|
512
|
+
# # Compute digest by chunks
|
513
|
+
# rmd160 = Digest::RMD160.new # =>#<Digest::RMD160>
|
514
|
+
# rmd160.update "ab"
|
515
|
+
# rmd160 << "c" # alias for #update
|
516
|
+
# rmd160.hexdigest # => "8eb208f7..."
|
517
|
+
#
|
518
|
+
# # Use the same object to compute another digest
|
519
|
+
# rmd160.reset
|
520
|
+
# rmd160 << "message"
|
521
|
+
# rmd160.hexdigest # => "1dddbe1b..."
|
522
|
+
#
|
523
|
+
class Digest::RMD160 < Digest::Base
|
524
|
+
end
|
525
|
+
|
526
|
+
# <!-- rdoc-file=ext/digest/sha2/sha2init.c -->
|
527
|
+
# Classes for calculating message digests using the SHA-256/384/512 Secure Hash
|
528
|
+
# Algorithm(s) by NIST (the US' National Institute of Standards and Technology),
|
529
|
+
# described in FIPS PUB 180-2.
|
530
|
+
#
|
531
|
+
# See SHA2.
|
532
|
+
#
|
533
|
+
class Digest::SHA256 < Digest::Base
|
534
|
+
end
|
535
|
+
|
536
|
+
# <!-- rdoc-file=ext/digest/sha2/sha2init.c -->
|
537
|
+
# Classes for calculating message digests using the SHA-256/384/512 Secure Hash
|
538
|
+
# Algorithm(s) by NIST (the US' National Institute of Standards and Technology),
|
539
|
+
# described in FIPS PUB 180-2.
|
540
|
+
#
|
541
|
+
# See SHA2.
|
542
|
+
#
|
543
|
+
class Digest::SHA384 < Digest::Base
|
544
|
+
end
|
545
|
+
|
546
|
+
# <!-- rdoc-file=ext/digest/sha2/sha2init.c -->
|
547
|
+
# Classes for calculating message digests using the SHA-256/384/512 Secure Hash
|
548
|
+
# Algorithm(s) by NIST (the US' National Institute of Standards and Technology),
|
549
|
+
# described in FIPS PUB 180-2.
|
550
|
+
#
|
551
|
+
# See SHA2.
|
552
|
+
#
|
553
|
+
class Digest::SHA512 < Digest::Base
|
554
|
+
end
|
555
|
+
|
556
|
+
%a{annotate:rdoc:skip}
|
557
|
+
class Object
|
558
|
+
# <!--
|
559
|
+
# rdoc-file=ext/digest/lib/digest.rb
|
560
|
+
# - Digest(name) -> digest_subclass
|
561
|
+
# -->
|
562
|
+
# Returns a Digest subclass by `name` in a thread-safe manner even when
|
563
|
+
# on-demand loading is involved.
|
564
|
+
#
|
565
|
+
# require 'digest'
|
566
|
+
#
|
567
|
+
# Digest("MD5")
|
568
|
+
# # => Digest::MD5
|
569
|
+
#
|
570
|
+
# Digest(:SHA256)
|
571
|
+
# # => Digest::SHA256
|
572
|
+
#
|
573
|
+
# Digest(:Foo)
|
574
|
+
# # => LoadError: library not found for class Digest::Foo -- digest/foo
|
575
|
+
#
|
576
|
+
def Digest: (interned name) -> singleton(::Digest::Base)
|
577
|
+
end
|