tdiary 5.5.0 → 5.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/ChangeLog +2 -0
- data/Gemfile +2 -1
- data/Gemfile.lock +37 -37
- data/doc/UPGRADE.md +1 -1
- data/lib/tdiary/admin.rb +11 -13
- data/lib/tdiary/application.rb +2 -7
- data/lib/tdiary/author_only_base.rb +78 -9
- data/lib/tdiary/base.rb +2 -2
- data/lib/tdiary/cgi_adapter.rb +7 -5
- data/lib/tdiary/cgi_compat.rb +27 -95
- data/lib/tdiary/configuration.rb +4 -0
- data/lib/tdiary/core_ext.rb +146 -1
- data/lib/tdiary/dispatcher/index_main.rb +5 -23
- data/lib/tdiary/dispatcher/update_main.rb +2 -17
- data/lib/tdiary/dispatcher.rb +29 -15
- data/lib/tdiary/filter/default.rb +2 -2
- data/lib/tdiary/filter/spam.rb +2 -2
- data/lib/tdiary/filter.rb +1 -1
- data/lib/tdiary/plugin/00default.rb +18 -3
- data/lib/tdiary/plugin/en/00default.rb +15 -0
- data/lib/tdiary/plugin/ja/00default.rb +15 -0
- data/lib/tdiary/plugin.rb +1 -1
- data/lib/tdiary/rack/error_handler.rb +36 -0
- data/lib/tdiary/rack.rb +1 -0
- data/lib/tdiary/request.rb +12 -2
- data/lib/tdiary/server.rb +25 -3
- data/lib/tdiary/version.rb +1 -1
- data/lib/tdiary/view.rb +33 -28
- data/lib/tdiary/view_helper.rb +10 -2
- data/lib/tdiary.rb +6 -1
- data/misc/plugin/image.rb +1 -1
- data/misc/plugin/makerss.rb +3 -3
- data/tdiary.conf.sample +8 -0
- data/tdiary.conf.sample-en +8 -0
- data/vendor/bundle/ruby/3.4.0/cache/net-imap-0.6.6.gem +0 -0
- data/vendor/bundle/ruby/3.4.0/cache/net-protocol-0.3.0.gem +0 -0
- data/vendor/bundle/ruby/3.4.0/cache/rack-3.2.7.gem +0 -0
- data/vendor/bundle/ruby/3.4.0/extensions/x86_64-linux/3.4.0/cgi-0.5.2/gem_make.out +5 -5
- data/vendor/bundle/ruby/3.4.0/extensions/x86_64-linux/3.4.0/date-3.5.1/gem_make.out +5 -5
- data/vendor/bundle/ruby/3.4.0/gems/{net-imap-0.5.15 → net-imap-0.6.6}/Gemfile +3 -4
- data/vendor/bundle/ruby/3.4.0/gems/{net-imap-0.5.15 → net-imap-0.6.6}/README.md +1 -1
- data/vendor/bundle/ruby/3.4.0/gems/net-imap-0.6.6/Rakefile +24 -0
- data/vendor/bundle/ruby/3.4.0/gems/{net-imap-0.5.15 → net-imap-0.6.6}/lib/net/imap/command_data.rb +62 -92
- data/vendor/bundle/ruby/3.4.0/gems/{net-imap-0.5.15 → net-imap-0.6.6}/lib/net/imap/config/attr_accessors.rb +8 -9
- data/vendor/bundle/ruby/3.4.0/gems/{net-imap-0.5.15 → net-imap-0.6.6}/lib/net/imap/config/attr_inheritance.rb +64 -1
- data/vendor/bundle/ruby/3.4.0/gems/{net-imap-0.5.15 → net-imap-0.6.6}/lib/net/imap/config/attr_version_defaults.rb +1 -4
- data/vendor/bundle/ruby/3.4.0/gems/{net-imap-0.5.15 → net-imap-0.6.6}/lib/net/imap/config.rb +209 -35
- data/vendor/bundle/ruby/3.4.0/gems/{net-imap-0.5.15 → net-imap-0.6.6}/lib/net/imap/connection_state.rb +1 -1
- data/vendor/bundle/ruby/3.4.0/gems/{net-imap-0.5.15 → net-imap-0.6.6}/lib/net/imap/data_encoding.rb +127 -27
- data/vendor/bundle/ruby/3.4.0/gems/net-imap-0.6.6/lib/net/imap/errors.rb +372 -0
- data/vendor/bundle/ruby/3.4.0/gems/{net-imap-0.5.15 → net-imap-0.6.6}/lib/net/imap/esearch_result.rb +6 -0
- data/vendor/bundle/ruby/3.4.0/gems/{net-imap-0.5.15 → net-imap-0.6.6}/lib/net/imap/response_data.rb +90 -11
- data/vendor/bundle/ruby/3.4.0/gems/{net-imap-0.5.15 → net-imap-0.6.6}/lib/net/imap/response_parser/parser_utils.rb +14 -23
- data/vendor/bundle/ruby/3.4.0/gems/{net-imap-0.5.15 → net-imap-0.6.6}/lib/net/imap/response_parser.rb +41 -26
- data/vendor/bundle/ruby/3.4.0/gems/{net-imap-0.5.15 → net-imap-0.6.6}/lib/net/imap/response_reader.rb +16 -21
- data/vendor/bundle/ruby/3.4.0/gems/{net-imap-0.5.15 → net-imap-0.6.6}/lib/net/imap/sasl/scram_authenticator.rb +3 -3
- data/vendor/bundle/ruby/3.4.0/gems/{net-imap-0.5.15 → net-imap-0.6.6}/lib/net/imap/search_result.rb +11 -1
- data/vendor/bundle/ruby/3.4.0/gems/{net-imap-0.5.15 → net-imap-0.6.6}/lib/net/imap/sequence_set.rb +620 -312
- data/vendor/bundle/ruby/3.4.0/gems/{net-imap-0.5.15 → net-imap-0.6.6}/lib/net/imap/uidplus_data.rb +2 -63
- data/vendor/bundle/ruby/3.4.0/gems/{net-imap-0.5.15 → net-imap-0.6.6}/lib/net/imap.rb +279 -162
- data/vendor/bundle/ruby/3.4.0/gems/{net-imap-0.5.15 → net-imap-0.6.6}/net-imap.gemspec +1 -1
- data/vendor/bundle/ruby/3.4.0/gems/{net-imap-0.5.15 → net-imap-0.6.6}/rakelib/rdoc.rake +1 -18
- data/vendor/bundle/ruby/3.4.0/gems/{net-protocol-0.2.2/LICENSE.txt → net-protocol-0.3.0/BSDL} +3 -3
- data/vendor/bundle/ruby/3.4.0/gems/net-protocol-0.3.0/COPYING +56 -0
- data/vendor/bundle/ruby/3.4.0/gems/{net-protocol-0.2.2 → net-protocol-0.3.0}/lib/net/protocol.rb +58 -4
- data/vendor/bundle/ruby/3.4.0/gems/{rack-3.2.6 → rack-3.2.7}/CHANGELOG.md +54 -1
- data/vendor/bundle/ruby/3.4.0/gems/{rack-3.2.6 → rack-3.2.7}/lib/rack/utils.rb +3 -3
- data/vendor/bundle/ruby/3.4.0/gems/{rack-3.2.6 → rack-3.2.7}/lib/rack/version.rb +1 -1
- data/vendor/bundle/ruby/3.4.0/specifications/{net-imap-0.5.15.gemspec → net-imap-0.6.6.gemspec} +4 -4
- data/vendor/bundle/ruby/3.4.0/specifications/{net-protocol-0.2.2.gemspec → net-protocol-0.3.0.gemspec} +5 -5
- data/vendor/bundle/ruby/3.4.0/specifications/{rack-3.2.6.gemspec → rack-3.2.7.gemspec} +3 -3
- data/views/tdiary.rconf +2 -0
- metadata +127 -131
- data/vendor/bundle/ruby/3.4.0/cache/net-imap-0.5.15.gem +0 -0
- data/vendor/bundle/ruby/3.4.0/cache/net-protocol-0.2.2.gem +0 -0
- data/vendor/bundle/ruby/3.4.0/cache/rack-3.2.6.gem +0 -0
- data/vendor/bundle/ruby/3.4.0/gems/net-imap-0.5.15/Rakefile +0 -13
- data/vendor/bundle/ruby/3.4.0/gems/net-imap-0.5.15/lib/net/imap/data_lite.rb +0 -226
- data/vendor/bundle/ruby/3.4.0/gems/net-imap-0.5.15/lib/net/imap/errors.rb +0 -118
- data/vendor/bundle/ruby/3.4.0/gems/net-protocol-0.2.2/Gemfile +0 -7
- data/vendor/bundle/ruby/3.4.0/gems/net-protocol-0.2.2/Rakefile +0 -10
- data/vendor/bundle/ruby/3.4.0/gems/net-protocol-0.2.2/bin/console +0 -14
- data/vendor/bundle/ruby/3.4.0/gems/net-protocol-0.2.2/bin/setup +0 -8
- data/vendor/bundle/ruby/3.4.0/gems/net-protocol-0.2.2/net-protocol.gemspec +0 -33
- /data/vendor/bundle/ruby/3.4.0/gems/{net-imap-0.5.15 → net-imap-0.6.6}/BSDL +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{net-imap-0.5.15 → net-imap-0.6.6}/COPYING +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{net-imap-0.5.15 → net-imap-0.6.6}/LICENSE.txt +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{net-imap-0.5.15 → net-imap-0.6.6}/docs/styles.css +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{net-imap-0.5.15 → net-imap-0.6.6}/lib/net/imap/authenticators.rb +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{net-imap-0.5.15 → net-imap-0.6.6}/lib/net/imap/config/attr_type_coercion.rb +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{net-imap-0.5.15 → net-imap-0.6.6}/lib/net/imap/deprecated_client_options.rb +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{net-imap-0.5.15 → net-imap-0.6.6}/lib/net/imap/fetch_data.rb +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{net-imap-0.5.15 → net-imap-0.6.6}/lib/net/imap/flags.rb +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{net-imap-0.5.15 → net-imap-0.6.6}/lib/net/imap/sasl/anonymous_authenticator.rb +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{net-imap-0.5.15 → net-imap-0.6.6}/lib/net/imap/sasl/authentication_exchange.rb +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{net-imap-0.5.15 → net-imap-0.6.6}/lib/net/imap/sasl/authenticators.rb +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{net-imap-0.5.15 → net-imap-0.6.6}/lib/net/imap/sasl/client_adapter.rb +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{net-imap-0.5.15 → net-imap-0.6.6}/lib/net/imap/sasl/cram_md5_authenticator.rb +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{net-imap-0.5.15 → net-imap-0.6.6}/lib/net/imap/sasl/digest_md5_authenticator.rb +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{net-imap-0.5.15 → net-imap-0.6.6}/lib/net/imap/sasl/external_authenticator.rb +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{net-imap-0.5.15 → net-imap-0.6.6}/lib/net/imap/sasl/gs2_header.rb +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{net-imap-0.5.15 → net-imap-0.6.6}/lib/net/imap/sasl/login_authenticator.rb +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{net-imap-0.5.15 → net-imap-0.6.6}/lib/net/imap/sasl/oauthbearer_authenticator.rb +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{net-imap-0.5.15 → net-imap-0.6.6}/lib/net/imap/sasl/plain_authenticator.rb +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{net-imap-0.5.15 → net-imap-0.6.6}/lib/net/imap/sasl/protocol_adapters.rb +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{net-imap-0.5.15 → net-imap-0.6.6}/lib/net/imap/sasl/scram_algorithm.rb +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{net-imap-0.5.15 → net-imap-0.6.6}/lib/net/imap/sasl/stringprep.rb +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{net-imap-0.5.15 → net-imap-0.6.6}/lib/net/imap/sasl/xoauth2_authenticator.rb +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{net-imap-0.5.15 → net-imap-0.6.6}/lib/net/imap/sasl.rb +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{net-imap-0.5.15 → net-imap-0.6.6}/lib/net/imap/sasl_adapter.rb +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{net-imap-0.5.15 → net-imap-0.6.6}/lib/net/imap/stringprep/nameprep.rb +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{net-imap-0.5.15 → net-imap-0.6.6}/lib/net/imap/stringprep/saslprep.rb +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{net-imap-0.5.15 → net-imap-0.6.6}/lib/net/imap/stringprep/saslprep_tables.rb +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{net-imap-0.5.15 → net-imap-0.6.6}/lib/net/imap/stringprep/tables.rb +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{net-imap-0.5.15 → net-imap-0.6.6}/lib/net/imap/stringprep/trace.rb +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{net-imap-0.5.15 → net-imap-0.6.6}/lib/net/imap/stringprep.rb +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{net-imap-0.5.15 → net-imap-0.6.6}/lib/net/imap/vanished_data.rb +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{net-imap-0.5.15 → net-imap-0.6.6}/rakelib/benchmarks.rake +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{net-imap-0.5.15 → net-imap-0.6.6}/rakelib/rfcs.rake +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{net-imap-0.5.15 → net-imap-0.6.6}/rakelib/saslprep.rake +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{net-imap-0.5.15 → net-imap-0.6.6}/rakelib/string_prep_tables_generator.rb +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{net-imap-0.5.15 → net-imap-0.6.6}/sample/net-imap.rb +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{net-protocol-0.2.2 → net-protocol-0.3.0}/README.md +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{rack-3.2.6 → rack-3.2.7}/CONTRIBUTING.md +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{rack-3.2.6 → rack-3.2.7}/MIT-LICENSE +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{rack-3.2.6 → rack-3.2.7}/README.md +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{rack-3.2.6 → rack-3.2.7}/SPEC.rdoc +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{rack-3.2.6 → rack-3.2.7}/lib/rack/auth/abstract/handler.rb +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{rack-3.2.6 → rack-3.2.7}/lib/rack/auth/abstract/request.rb +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{rack-3.2.6 → rack-3.2.7}/lib/rack/auth/basic.rb +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{rack-3.2.6 → rack-3.2.7}/lib/rack/bad_request.rb +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{rack-3.2.6 → rack-3.2.7}/lib/rack/body_proxy.rb +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{rack-3.2.6 → rack-3.2.7}/lib/rack/builder.rb +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{rack-3.2.6 → rack-3.2.7}/lib/rack/cascade.rb +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{rack-3.2.6 → rack-3.2.7}/lib/rack/common_logger.rb +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{rack-3.2.6 → rack-3.2.7}/lib/rack/conditional_get.rb +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{rack-3.2.6 → rack-3.2.7}/lib/rack/config.rb +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{rack-3.2.6 → rack-3.2.7}/lib/rack/constants.rb +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{rack-3.2.6 → rack-3.2.7}/lib/rack/content_length.rb +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{rack-3.2.6 → rack-3.2.7}/lib/rack/content_type.rb +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{rack-3.2.6 → rack-3.2.7}/lib/rack/deflater.rb +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{rack-3.2.6 → rack-3.2.7}/lib/rack/directory.rb +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{rack-3.2.6 → rack-3.2.7}/lib/rack/etag.rb +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{rack-3.2.6 → rack-3.2.7}/lib/rack/events.rb +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{rack-3.2.6 → rack-3.2.7}/lib/rack/files.rb +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{rack-3.2.6 → rack-3.2.7}/lib/rack/head.rb +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{rack-3.2.6 → rack-3.2.7}/lib/rack/headers.rb +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{rack-3.2.6 → rack-3.2.7}/lib/rack/lint.rb +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{rack-3.2.6 → rack-3.2.7}/lib/rack/lock.rb +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{rack-3.2.6 → rack-3.2.7}/lib/rack/media_type.rb +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{rack-3.2.6 → rack-3.2.7}/lib/rack/method_override.rb +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{rack-3.2.6 → rack-3.2.7}/lib/rack/mime.rb +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{rack-3.2.6 → rack-3.2.7}/lib/rack/mock.rb +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{rack-3.2.6 → rack-3.2.7}/lib/rack/mock_request.rb +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{rack-3.2.6 → rack-3.2.7}/lib/rack/mock_response.rb +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{rack-3.2.6 → rack-3.2.7}/lib/rack/multipart/generator.rb +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{rack-3.2.6 → rack-3.2.7}/lib/rack/multipart/parser.rb +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{rack-3.2.6 → rack-3.2.7}/lib/rack/multipart/uploaded_file.rb +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{rack-3.2.6 → rack-3.2.7}/lib/rack/multipart.rb +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{rack-3.2.6 → rack-3.2.7}/lib/rack/null_logger.rb +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{rack-3.2.6 → rack-3.2.7}/lib/rack/query_parser.rb +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{rack-3.2.6 → rack-3.2.7}/lib/rack/recursive.rb +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{rack-3.2.6 → rack-3.2.7}/lib/rack/reloader.rb +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{rack-3.2.6 → rack-3.2.7}/lib/rack/request.rb +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{rack-3.2.6 → rack-3.2.7}/lib/rack/response.rb +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{rack-3.2.6 → rack-3.2.7}/lib/rack/rewindable_input.rb +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{rack-3.2.6 → rack-3.2.7}/lib/rack/runtime.rb +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{rack-3.2.6 → rack-3.2.7}/lib/rack/sendfile.rb +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{rack-3.2.6 → rack-3.2.7}/lib/rack/show_exceptions.rb +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{rack-3.2.6 → rack-3.2.7}/lib/rack/show_status.rb +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{rack-3.2.6 → rack-3.2.7}/lib/rack/static.rb +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{rack-3.2.6 → rack-3.2.7}/lib/rack/tempfile_reaper.rb +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{rack-3.2.6 → rack-3.2.7}/lib/rack/urlmap.rb +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{rack-3.2.6 → rack-3.2.7}/lib/rack.rb +0 -0
|
@@ -54,9 +54,72 @@ module Net
|
|
|
54
54
|
# Creates a new config, which inherits from +self+.
|
|
55
55
|
def new(**attrs) self.class.new(self, **attrs) end
|
|
56
56
|
|
|
57
|
+
# :call-seq:
|
|
58
|
+
# inherited?(attr) -> true or false
|
|
59
|
+
# inherited?(*attrs) -> true or false
|
|
60
|
+
# inherited? -> true or false
|
|
61
|
+
#
|
|
57
62
|
# Returns +true+ if +attr+ is inherited from #parent and not overridden
|
|
58
63
|
# by this config.
|
|
59
|
-
|
|
64
|
+
#
|
|
65
|
+
# When multiple +attrs+ are given, returns +true+ if *all* of them are
|
|
66
|
+
# inherited, or +false+ if any of them are overriden. When no +attrs+
|
|
67
|
+
# are given, returns +true+ if *all* attributes are inherited, or
|
|
68
|
+
# +false+ if any attribute is overriden.
|
|
69
|
+
#
|
|
70
|
+
# Related: #overrides?
|
|
71
|
+
def inherited?(*attrs)
|
|
72
|
+
attrs = data.members if attrs.empty?
|
|
73
|
+
attrs.all? { data[_1] == INHERITED }
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
# :call-seq:
|
|
77
|
+
# inherits_defaults?(*attrs) -> true | Rational | nil | false
|
|
78
|
+
#
|
|
79
|
+
# Returns whether all +attrs+ are inherited from a default config.
|
|
80
|
+
# When no +attrs+ are given, returns whether *all* attributes are
|
|
81
|
+
# inherited from a default config.
|
|
82
|
+
#
|
|
83
|
+
# Returns +true+ when all attributes inherit from Config.default, the
|
|
84
|
+
# version number (as a Rational) when all attributes inherit from a
|
|
85
|
+
# versioned default (see Config@Versioned+defaults), +nil+ if any
|
|
86
|
+
# attributes inherit from Config.global overrides (but not from
|
|
87
|
+
# non-global ancestors), or +false+ when any attributes have been
|
|
88
|
+
# overridden by +self+ or an ancestor (besides global or default
|
|
89
|
+
# configs),
|
|
90
|
+
#
|
|
91
|
+
# Related: #overrides?
|
|
92
|
+
def inherits_defaults?(*attrs)
|
|
93
|
+
if equal?(Config.default)
|
|
94
|
+
true
|
|
95
|
+
elsif equal?(Config.global)
|
|
96
|
+
true if inherited?(*attrs)
|
|
97
|
+
elsif (v = AttrVersionDefaults::VERSIONS.find { equal? Config[_1] })
|
|
98
|
+
attrs = DEFAULT_TO_INHERIT if attrs.empty?
|
|
99
|
+
attrs &= DEFAULT_TO_INHERIT
|
|
100
|
+
(attrs.empty? || parent.inherits_defaults?(*attrs)) && v
|
|
101
|
+
else
|
|
102
|
+
inherited?(*attrs) && parent.inherits_defaults?(*attrs)
|
|
103
|
+
end
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
# :call-seq:
|
|
107
|
+
# overrides?(attr) -> true or false
|
|
108
|
+
# overrides?(*attrs) -> true or false
|
|
109
|
+
# overrides? -> true or false
|
|
110
|
+
#
|
|
111
|
+
# Returns +true+ if +attr+ is defined on this config and not inherited
|
|
112
|
+
# from #parent.
|
|
113
|
+
#
|
|
114
|
+
# When multiple +attrs+ are given, returns +true+ if
|
|
115
|
+
# *any* of them are defined on +self+. When no +attrs+ are given,
|
|
116
|
+
# returns +true+ if *any* attribute is overriden.
|
|
117
|
+
#
|
|
118
|
+
# Related: #inherited?
|
|
119
|
+
def overrides?(*attrs)
|
|
120
|
+
attrs = data.members if attrs.empty?
|
|
121
|
+
attrs.any? { data[_1] != INHERITED }
|
|
122
|
+
end
|
|
60
123
|
|
|
61
124
|
# :call-seq:
|
|
62
125
|
# reset -> self
|
|
@@ -59,10 +59,6 @@ module Net
|
|
|
59
59
|
end
|
|
60
60
|
|
|
61
61
|
def self.compile_version_defaults!
|
|
62
|
-
# Temporarily assign Config.default, enabling #load_defaults(:default)
|
|
63
|
-
version_defaults[:default] = Config.default
|
|
64
|
-
# Use #load_defaults so some attributes are inherited from global.
|
|
65
|
-
version_defaults[:default] = Config.new.load_defaults(:default).freeze
|
|
66
62
|
version_defaults[0.0r] = Config[version_defaults.fetch(0.0r)]
|
|
67
63
|
|
|
68
64
|
VERSIONS.each_cons(2) do |prior, version|
|
|
@@ -81,6 +77,7 @@ module Net
|
|
|
81
77
|
|
|
82
78
|
version_defaults[:original] = Config[0.0r]
|
|
83
79
|
version_defaults[:current] = Config[CURRENT_VERSION]
|
|
80
|
+
version_defaults[:default] = Config[CURRENT_VERSION]
|
|
84
81
|
version_defaults[:next] = Config[NEXT_VERSION]
|
|
85
82
|
version_defaults[:future] = Config[FUTURE_VERSION]
|
|
86
83
|
|
data/vendor/bundle/ruby/3.4.0/gems/{net-imap-0.5.15 → net-imap-0.6.6}/lib/net/imap/config.rb
RENAMED
|
@@ -234,13 +234,26 @@ module Net
|
|
|
234
234
|
# Do not use +SASL-IR+, even when it is supported by the server and the
|
|
235
235
|
# mechanism.
|
|
236
236
|
#
|
|
237
|
+
# [+:when_capabilities_cached+]
|
|
238
|
+
# Use +SASL-IR+ when Net::IMAP#capabilities_cached? is +true+ and it is
|
|
239
|
+
# supported by the server and the mechanism, but do not send a
|
|
240
|
+
# +CAPABILITY+ command to discover the server capabilities.
|
|
241
|
+
#
|
|
242
|
+
# <em>(+:when_capabilities_cached+ option was added by +v0.6.0+)</em>
|
|
243
|
+
#
|
|
237
244
|
# [+true+ <em>(default since +v0.4+)</em>]
|
|
238
245
|
# Use +SASL-IR+ when it is supported by the server and the mechanism.
|
|
239
|
-
attr_accessor :sasl_ir, type:
|
|
246
|
+
attr_accessor :sasl_ir, type: Enum[
|
|
247
|
+
false, :when_capabilities_cached, true
|
|
248
|
+
], defaults: {
|
|
240
249
|
0.0r => false,
|
|
241
250
|
0.4r => true,
|
|
242
251
|
}
|
|
243
252
|
|
|
253
|
+
# :stopdoc:
|
|
254
|
+
alias sasl_ir? sasl_ir
|
|
255
|
+
# :startdoc:
|
|
256
|
+
|
|
244
257
|
# Controls the behavior of Net::IMAP#login when the +LOGINDISABLED+
|
|
245
258
|
# capability is present. When enforced, Net::IMAP will raise a
|
|
246
259
|
# LoginDisabledError when that capability is present.
|
|
@@ -268,6 +281,40 @@ module Net
|
|
|
268
281
|
0.5r => true,
|
|
269
282
|
}
|
|
270
283
|
|
|
284
|
+
# The maximum bytesize for sending non-synchronizing literals, when the
|
|
285
|
+
# server supports them. To disable non-synchronizing literals, set the
|
|
286
|
+
# value to +-1+.
|
|
287
|
+
#
|
|
288
|
+
# Non-synchronizing literals are only sent when the server's
|
|
289
|
+
# capabilities[rdoc-ref:IMAP#capabilities] have been
|
|
290
|
+
# cached[rdoc-ref:IMAP#capabilities_cached?] and include either
|
|
291
|
+
# <tt>LITERAL+</tt> [RFC7888[https://www.rfc-editor.org/rfc/rfc7888]],
|
|
292
|
+
# <tt>LITERAL-</tt> [RFC7888[https://www.rfc-editor.org/rfc/rfc7888]], or
|
|
293
|
+
# +IMAP4rev2+ [RFC9051[https://www.rfc-editor.org/rfc/rfc9051]].
|
|
294
|
+
#
|
|
295
|
+
# For <tt>LITERAL+</tt>, this value is the only limit on whether a literal
|
|
296
|
+
# value is sent as non-synchronizing literals. For <tt>LITERAL-</tt> and
|
|
297
|
+
# <tt>IMAP4rev2</tt>, non-synchronizing literals must also be smaller than
|
|
298
|
+
# +4096+ bytes.
|
|
299
|
+
#
|
|
300
|
+
# Non-synchronizing literals avoid the latency of waiting for the server
|
|
301
|
+
# to allow continuation. However, if a client sends a non-synchronizing
|
|
302
|
+
# literal that is too large for the server, the server may need to close
|
|
303
|
+
# the connection. Because <tt>LITERAL+</tt> does not directly indicate
|
|
304
|
+
# the server's limits, it's best to avoid sending very large
|
|
305
|
+
# non-synchronized literals.
|
|
306
|
+
#
|
|
307
|
+
# ==== Versioned Defaults
|
|
308
|
+
#
|
|
309
|
+
# max_non_synchronizing_literal <em>was added in +v0.6.4+.</em>
|
|
310
|
+
#
|
|
311
|
+
# * original: +-1+ (_never_ send non-synchronizing literals)
|
|
312
|
+
# * +0.6+: 16 KiB
|
|
313
|
+
attr_accessor :max_non_synchronizing_literal, type: Integer, defaults: {
|
|
314
|
+
0.0r => -1,
|
|
315
|
+
0.6r => 16 << 16, # 16 KiB
|
|
316
|
+
}
|
|
317
|
+
|
|
271
318
|
# The maximum allowed server response size. When +nil+, there is no limit
|
|
272
319
|
# on response size.
|
|
273
320
|
#
|
|
@@ -347,39 +394,32 @@ module Net
|
|
|
347
394
|
#
|
|
348
395
|
# Alias for responses_without_block
|
|
349
396
|
|
|
350
|
-
#
|
|
351
|
-
#
|
|
352
|
-
#
|
|
397
|
+
# **NOTE:** <em>+UIDPlusData+ has been removed since +v0.6.0+, and this
|
|
398
|
+
# config option only affects deprecation warnings.
|
|
399
|
+
# This config option will be **removed** in +v0.7.0+.</em>
|
|
353
400
|
#
|
|
354
|
-
#
|
|
355
|
-
#
|
|
356
|
-
#
|
|
357
|
-
# vulnerability. Otherwise, parser_max_deprecated_uidplus_data_size
|
|
358
|
-
# mitigates this vulnerability.
|
|
401
|
+
# ResponseParser always returns CopyUIDData for +COPYUID+ response codes,
|
|
402
|
+
# and AppendUIDData for +APPENDUID+ response codes. Previously, this
|
|
403
|
+
# option determined when UIDPlusData would be returned instead.
|
|
359
404
|
#
|
|
360
|
-
#
|
|
361
|
-
# UIDPlusData. Most applications should be able to upgrade with little
|
|
362
|
-
# or no changes.
|
|
405
|
+
# Parser support for +UIDPLUS+ added in +v0.3.2+.
|
|
363
406
|
#
|
|
364
|
-
#
|
|
407
|
+
# Config option added in +v0.4.19+ and +v0.5.6+.
|
|
365
408
|
#
|
|
366
|
-
# <em>
|
|
409
|
+
# <em>UIDPlusData removed in +v0.6.0+.</em>
|
|
367
410
|
#
|
|
368
|
-
#
|
|
369
|
-
# be ignored.</em>
|
|
370
|
-
#
|
|
371
|
-
# ==== Valid options
|
|
411
|
+
# ==== Options
|
|
372
412
|
#
|
|
373
413
|
# [+true+ <em>(original default)</em>]
|
|
374
|
-
#
|
|
414
|
+
# <em>Since v0.6.0:</em>
|
|
415
|
+
# Prints a deprecation warning when parsing +COPYUID+ or +APPENDUID+.
|
|
375
416
|
#
|
|
376
417
|
# [+:up_to_max_size+ <em>(default since +v0.5.6+)</em>]
|
|
377
|
-
#
|
|
378
|
-
#
|
|
379
|
-
# ResponseParser uses AppendUIDData or CopyUIDData.
|
|
418
|
+
# <em>Since v0.6.0:</em>
|
|
419
|
+
# Prints a deprecation warning when parsing +COPYUID+ or +APPENDUID+.
|
|
380
420
|
#
|
|
381
|
-
# [+false+ <em>(
|
|
382
|
-
#
|
|
421
|
+
# [+false+ <em>(default since +v0.6.0+)</em>]
|
|
422
|
+
# This is the only supported option <em>(since v0.6.0)</em>.
|
|
383
423
|
attr_accessor :parser_use_deprecated_uidplus_data, type: Enum[
|
|
384
424
|
true, :up_to_max_size, false
|
|
385
425
|
], defaults: {
|
|
@@ -388,22 +428,22 @@ module Net
|
|
|
388
428
|
0.6r => false,
|
|
389
429
|
}
|
|
390
430
|
|
|
391
|
-
#
|
|
392
|
-
#
|
|
393
|
-
#
|
|
431
|
+
# **NOTE:** <em>+UIDPlusData+ has been removed since +v0.6.0+, and this
|
|
432
|
+
# config option is ignored.
|
|
433
|
+
# This config option will be **removed** in +v0.7.0+.</em>
|
|
394
434
|
#
|
|
395
|
-
#
|
|
435
|
+
# ResponseParser always returns CopyUIDData for +COPYUID+ response codes,
|
|
436
|
+
# and AppendUIDData for +APPENDUID+ response codes. Previously, this
|
|
437
|
+
# option determined when UIDPlusData would be returned instead.
|
|
396
438
|
#
|
|
397
|
-
#
|
|
398
|
-
# +v0.3.8+, +v0.4.19+, and +v0.5.6+.</em>
|
|
439
|
+
# Parser support for +UIDPLUS+ added in +v0.3.2+.
|
|
399
440
|
#
|
|
400
|
-
#
|
|
441
|
+
# Support for limiting UIDPlusData to a maximum size was added in
|
|
442
|
+
# +v0.3.8+, +v0.4.19+, and +v0.5.6+.
|
|
401
443
|
#
|
|
402
|
-
#
|
|
444
|
+
# <em>UIDPlusData was removed in +v0.6.0+.</em>
|
|
403
445
|
#
|
|
404
|
-
#
|
|
405
|
-
# memory exhaustion, the versioned default (used by #load_defaults) also
|
|
406
|
-
# applies to versions without the feature.
|
|
446
|
+
# ==== Versioned Defaults
|
|
407
447
|
#
|
|
408
448
|
# * +0.3+ and prior: <tt>10,000</tt>
|
|
409
449
|
# * +0.4+: <tt>1,000</tt>
|
|
@@ -485,12 +525,146 @@ module Net
|
|
|
485
525
|
# Returns all config attributes in a hash.
|
|
486
526
|
def to_h; data.members.to_h { [_1, send(_1)] } end
|
|
487
527
|
|
|
528
|
+
# Returns a string representation of overriden config attributes and the
|
|
529
|
+
# inheritance chain.
|
|
530
|
+
#
|
|
531
|
+
# Attributes overridden by ancestors are also inspected, recursively.
|
|
532
|
+
# Attributes that are inherited from default configs are not shown (see
|
|
533
|
+
# Config@Versioned+defaults and Config@Named+defaults).
|
|
534
|
+
#
|
|
535
|
+
# # (Line breaks have been added to the example output for legibility.)
|
|
536
|
+
#
|
|
537
|
+
# Net::IMAP::Config.new(0.4)
|
|
538
|
+
# .new(open_timeout: 10, enforce_logindisabled: true)
|
|
539
|
+
# .inspect
|
|
540
|
+
# #=> "#<Net::IMAP::Config:0x0000745871125410 open_timeout=10 enforce_logindisabled=true
|
|
541
|
+
# # inherits from Net::IMAP::Config[0.4]
|
|
542
|
+
# # inherits from Net::IMAP::Config.global
|
|
543
|
+
# # inherits from Net::IMAP::Config.default>"
|
|
544
|
+
#
|
|
545
|
+
# Non-default attributes are listed after the ancestor config from which
|
|
546
|
+
# they are inherited.
|
|
547
|
+
#
|
|
548
|
+
# # (Line breaks have been added to the example output for legibility.)
|
|
549
|
+
#
|
|
550
|
+
# config = Net::IMAP::Config.global
|
|
551
|
+
# .new(open_timeout: 10, idle_response_timeout: 2)
|
|
552
|
+
# .new(enforce_logindisabled: :when_capabilities_cached, sasl_ir: false)
|
|
553
|
+
# config.inspect
|
|
554
|
+
# #=> "#<Net::IMAP::Config:0x00007ce2a1e20e40 sasl_ir=false enforce_logindisabled=:when_capabilities_cached
|
|
555
|
+
# # inherits from Net::IMAP::Config:0x00007ce2a1e20f80 open_timeout=10 idle_response_timeout=2
|
|
556
|
+
# # inherits from Net::IMAP::Config.global
|
|
557
|
+
# # inherits from Net::IMAP::Config.default>"
|
|
558
|
+
#
|
|
559
|
+
# Net::IMAP.debug = true
|
|
560
|
+
# config.inspect
|
|
561
|
+
# #=> "#<Net::IMAP::Config:0x00007ce2a1e20e40 sasl_ir=false enforce_logindisabled=:when_capabilities_cached
|
|
562
|
+
# # inherits from Net::IMAP::Config:0x00007ce2a1e20f80 open_timeout=10 idle_response_timeout=2
|
|
563
|
+
# # inherits from Net::IMAP::Config.global debug=true
|
|
564
|
+
# # inherits from Net::IMAP::Config.default>"
|
|
565
|
+
#
|
|
566
|
+
# Use +pp+ (see #pretty_print) to inspect _all_ config attributes,
|
|
567
|
+
# including default values.
|
|
568
|
+
#
|
|
569
|
+
# Use #to_h to inspect all config attributes ignoring inheritance.
|
|
570
|
+
def inspect;
|
|
571
|
+
"#<#{inspect_recursive}>"
|
|
572
|
+
end
|
|
573
|
+
alias to_s inspect
|
|
574
|
+
|
|
575
|
+
# Used by PP[https://docs.ruby-lang.org/en/master/PP.html] to create a
|
|
576
|
+
# string representation of all config attributes and the inheritance
|
|
577
|
+
# chain. Inherited attributes are listed with the ancestor config from
|
|
578
|
+
# which they are inherited.
|
|
579
|
+
#
|
|
580
|
+
# pp Config.new[0.4].new(open_timeout: 10, idle_response_timeout: 10)
|
|
581
|
+
# # #<Net::IMAP::Config:0x0000745871125410
|
|
582
|
+
# # open_timeout=10
|
|
583
|
+
# # idle_response_timeout=10
|
|
584
|
+
# # inherits from Net::IMAP::Config[0.4]
|
|
585
|
+
# # responses_without_block=:silence_deprecation_warning
|
|
586
|
+
# # max_response_size=nil
|
|
587
|
+
# # sasl_ir=true
|
|
588
|
+
# # enforce_logindisabled=false
|
|
589
|
+
# # parser_use_deprecated_uidplus_data=true
|
|
590
|
+
# # parser_max_deprecated_uidplus_data_size=1000
|
|
591
|
+
# # inherits from Net::IMAP::Config.global
|
|
592
|
+
# # inherits from Net::IMAP::Config.default
|
|
593
|
+
# # debug=false>
|
|
594
|
+
#
|
|
595
|
+
# Related: #inspect, #to_h.
|
|
596
|
+
def pretty_print(pp)
|
|
597
|
+
pp.group(2, "#<", ">") do
|
|
598
|
+
pretty_print_recursive(pp)
|
|
599
|
+
end
|
|
600
|
+
end
|
|
601
|
+
|
|
602
|
+
# :stopdoc:
|
|
603
|
+
|
|
488
604
|
protected
|
|
489
605
|
|
|
606
|
+
def named_default?
|
|
607
|
+
equal?(Config.default) ||
|
|
608
|
+
AttrVersionDefaults::VERSIONS.any? { equal? Config[_1] }
|
|
609
|
+
end
|
|
610
|
+
|
|
611
|
+
def name
|
|
612
|
+
if equal? Config.default then "#{Config}.default"
|
|
613
|
+
elsif equal? Config.global then "#{Config}.global"
|
|
614
|
+
elsif equal? Config[0.0r] then "#{Config}[:original]"
|
|
615
|
+
elsif (v = AttrVersionDefaults::VERSIONS.find { equal? Config[_1] })
|
|
616
|
+
"%s[%0.1f]" % [Config, v]
|
|
617
|
+
else
|
|
618
|
+
Kernel.instance_method(:to_s).bind_call(self).delete("<#>")
|
|
619
|
+
end
|
|
620
|
+
end
|
|
621
|
+
|
|
622
|
+
def inspect_recursive(attrs = AttrAccessors.struct.members)
|
|
623
|
+
strings = [name]
|
|
624
|
+
assigned = assigned_attrs_hash(attrs)
|
|
625
|
+
strings.concat assigned.map { "%s=%p" % _1 }
|
|
626
|
+
if parent
|
|
627
|
+
if parent.equal?(Config.default)
|
|
628
|
+
inherited_overrides = []
|
|
629
|
+
elsif parent
|
|
630
|
+
inherited_overrides = attrs - assigned.keys
|
|
631
|
+
inherited_overrides &= DEFAULT_TO_INHERIT if parent.named_default?
|
|
632
|
+
end
|
|
633
|
+
strings << "inherits from #{parent.inspect_recursive(inherited_overrides)}"
|
|
634
|
+
end
|
|
635
|
+
strings.join " "
|
|
636
|
+
end
|
|
637
|
+
|
|
638
|
+
def pretty_print_recursive(pp, attrs = AttrAccessors.struct.members)
|
|
639
|
+
pp.text name
|
|
640
|
+
assigned = assigned_attrs_hash(attrs)
|
|
641
|
+
pp.breakable
|
|
642
|
+
pp.seplist(assigned, ->{pp.breakable}) do |key, val|
|
|
643
|
+
pp.text key.to_s
|
|
644
|
+
pp.text "="
|
|
645
|
+
pp.pp val
|
|
646
|
+
end
|
|
647
|
+
if parent
|
|
648
|
+
pp.breakable if assigned.any?
|
|
649
|
+
pp.nest(2) do
|
|
650
|
+
pp.text "inherits from "
|
|
651
|
+
parent.pretty_print_recursive(pp, attrs - assigned.keys)
|
|
652
|
+
end
|
|
653
|
+
elsif assigned.empty?
|
|
654
|
+
pp.text "(overridden)"
|
|
655
|
+
end
|
|
656
|
+
end
|
|
657
|
+
|
|
658
|
+
def assigned_attrs_hash(attrs)
|
|
659
|
+
own_attrs = attrs.reject { inherited?(_1) }
|
|
660
|
+
own_attrs.to_h { [_1, data[_1]] }
|
|
661
|
+
end
|
|
662
|
+
|
|
490
663
|
def defaults_hash
|
|
491
664
|
to_h.reject {|k,v| DEFAULT_TO_INHERIT.include?(k) }
|
|
492
665
|
end
|
|
493
666
|
|
|
667
|
+
Struct = AttrAccessors.struct
|
|
494
668
|
@default = AttrVersionDefaults.compile_default!
|
|
495
669
|
@global = default.new
|
|
496
670
|
AttrVersionDefaults.compile_version_defaults!
|
data/vendor/bundle/ruby/3.4.0/gems/{net-imap-0.5.15 → net-imap-0.6.6}/lib/net/imap/data_encoding.rb
RENAMED
|
@@ -155,57 +155,157 @@ module Net
|
|
|
155
155
|
|
|
156
156
|
# Common validators of number and nz_number types
|
|
157
157
|
module NumValidator # :nodoc
|
|
158
|
+
NUMBER_RE = /\A\d+\z/
|
|
159
|
+
NZ_NUMBER_RE = /\A[1-9]\d*\z/
|
|
158
160
|
module_function
|
|
159
161
|
|
|
160
|
-
# Check is
|
|
162
|
+
# Check if argument is a valid 'number' according to RFC 3501
|
|
163
|
+
# number = 1*DIGIT
|
|
164
|
+
# ; Unsigned 32-bit integer
|
|
165
|
+
# ; (0 <= n < 4,294,967,296)
|
|
161
166
|
def valid_number?(num)
|
|
162
|
-
|
|
163
|
-
# number = 1*DIGIT
|
|
164
|
-
# ; Unsigned 32-bit integer
|
|
165
|
-
# ; (0 <= n < 4,294,967,296)
|
|
166
|
-
num >= 0 && num < 4294967296
|
|
167
|
+
0 <= num && num <= 0xffff_ffff
|
|
167
168
|
end
|
|
168
169
|
|
|
169
|
-
# Check is
|
|
170
|
+
# Check if argument is a valid 'nz-number' according to RFC 3501
|
|
171
|
+
# nz-number = digit-nz *DIGIT
|
|
172
|
+
# ; Non-zero unsigned 32-bit integer
|
|
173
|
+
# ; (0 < n < 4,294,967,296)
|
|
170
174
|
def valid_nz_number?(num)
|
|
171
|
-
|
|
172
|
-
# nz-number = digit-nz *DIGIT
|
|
173
|
-
# ; Non-zero unsigned 32-bit integer
|
|
174
|
-
# ; (0 < n < 4,294,967,296)
|
|
175
|
-
num != 0 && valid_number?(num)
|
|
175
|
+
0 < num && num <= 0xffff_ffff
|
|
176
176
|
end
|
|
177
177
|
|
|
178
|
-
# Check is
|
|
178
|
+
# Check if argument is a valid 'number64' according to RFC 9051
|
|
179
|
+
# number64 = 1*DIGIT
|
|
180
|
+
# ; Unsigned 63-bit integer
|
|
181
|
+
# ; (0 <= n <= 9,223,372,036,854,775,807)
|
|
182
|
+
def valid_number64?(num)
|
|
183
|
+
0 <= num && num <= 0x7fff_ffff_ffff_ffff
|
|
184
|
+
end
|
|
185
|
+
|
|
186
|
+
# Check if argument is a valid 'number64' according to RFC 9051
|
|
187
|
+
# nz-number64 = digit-nz *DIGIT
|
|
188
|
+
# ; Unsigned 63-bit integer
|
|
189
|
+
# ; (0 < n <= 9,223,372,036,854,775,807)
|
|
190
|
+
def valid_nz_number64?(num)
|
|
191
|
+
0 < num && num <= 0x7fff_ffff_ffff_ffff
|
|
192
|
+
end
|
|
193
|
+
|
|
194
|
+
# Check if argument is a valid 'mod-sequence-value' according to RFC 4551
|
|
195
|
+
# mod-sequence-value = 1*DIGIT
|
|
196
|
+
# ; Positive unsigned 64-bit integer
|
|
197
|
+
# ; (mod-sequence)
|
|
198
|
+
# ; (1 <= n < 18,446,744,073,709,551,615)
|
|
179
199
|
def valid_mod_sequence_value?(num)
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
200
|
+
1 <= num && num < 0xffff_ffff_ffff_ffff
|
|
201
|
+
end
|
|
202
|
+
|
|
203
|
+
# Check if argument is a valid 'mod-sequence-valzer' according to RFC 4551
|
|
204
|
+
# mod-sequence-valzer = "0" / mod-sequence-value
|
|
205
|
+
def valid_mod_sequence_valzer?(num)
|
|
206
|
+
0 <= num && num < 0xffff_ffff_ffff_ffff
|
|
185
207
|
end
|
|
186
208
|
|
|
187
209
|
# Ensure argument is 'number' or raise DataFormatError
|
|
188
210
|
def ensure_number(num)
|
|
189
211
|
return num if valid_number?(num)
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
raise DataFormatError, msg
|
|
212
|
+
raise DataFormatError,
|
|
213
|
+
"number must be unsigned 32-bit integer: #{num}"
|
|
193
214
|
end
|
|
194
215
|
|
|
195
|
-
# Ensure argument is '
|
|
216
|
+
# Ensure argument is 'nz-number' or raise DataFormatError
|
|
196
217
|
def ensure_nz_number(num)
|
|
197
218
|
return num if valid_nz_number?(num)
|
|
219
|
+
raise DataFormatError,
|
|
220
|
+
"nz-number must be non-zero unsigned 32-bit integer: #{num}"
|
|
221
|
+
end
|
|
222
|
+
|
|
223
|
+
# Ensure argument is 'number64' or raise DataFormatError
|
|
224
|
+
def ensure_number64(num)
|
|
225
|
+
return num if valid_number64?(num)
|
|
226
|
+
raise DataFormatError,
|
|
227
|
+
"number64 must be unsigned 63-bit integer: #{num}"
|
|
228
|
+
end
|
|
198
229
|
|
|
199
|
-
|
|
200
|
-
|
|
230
|
+
# Ensure argument is 'nz-number64' or raise DataFormatError
|
|
231
|
+
def ensure_nz_number64(num)
|
|
232
|
+
return num if valid_nz_number64?(num)
|
|
233
|
+
raise DataFormatError,
|
|
234
|
+
"nz-number64 must be non-zero unsigned 63-bit integer: #{num}"
|
|
201
235
|
end
|
|
202
236
|
|
|
203
|
-
# Ensure argument is '
|
|
237
|
+
# Ensure argument is 'mod-sequence-value' or raise DataFormatError
|
|
204
238
|
def ensure_mod_sequence_value(num)
|
|
205
239
|
return num if valid_mod_sequence_value?(num)
|
|
240
|
+
raise DataFormatError,
|
|
241
|
+
"mod-sequence-value must be non-zero unsigned 64-bit integer: #{num}"
|
|
242
|
+
end
|
|
206
243
|
|
|
207
|
-
|
|
208
|
-
|
|
244
|
+
# Ensure argument is 'mod-sequence-valzer' or raise DataFormatError
|
|
245
|
+
def ensure_mod_sequence_valzer(num)
|
|
246
|
+
return num if valid_mod_sequence_valzer?(num)
|
|
247
|
+
raise DataFormatError,
|
|
248
|
+
"mod-sequence-valzer must be unsigned 64-bit integer: #{num}"
|
|
249
|
+
end
|
|
250
|
+
|
|
251
|
+
# Like #ensure_number, but usable with numeric String input.
|
|
252
|
+
def coerce_number(num)
|
|
253
|
+
case num
|
|
254
|
+
when Integer then ensure_number num
|
|
255
|
+
when NUMBER_RE then ensure_number num.to_i
|
|
256
|
+
else
|
|
257
|
+
raise DataFormatError, "%p is not a valid number" % [num]
|
|
258
|
+
end
|
|
259
|
+
end
|
|
260
|
+
|
|
261
|
+
# Like #ensure_nz_number, but usable with numeric String input.
|
|
262
|
+
def coerce_nz_number(num)
|
|
263
|
+
case num
|
|
264
|
+
when Integer then ensure_nz_number num
|
|
265
|
+
when NZ_NUMBER_RE then ensure_nz_number num.to_i
|
|
266
|
+
else
|
|
267
|
+
raise DataFormatError, "%p is not a valid nz-number" % [num]
|
|
268
|
+
end
|
|
269
|
+
end
|
|
270
|
+
|
|
271
|
+
# Like #ensure_number64, but usable with numeric String input.
|
|
272
|
+
def coerce_number64(num)
|
|
273
|
+
case num
|
|
274
|
+
when Integer then ensure_number64 num
|
|
275
|
+
when NUMBER_RE then ensure_number64 num.to_i
|
|
276
|
+
else
|
|
277
|
+
raise DataFormatError, "%p is not a valid number64" % [num]
|
|
278
|
+
end
|
|
279
|
+
end
|
|
280
|
+
|
|
281
|
+
# Like #ensure_nz_number64, but usable with numeric String input.
|
|
282
|
+
def coerce_nz_number64(num)
|
|
283
|
+
case num
|
|
284
|
+
when Integer then ensure_nz_number64 num
|
|
285
|
+
when NZ_NUMBER_RE then ensure_nz_number64 num.to_i
|
|
286
|
+
else
|
|
287
|
+
raise DataFormatError, "%p is not a valid nz-number64" % [num]
|
|
288
|
+
end
|
|
289
|
+
end
|
|
290
|
+
|
|
291
|
+
# Like #ensure_mod_sequence_value, but usable with numeric String input.
|
|
292
|
+
def coerce_mod_sequence_value(num)
|
|
293
|
+
case num
|
|
294
|
+
when Integer then ensure_mod_sequence_value num
|
|
295
|
+
when NUMBER_RE then ensure_mod_sequence_value num.to_i
|
|
296
|
+
else
|
|
297
|
+
raise DataFormatError, "%p is not a valid mod-sequence-value" % [num]
|
|
298
|
+
end
|
|
299
|
+
end
|
|
300
|
+
|
|
301
|
+
# Like #ensure_mod_sequence_valzer, but usable with numeric String input.
|
|
302
|
+
def coerce_mod_sequence_valzer(num)
|
|
303
|
+
case num
|
|
304
|
+
when Integer then ensure_mod_sequence_valzer num
|
|
305
|
+
when NUMBER_RE then ensure_mod_sequence_valzer num.to_i
|
|
306
|
+
else
|
|
307
|
+
raise DataFormatError, "%p is not a valid mod-sequence-valzer" % [num]
|
|
308
|
+
end
|
|
209
309
|
end
|
|
210
310
|
|
|
211
311
|
end
|