rbs 3.6.1 → 3.9.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/workflows/comments.yml +2 -2
- data/.github/workflows/dependabot.yml +1 -1
- data/.github/workflows/ruby.yml +34 -10
- data/.github/workflows/windows.yml +20 -3
- data/.gitignore +1 -0
- data/.rubocop.yml +26 -1
- data/CHANGELOG.md +241 -0
- data/Rakefile +54 -4
- data/config.yml +317 -0
- data/core/array.rbs +1756 -1591
- data/core/basic_object.rbs +38 -35
- data/core/comparable.rbs +1 -1
- data/core/complex.rbs +166 -94
- data/core/data.rbs +2 -2
- data/core/dir.rbs +2 -18
- data/core/encoding.rbs +12 -32
- data/core/enumerable.rbs +270 -266
- data/core/enumerator.rbs +14 -4
- data/core/env.rbs +1 -1
- data/core/errno.rbs +33 -16
- data/core/errors.rbs +6 -2
- data/core/exception.rbs +342 -167
- data/core/fiber.rbs +3 -2
- data/core/file.rbs +26 -75
- data/core/float.rbs +125 -72
- data/core/gc.rbs +158 -42
- data/core/hash.rbs +122 -143
- data/core/integer.rbs +79 -50
- data/core/io/buffer.rbs +49 -43
- data/core/io.rbs +108 -151
- data/core/kernel.rbs +341 -209
- data/core/match_data.rbs +76 -2
- data/core/math.rbs +0 -36
- data/core/method.rbs +2 -2
- data/core/module.rbs +32 -27
- data/core/nil_class.rbs +2 -2
- data/core/numeric.rbs +101 -104
- data/core/object.rbs +1 -5
- data/core/object_space/weak_key_map.rbs +3 -4
- data/core/object_space.rbs +3 -3
- data/core/proc.rbs +82 -14
- data/core/process.rbs +110 -58
- data/core/ractor.rbs +57 -4
- data/core/range.rbs +114 -87
- data/core/rational.rbs +0 -2
- data/core/rbs/unnamed/argf.rbs +237 -36
- data/core/rbs/unnamed/env_class.rbs +35 -53
- data/core/rbs/unnamed/random.rbs +1 -2
- data/core/regexp.rbs +10 -56
- data/core/ruby_vm.rbs +88 -9
- data/core/rubygems/config_file.rbs +3 -0
- data/core/rubygems/errors.rbs +3 -6
- data/core/rubygems/platform.rbs +0 -9
- data/core/rubygems/rubygems.rbs +3 -6
- data/core/rubygems/version.rbs +8 -8
- data/core/set.rbs +4 -16
- data/core/string.rbs +271 -264
- data/core/struct.rbs +6 -18
- data/core/symbol.rbs +14 -21
- data/core/thread.rbs +32 -35
- data/core/time.rbs +131 -50
- data/core/trace_point.rbs +124 -113
- data/core/true_class.rbs +0 -1
- data/core/unbound_method.rbs +1 -1
- data/core/warning.rbs +9 -2
- data/docs/architecture.md +1 -1
- data/docs/syntax.md +17 -10
- data/ext/rbs_extension/extconf.rb +11 -0
- data/ext/rbs_extension/location.c +61 -29
- data/ext/rbs_extension/location.h +4 -3
- data/ext/rbs_extension/main.c +23 -1
- data/ext/rbs_extension/parser.c +506 -517
- data/ext/rbs_extension/parserstate.c +109 -30
- data/ext/rbs_extension/parserstate.h +6 -4
- data/ext/rbs_extension/rbs_extension.h +1 -10
- data/{ext/rbs_extension → include/rbs}/constants.h +21 -19
- 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/annotate/annotations.rb +3 -3
- data/lib/rbs/annotate/rdoc_source.rb +2 -2
- data/lib/rbs/ast/declarations.rb +9 -4
- data/lib/rbs/ast/directives.rb +10 -0
- data/lib/rbs/ast/members.rb +2 -0
- data/lib/rbs/ast/type_param.rb +2 -12
- data/lib/rbs/cli/diff.rb +3 -3
- data/lib/rbs/cli/validate.rb +2 -1
- data/lib/rbs/cli.rb +16 -16
- data/lib/rbs/collection/config/lockfile_generator.rb +58 -8
- data/lib/rbs/collection/config.rb +5 -3
- data/lib/rbs/collection/sources/rubygems.rb +1 -1
- data/lib/rbs/collection.rb +1 -0
- data/lib/rbs/definition.rb +51 -34
- data/lib/rbs/definition_builder/ancestor_builder.rb +5 -3
- data/lib/rbs/definition_builder.rb +83 -24
- data/lib/rbs/environment.rb +33 -18
- data/lib/rbs/environment_loader.rb +6 -1
- data/lib/rbs/errors.rb +24 -0
- data/lib/rbs/locator.rb +2 -0
- data/lib/rbs/method_type.rb +2 -0
- data/lib/rbs/namespace.rb +1 -0
- data/lib/rbs/parser_aux.rb +40 -3
- data/lib/rbs/prototype/rb.rb +20 -12
- data/lib/rbs/prototype/rbi.rb +11 -6
- data/lib/rbs/prototype/runtime/value_object_generator.rb +7 -5
- data/lib/rbs/prototype/runtime.rb +7 -5
- data/lib/rbs/subtractor.rb +3 -3
- data/lib/rbs/test/hook.rb +47 -42
- data/lib/rbs/test/type_check.rb +7 -5
- data/lib/rbs/type_name.rb +14 -9
- data/lib/rbs/types.rb +63 -14
- data/lib/rbs/unit_test/spy.rb +4 -2
- data/lib/rbs/unit_test/type_assertions.rb +19 -13
- data/lib/rbs/unit_test/with_aliases.rb +3 -1
- data/lib/rbs/validator.rb +7 -1
- data/lib/rbs/version.rb +1 -1
- data/lib/rbs/writer.rb +10 -5
- data/lib/rbs.rb +1 -0
- data/lib/rdoc_plugin/parser.rb +2 -2
- data/rbs.gemspec +6 -2
- data/sig/ancestor_graph.rbs +5 -5
- data/sig/annotate/rdoc_source.rbs +2 -0
- data/sig/cli.rbs +2 -0
- data/sig/collection/config/lockfile_generator.rbs +9 -1
- data/sig/declarations.rbs +10 -3
- data/sig/definition.rbs +80 -12
- data/sig/definition_builder.rbs +18 -4
- data/sig/directives.rbs +17 -1
- data/sig/environment.rbs +3 -1
- data/sig/errors.rbs +19 -0
- data/sig/namespace.rbs +2 -3
- data/sig/parser.rbs +5 -1
- data/sig/prototype/rb.rbs +1 -1
- data/sig/resolver/constant_resolver.rbs +2 -2
- data/sig/resolver/context.rbs +1 -1
- data/sig/subtractor.rbs +1 -1
- data/sig/test/type_check.rbs +2 -2
- data/sig/type_alias_dependency.rbs +2 -2
- data/sig/type_alias_regularity.rbs +6 -6
- data/sig/type_param.rbs +4 -4
- data/sig/typename.rbs +8 -5
- data/sig/types.rbs +1 -1
- data/sig/unit_test/spy.rbs +2 -0
- data/sig/unit_test/type_assertions.rbs +2 -0
- data/sig/use_map.rbs +1 -1
- data/sig/validator.rbs +6 -2
- data/sig/vendorer.rbs +1 -1
- data/sig/writer.rbs +1 -1
- data/{ext/rbs_extension → src}/constants.c +35 -36
- data/src/ruby_objs.c +799 -0
- data/src/util/rbs_constant_pool.c +342 -0
- data/stdlib/base64/0/base64.rbs +0 -9
- data/stdlib/benchmark/0/benchmark.rbs +11 -2
- data/stdlib/bigdecimal/0/big_decimal.rbs +26 -182
- data/stdlib/cgi/0/core.rbs +60 -3
- data/stdlib/cgi/0/manifest.yaml +1 -0
- data/stdlib/coverage/0/coverage.rbs +0 -3
- data/stdlib/csv/0/csv.rbs +18 -58
- data/stdlib/csv/0/manifest.yaml +1 -0
- data/stdlib/date/0/date.rbs +27 -42
- data/stdlib/did_you_mean/0/did_you_mean.rbs +1 -6
- data/stdlib/digest/0/digest.rbs +25 -2
- data/stdlib/erb/0/erb.rbs +0 -1
- data/stdlib/etc/0/etc.rbs +51 -34
- data/stdlib/fileutils/0/fileutils.rbs +3 -44
- data/stdlib/io-console/0/io-console.rbs +69 -15
- data/stdlib/ipaddr/0/ipaddr.rbs +16 -4
- data/stdlib/json/0/json.rbs +107 -120
- data/stdlib/logger/0/log_device.rbs +1 -1
- data/stdlib/logger/0/logger.rbs +3 -18
- data/stdlib/minitest/0/kernel.rbs +2 -2
- data/stdlib/minitest/0/minitest/abstract_reporter.rbs +4 -1
- data/stdlib/minitest/0/minitest/assertion.rbs +1 -0
- data/stdlib/minitest/0/minitest/assertions.rbs +58 -13
- data/stdlib/minitest/0/minitest/backtrace_filter.rbs +7 -0
- data/stdlib/minitest/0/minitest/bench_spec.rbs +8 -8
- data/stdlib/minitest/0/minitest/benchmark.rbs +17 -16
- 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/mock.rbs +9 -5
- data/stdlib/minitest/0/minitest/parallel/executor.rbs +4 -0
- data/stdlib/minitest/0/minitest/parallel/test/class_methods.rbs +0 -1
- data/stdlib/minitest/0/minitest/pride_io.rbs +8 -0
- data/stdlib/minitest/0/minitest/pride_lol.rbs +2 -0
- data/stdlib/minitest/0/minitest/progress_reporter.rbs +1 -1
- data/stdlib/minitest/0/minitest/reportable.rbs +2 -0
- data/stdlib/minitest/0/minitest/runnable.rbs +33 -1
- data/stdlib/minitest/0/minitest/spec/dsl/instance_methods.rbs +1 -1
- data/stdlib/minitest/0/minitest/spec/dsl.rbs +10 -6
- data/stdlib/minitest/0/minitest/spec.rbs +1 -1
- data/stdlib/minitest/0/minitest/statistics_reporter.rbs +5 -0
- data/stdlib/minitest/0/minitest/summary_reporter.rbs +0 -7
- data/stdlib/minitest/0/minitest/test/lifecycle_hooks.rbs +1 -1
- data/stdlib/minitest/0/minitest/test.rbs +7 -14
- data/stdlib/minitest/0/minitest/unexpected_error.rbs +2 -0
- data/stdlib/minitest/0/minitest/unexpected_warning.rbs +6 -0
- data/stdlib/minitest/0/minitest/unit.rbs +1 -2
- data/stdlib/minitest/0/minitest.rbs +41 -892
- data/stdlib/monitor/0/monitor.rbs +13 -4
- data/stdlib/net-http/0/net-http.rbs +42 -109
- data/stdlib/nkf/0/nkf.rbs +30 -0
- data/stdlib/objspace/0/objspace.rbs +1 -2
- data/stdlib/observable/0/observable.rbs +1 -1
- data/stdlib/open-uri/0/manifest.yaml +1 -0
- data/stdlib/open-uri/0/open-uri.rbs +52 -0
- data/stdlib/open3/0/open3.rbs +0 -8
- data/stdlib/openssl/0/manifest.yaml +1 -0
- data/stdlib/openssl/0/openssl.rbs +235 -143
- data/stdlib/optparse/0/optparse.rbs +58 -18
- data/stdlib/pathname/0/pathname.rbs +2 -8
- data/stdlib/pp/0/pp.rbs +3 -1
- data/stdlib/prettyprint/0/prettyprint.rbs +0 -4
- data/stdlib/pstore/0/pstore.rbs +0 -6
- data/stdlib/psych/0/core_ext.rbs +12 -0
- data/stdlib/psych/0/psych.rbs +15 -4
- data/stdlib/pty/0/pty.rbs +46 -4
- data/stdlib/rdoc/0/code_object.rbs +0 -4
- data/stdlib/rdoc/0/markup.rbs +10 -12
- data/stdlib/rdoc/0/rdoc.rbs +13 -8
- data/stdlib/resolv/0/resolv.rbs +21 -12
- data/stdlib/ripper/0/ripper.rbs +0 -2
- data/stdlib/securerandom/0/securerandom.rbs +7 -2
- data/stdlib/shellwords/0/shellwords.rbs +11 -12
- data/stdlib/singleton/0/singleton.rbs +0 -1
- data/stdlib/socket/0/addrinfo.rbs +1 -2
- data/stdlib/socket/0/basic_socket.rbs +0 -5
- data/stdlib/socket/0/socket.rbs +32 -27
- data/stdlib/socket/0/tcp_server.rbs +0 -3
- data/stdlib/socket/0/tcp_socket.rbs +36 -3
- data/stdlib/socket/0/udp_socket.rbs +0 -1
- data/stdlib/socket/0/unix_server.rbs +0 -3
- data/stdlib/socket/0/unix_socket.rbs +4 -2
- data/{core/string_io.rbs → stdlib/stringio/0/stringio.rbs} +1 -1
- data/stdlib/strscan/0/string_scanner.rbs +1265 -422
- data/stdlib/tempfile/0/tempfile.rbs +135 -28
- data/stdlib/time/0/time.rbs +48 -35
- data/stdlib/timeout/0/timeout.rbs +11 -8
- data/stdlib/tmpdir/0/tmpdir.rbs +10 -3
- data/stdlib/tsort/0/tsort.rbs +0 -4
- data/stdlib/uri/0/common.rbs +28 -30
- data/stdlib/uri/0/ftp.rbs +1 -1
- data/stdlib/uri/0/generic.rbs +22 -18
- data/stdlib/uri/0/http.rbs +2 -2
- data/stdlib/uri/0/rfc2396_parser.rbs +3 -0
- data/stdlib/zlib/0/buf_error.rbs +1 -70
- data/stdlib/zlib/0/data_error.rbs +1 -70
- data/stdlib/zlib/0/deflate.rbs +8 -72
- data/stdlib/zlib/0/error.rbs +1 -70
- data/stdlib/zlib/0/gzip_file/crc_error.rbs +2 -105
- data/stdlib/zlib/0/gzip_file/error.rbs +2 -105
- data/stdlib/zlib/0/gzip_file/length_error.rbs +2 -105
- data/stdlib/zlib/0/gzip_file/no_footer.rbs +2 -105
- data/stdlib/zlib/0/gzip_file.rbs +1 -71
- data/stdlib/zlib/0/gzip_reader.rbs +3 -74
- data/stdlib/zlib/0/gzip_writer.rbs +1 -70
- data/stdlib/zlib/0/inflate.rbs +4 -71
- data/stdlib/zlib/0/mem_error.rbs +1 -70
- data/stdlib/zlib/0/need_dict.rbs +1 -70
- data/stdlib/zlib/0/stream_end.rbs +1 -70
- data/stdlib/zlib/0/stream_error.rbs +1 -70
- data/stdlib/zlib/0/version_error.rbs +1 -70
- data/stdlib/zlib/0/zlib.rbs +0 -2
- data/stdlib/zlib/0/zstream.rbs +4 -72
- metadata +17 -13
- data/ext/rbs_extension/ruby_objs.c +0 -602
- data/ext/rbs_extension/ruby_objs.h +0 -51
- data/stdlib/minitest/0/manifest.yaml +0 -2
data/core/dir.rbs
CHANGED
@@ -10,7 +10,6 @@
|
|
10
10
|
# retrieved in an [array-like fashion](rdoc-ref:Dir@Dir+As+Array-Like) or in
|
11
11
|
# a [stream-like fashion](rdoc-ref:Dir@Dir+As+Stream-Like).
|
12
12
|
#
|
13
|
-
#
|
14
13
|
# ## About the Examples
|
15
14
|
#
|
16
15
|
# Some examples on this page use this simple file tree:
|
@@ -33,7 +32,6 @@
|
|
33
32
|
# * It has instance methods #children, #each, and #each_child.
|
34
33
|
# * It includes [module Enumerable](rdoc-ref:Enumerable@What-27s+Here).
|
35
34
|
#
|
36
|
-
#
|
37
35
|
# ## Dir As Stream-Like
|
38
36
|
#
|
39
37
|
# A Dir object is in some ways stream-like.
|
@@ -54,7 +52,6 @@
|
|
54
52
|
# the position; if at end-of-stream, does not increment the position.
|
55
53
|
# * Method #rewind sets the position to zero.
|
56
54
|
#
|
57
|
-
#
|
58
55
|
# Examples (using the [simple file tree](rdoc-ref:Dir@About+the+Examples)):
|
59
56
|
#
|
60
57
|
# dir = Dir.new('example') # => #<Dir:example>
|
@@ -89,7 +86,6 @@
|
|
89
86
|
# * Includes [module Enumerable](rdoc-ref:Enumerable@What-27s+Here), which
|
90
87
|
# provides dozens of additional methods.
|
91
88
|
#
|
92
|
-
#
|
93
89
|
# Here, class Dir provides methods that are useful for:
|
94
90
|
#
|
95
91
|
# * [Reading](rdoc-ref:Dir@Reading)
|
@@ -98,7 +94,6 @@
|
|
98
94
|
# * [Iterating](rdoc-ref:Dir@Iterating)
|
99
95
|
# * [Other](rdoc-ref:Dir@Other)
|
100
96
|
#
|
101
|
-
#
|
102
97
|
# ### Reading
|
103
98
|
#
|
104
99
|
# * #close: Closes the directory stream for `self`.
|
@@ -110,7 +105,6 @@
|
|
110
105
|
# * #seek: Sets the position in the directory stream for `self` the entry at
|
111
106
|
# the given offset.
|
112
107
|
#
|
113
|
-
#
|
114
108
|
# ### Setting
|
115
109
|
#
|
116
110
|
# * ::chdir: Changes the working directory of the current process to the given
|
@@ -118,7 +112,6 @@
|
|
118
112
|
# * ::chroot: Changes the file-system root for the current process to the
|
119
113
|
# given directory.
|
120
114
|
#
|
121
|
-
#
|
122
115
|
# ### Querying
|
123
116
|
#
|
124
117
|
# * ::[]: Same as ::glob without the ability to pass flags.
|
@@ -141,7 +134,6 @@
|
|
141
134
|
# * #tell (aliased as #pos): Returns the integer position in the directory
|
142
135
|
# stream for `self`.
|
143
136
|
#
|
144
|
-
#
|
145
137
|
# ### Iterating
|
146
138
|
#
|
147
139
|
# * ::each_child: Calls the given block with each entry in the given
|
@@ -153,7 +145,6 @@
|
|
153
145
|
# * #each_child: Calls the given block with each entry in `self`, but not
|
154
146
|
# including `.` or `..`.
|
155
147
|
#
|
156
|
-
#
|
157
148
|
# ### Other
|
158
149
|
#
|
159
150
|
# * ::mkdir: Creates a directory at the given path, with optional permissions.
|
@@ -215,7 +206,6 @@ class Dir
|
|
215
206
|
# defined.
|
216
207
|
# * Otherwise makes no change.
|
217
208
|
#
|
218
|
-
#
|
219
209
|
# With argument `new_dirpath` and a block, temporarily changes the working
|
220
210
|
# directory:
|
221
211
|
#
|
@@ -225,7 +215,6 @@ class Dir
|
|
225
215
|
# * Restores the previous working directory.
|
226
216
|
# * Returns the block's return value.
|
227
217
|
#
|
228
|
-
#
|
229
218
|
# Example:
|
230
219
|
#
|
231
220
|
# Dir.chdir('/var/spool/mail')
|
@@ -395,7 +384,6 @@ class Dir
|
|
395
384
|
# * Restores the previous working directory.
|
396
385
|
# * Returns the block's return value.
|
397
386
|
#
|
398
|
-
#
|
399
387
|
# Example:
|
400
388
|
#
|
401
389
|
# Dir.chdir('/var/spool/mail')
|
@@ -504,7 +492,6 @@ class Dir
|
|
504
492
|
# * We use method Array#take to shorten returned arrays that otherwise would
|
505
493
|
# be very large.
|
506
494
|
#
|
507
|
-
#
|
508
495
|
# With no block, returns array *entry_names*; example (using the [simple file
|
509
496
|
# tree](rdoc-ref:Dir@About+the+Examples)):
|
510
497
|
#
|
@@ -564,7 +551,6 @@ class Dir
|
|
564
551
|
#
|
565
552
|
# Dir.glob('*c*').take(3) # => ["CONTRIBUTING.md", "COPYING", "COPYING.ja"]
|
566
553
|
#
|
567
|
-
#
|
568
554
|
# Does not match Unix-like hidden entry names ("dot files"). To include
|
569
555
|
# those in the matched entry names, use flag IO::FNM_DOTMATCH or something
|
570
556
|
# like `'{*,.*}'`.
|
@@ -600,7 +586,6 @@ class Dir
|
|
600
586
|
# Note that on Windows, the backslash character may not be used in a string
|
601
587
|
# pattern: `Dir['c:\\foo*']` will not work, use `Dir['c:/foo*']` instead.
|
602
588
|
#
|
603
|
-
#
|
604
589
|
# More examples (using the [simple file tree](rdoc-ref:Dir@About+the+Examples)):
|
605
590
|
#
|
606
591
|
# # We're in the example directory.
|
@@ -669,7 +654,7 @@ class Dir
|
|
669
654
|
# rdoc-file=dir.c
|
670
655
|
# - Dir.home(user_name = nil) -> dirpath
|
671
656
|
# -->
|
672
|
-
#
|
657
|
+
# Returns the home directory path of the user specified with `user_name` if it
|
673
658
|
# is not `nil`, or the current login user:
|
674
659
|
#
|
675
660
|
# Dir.home # => "/home/me"
|
@@ -779,12 +764,11 @@ class Dir
|
|
779
764
|
# * Restores the previous working directory.
|
780
765
|
# * Returns the block's return value.
|
781
766
|
#
|
782
|
-
#
|
783
767
|
# Uses Dir.fchdir if available, and Dir.chdir if not, see those methods for
|
784
768
|
# caveats.
|
785
769
|
#
|
786
770
|
def chdir: () -> Integer
|
787
|
-
| [T] { () -> T } -> T
|
771
|
+
| [T] () { () -> T } -> T
|
788
772
|
|
789
773
|
# <!--
|
790
774
|
# rdoc-file=dir.c
|
data/core/encoding.rbs
CHANGED
@@ -12,7 +12,6 @@
|
|
12
12
|
# * The name of an encoding.
|
13
13
|
# * An alias for an encoding name.
|
14
14
|
#
|
15
|
-
#
|
16
15
|
# These are equivalent:
|
17
16
|
#
|
18
17
|
# 'foo'.encode(Encoding::US_ASCII) # Encoding object.
|
@@ -109,7 +108,6 @@ class Encoding
|
|
109
108
|
# * String#inspect
|
110
109
|
# * Regexp#inspect
|
111
110
|
#
|
112
|
-
#
|
113
111
|
# While strings created from these locations will have this encoding, the
|
114
112
|
# encoding may not be valid. Be sure to check String#valid_encoding?.
|
115
113
|
#
|
@@ -157,7 +155,6 @@ class Encoding
|
|
157
155
|
# * Values from ENV
|
158
156
|
# * Values in ARGV including $PROGRAM_NAME
|
159
157
|
#
|
160
|
-
#
|
161
158
|
# Additionally String#encode and String#encode! use the default internal
|
162
159
|
# encoding if no encoding is given.
|
163
160
|
#
|
@@ -198,10 +195,13 @@ class Encoding
|
|
198
195
|
#
|
199
196
|
# "external"
|
200
197
|
# : default external encoding
|
198
|
+
#
|
201
199
|
# "internal"
|
202
200
|
# : default internal encoding
|
201
|
+
#
|
203
202
|
# "locale"
|
204
203
|
# : locale encoding
|
204
|
+
#
|
205
205
|
# "filesystem"
|
206
206
|
# : filesystem encoding
|
207
207
|
#
|
@@ -999,7 +999,6 @@ class Encoding::Converter < Object
|
|
999
999
|
# :partial_input is specified.
|
1000
1000
|
# * conversion is finished (:finished)
|
1001
1001
|
#
|
1002
|
-
#
|
1003
1002
|
# example:
|
1004
1003
|
# ec = Encoding::Converter.new("UTF-8", "UTF-16BE")
|
1005
1004
|
# ret = ec.primitive_convert(src="pi", dst="", nil, 100)
|
@@ -1212,7 +1211,6 @@ class Encoding::Converter < Object
|
|
1212
1211
|
# * two-element arrays which contain encodings or encoding names, or
|
1213
1212
|
# * strings representing decorator names.
|
1214
1213
|
#
|
1215
|
-
#
|
1216
1214
|
# Encoding::Converter.new optionally takes an option. The option should be a
|
1217
1215
|
# hash or an integer. The option hash can contain :invalid => nil, etc. The
|
1218
1216
|
# option integer should be logical-or of constants such as
|
@@ -1220,25 +1218,34 @@ class Encoding::Converter < Object
|
|
1220
1218
|
#
|
1221
1219
|
# :invalid => nil
|
1222
1220
|
# : Raise error on invalid byte sequence. This is a default behavior.
|
1221
|
+
#
|
1223
1222
|
# :invalid => :replace
|
1224
1223
|
# : Replace invalid byte sequence by replacement string.
|
1224
|
+
#
|
1225
1225
|
# :undef => nil
|
1226
1226
|
# : Raise an error if a character in source_encoding is not defined in
|
1227
1227
|
# destination_encoding. This is a default behavior.
|
1228
|
+
#
|
1228
1229
|
# :undef => :replace
|
1229
1230
|
# : Replace undefined character in destination_encoding with replacement
|
1230
1231
|
# string.
|
1232
|
+
#
|
1231
1233
|
# :replace => string
|
1232
1234
|
# : Specify the replacement string. If not specified, "uFFFD" is used for
|
1233
1235
|
# Unicode encodings and "?" for others.
|
1236
|
+
#
|
1234
1237
|
# :universal_newline => true
|
1235
1238
|
# : Convert CRLF and CR to LF.
|
1239
|
+
#
|
1236
1240
|
# :crlf_newline => true
|
1237
1241
|
# : Convert LF to CRLF.
|
1242
|
+
#
|
1238
1243
|
# :cr_newline => true
|
1239
1244
|
# : Convert LF to CR.
|
1245
|
+
#
|
1240
1246
|
# :lf_newline => true
|
1241
1247
|
# : Convert CRLF and CR to LF (when writing).
|
1248
|
+
#
|
1242
1249
|
# :xml => :text
|
1243
1250
|
# : Escape as XML CharData. This form can be used as an HTML 4.0 #PCDATA.
|
1244
1251
|
# * '&' -> '&'
|
@@ -1258,7 +1265,6 @@ class Encoding::Converter < Object
|
|
1258
1265
|
# such as &#xHH;
|
1259
1266
|
#
|
1260
1267
|
#
|
1261
|
-
#
|
1262
1268
|
# Examples:
|
1263
1269
|
# # UTF-16BE to UTF-8
|
1264
1270
|
# ec = Encoding::Converter.new("UTF-16BE", "UTF-8")
|
@@ -1296,96 +1302,70 @@ class Encoding::Converter < Object
|
|
1296
1302
|
end
|
1297
1303
|
|
1298
1304
|
# <!-- rdoc-file=transcode.c -->
|
1299
|
-
# AFTER_OUTPUT
|
1300
|
-
#
|
1301
1305
|
# Stop converting after some output is complete but before all of the input was
|
1302
1306
|
# consumed. See primitive_convert for an example.
|
1303
1307
|
#
|
1304
1308
|
Encoding::Converter::AFTER_OUTPUT: Integer
|
1305
1309
|
|
1306
1310
|
# <!-- rdoc-file=transcode.c -->
|
1307
|
-
# CRLF_NEWLINE_DECORATOR
|
1308
|
-
#
|
1309
1311
|
# Decorator for converting LF to CRLF
|
1310
1312
|
#
|
1311
1313
|
Encoding::Converter::CRLF_NEWLINE_DECORATOR: Integer
|
1312
1314
|
|
1313
1315
|
# <!-- rdoc-file=transcode.c -->
|
1314
|
-
# CR_NEWLINE_DECORATOR
|
1315
|
-
#
|
1316
1316
|
# Decorator for converting LF to CR
|
1317
1317
|
#
|
1318
1318
|
Encoding::Converter::CR_NEWLINE_DECORATOR: Integer
|
1319
1319
|
|
1320
1320
|
# <!-- rdoc-file=transcode.c -->
|
1321
|
-
# INVALID_MASK
|
1322
|
-
#
|
1323
1321
|
# Mask for invalid byte sequences
|
1324
1322
|
#
|
1325
1323
|
Encoding::Converter::INVALID_MASK: Integer
|
1326
1324
|
|
1327
1325
|
# <!-- rdoc-file=transcode.c -->
|
1328
|
-
# INVALID_REPLACE
|
1329
|
-
#
|
1330
1326
|
# Replace invalid byte sequences
|
1331
1327
|
#
|
1332
1328
|
Encoding::Converter::INVALID_REPLACE: Integer
|
1333
1329
|
|
1334
1330
|
# <!-- rdoc-file=transcode.c -->
|
1335
|
-
# PARTIAL_INPUT
|
1336
|
-
#
|
1337
1331
|
# Indicates the source may be part of a larger string. See primitive_convert
|
1338
1332
|
# for an example.
|
1339
1333
|
#
|
1340
1334
|
Encoding::Converter::PARTIAL_INPUT: Integer
|
1341
1335
|
|
1342
1336
|
# <!-- rdoc-file=transcode.c -->
|
1343
|
-
# UNDEF_HEX_CHARREF
|
1344
|
-
#
|
1345
1337
|
# Replace byte sequences that are undefined in the destination encoding with an
|
1346
1338
|
# XML hexadecimal character reference. This is valid for XML conversion.
|
1347
1339
|
#
|
1348
1340
|
Encoding::Converter::UNDEF_HEX_CHARREF: Integer
|
1349
1341
|
|
1350
1342
|
# <!-- rdoc-file=transcode.c -->
|
1351
|
-
# UNDEF_MASK
|
1352
|
-
#
|
1353
1343
|
# Mask for a valid character in the source encoding but no related character(s)
|
1354
1344
|
# in destination encoding.
|
1355
1345
|
#
|
1356
1346
|
Encoding::Converter::UNDEF_MASK: Integer
|
1357
1347
|
|
1358
1348
|
# <!-- rdoc-file=transcode.c -->
|
1359
|
-
# UNDEF_REPLACE
|
1360
|
-
#
|
1361
1349
|
# Replace byte sequences that are undefined in the destination encoding.
|
1362
1350
|
#
|
1363
1351
|
Encoding::Converter::UNDEF_REPLACE: Integer
|
1364
1352
|
|
1365
1353
|
# <!-- rdoc-file=transcode.c -->
|
1366
|
-
# UNIVERSAL_NEWLINE_DECORATOR
|
1367
|
-
#
|
1368
1354
|
# Decorator for converting CRLF and CR to LF
|
1369
1355
|
#
|
1370
1356
|
Encoding::Converter::UNIVERSAL_NEWLINE_DECORATOR: Integer
|
1371
1357
|
|
1372
1358
|
# <!-- rdoc-file=transcode.c -->
|
1373
|
-
# XML_ATTR_CONTENT_DECORATOR
|
1374
|
-
#
|
1375
1359
|
# Escape as XML AttValue
|
1376
1360
|
#
|
1377
1361
|
Encoding::Converter::XML_ATTR_CONTENT_DECORATOR: Integer
|
1378
1362
|
|
1379
1363
|
# <!-- rdoc-file=transcode.c -->
|
1380
|
-
# XML_ATTR_QUOTE_DECORATOR
|
1381
|
-
#
|
1382
1364
|
# Escape as XML AttValue
|
1383
1365
|
#
|
1384
1366
|
Encoding::Converter::XML_ATTR_QUOTE_DECORATOR: Integer
|
1385
1367
|
|
1386
1368
|
# <!-- rdoc-file=transcode.c -->
|
1387
|
-
# XML_TEXT_DECORATOR
|
1388
|
-
#
|
1389
1369
|
# Escape as XML CharData
|
1390
1370
|
#
|
1391
1371
|
Encoding::Converter::XML_TEXT_DECORATOR: Integer
|