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.
Files changed (268) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/comments.yml +2 -2
  3. data/.github/workflows/dependabot.yml +1 -1
  4. data/.github/workflows/ruby.yml +34 -10
  5. data/.github/workflows/windows.yml +20 -3
  6. data/.gitignore +1 -0
  7. data/.rubocop.yml +26 -1
  8. data/CHANGELOG.md +241 -0
  9. data/Rakefile +54 -4
  10. data/config.yml +317 -0
  11. data/core/array.rbs +1756 -1591
  12. data/core/basic_object.rbs +38 -35
  13. data/core/comparable.rbs +1 -1
  14. data/core/complex.rbs +166 -94
  15. data/core/data.rbs +2 -2
  16. data/core/dir.rbs +2 -18
  17. data/core/encoding.rbs +12 -32
  18. data/core/enumerable.rbs +270 -266
  19. data/core/enumerator.rbs +14 -4
  20. data/core/env.rbs +1 -1
  21. data/core/errno.rbs +33 -16
  22. data/core/errors.rbs +6 -2
  23. data/core/exception.rbs +342 -167
  24. data/core/fiber.rbs +3 -2
  25. data/core/file.rbs +26 -75
  26. data/core/float.rbs +125 -72
  27. data/core/gc.rbs +158 -42
  28. data/core/hash.rbs +122 -143
  29. data/core/integer.rbs +79 -50
  30. data/core/io/buffer.rbs +49 -43
  31. data/core/io.rbs +108 -151
  32. data/core/kernel.rbs +341 -209
  33. data/core/match_data.rbs +76 -2
  34. data/core/math.rbs +0 -36
  35. data/core/method.rbs +2 -2
  36. data/core/module.rbs +32 -27
  37. data/core/nil_class.rbs +2 -2
  38. data/core/numeric.rbs +101 -104
  39. data/core/object.rbs +1 -5
  40. data/core/object_space/weak_key_map.rbs +3 -4
  41. data/core/object_space.rbs +3 -3
  42. data/core/proc.rbs +82 -14
  43. data/core/process.rbs +110 -58
  44. data/core/ractor.rbs +57 -4
  45. data/core/range.rbs +114 -87
  46. data/core/rational.rbs +0 -2
  47. data/core/rbs/unnamed/argf.rbs +237 -36
  48. data/core/rbs/unnamed/env_class.rbs +35 -53
  49. data/core/rbs/unnamed/random.rbs +1 -2
  50. data/core/regexp.rbs +10 -56
  51. data/core/ruby_vm.rbs +88 -9
  52. data/core/rubygems/config_file.rbs +3 -0
  53. data/core/rubygems/errors.rbs +3 -6
  54. data/core/rubygems/platform.rbs +0 -9
  55. data/core/rubygems/rubygems.rbs +3 -6
  56. data/core/rubygems/version.rbs +8 -8
  57. data/core/set.rbs +4 -16
  58. data/core/string.rbs +271 -264
  59. data/core/struct.rbs +6 -18
  60. data/core/symbol.rbs +14 -21
  61. data/core/thread.rbs +32 -35
  62. data/core/time.rbs +131 -50
  63. data/core/trace_point.rbs +124 -113
  64. data/core/true_class.rbs +0 -1
  65. data/core/unbound_method.rbs +1 -1
  66. data/core/warning.rbs +9 -2
  67. data/docs/architecture.md +1 -1
  68. data/docs/syntax.md +17 -10
  69. data/ext/rbs_extension/extconf.rb +11 -0
  70. data/ext/rbs_extension/location.c +61 -29
  71. data/ext/rbs_extension/location.h +4 -3
  72. data/ext/rbs_extension/main.c +23 -1
  73. data/ext/rbs_extension/parser.c +506 -517
  74. data/ext/rbs_extension/parserstate.c +109 -30
  75. data/ext/rbs_extension/parserstate.h +6 -4
  76. data/ext/rbs_extension/rbs_extension.h +1 -10
  77. data/{ext/rbs_extension → include/rbs}/constants.h +21 -19
  78. data/include/rbs/ruby_objs.h +72 -0
  79. data/include/rbs/util/rbs_constant_pool.h +219 -0
  80. data/include/rbs.h +7 -0
  81. data/lib/rbs/annotate/annotations.rb +3 -3
  82. data/lib/rbs/annotate/rdoc_source.rb +2 -2
  83. data/lib/rbs/ast/declarations.rb +9 -4
  84. data/lib/rbs/ast/directives.rb +10 -0
  85. data/lib/rbs/ast/members.rb +2 -0
  86. data/lib/rbs/ast/type_param.rb +2 -12
  87. data/lib/rbs/cli/diff.rb +3 -3
  88. data/lib/rbs/cli/validate.rb +2 -1
  89. data/lib/rbs/cli.rb +16 -16
  90. data/lib/rbs/collection/config/lockfile_generator.rb +58 -8
  91. data/lib/rbs/collection/config.rb +5 -3
  92. data/lib/rbs/collection/sources/rubygems.rb +1 -1
  93. data/lib/rbs/collection.rb +1 -0
  94. data/lib/rbs/definition.rb +51 -34
  95. data/lib/rbs/definition_builder/ancestor_builder.rb +5 -3
  96. data/lib/rbs/definition_builder.rb +83 -24
  97. data/lib/rbs/environment.rb +33 -18
  98. data/lib/rbs/environment_loader.rb +6 -1
  99. data/lib/rbs/errors.rb +24 -0
  100. data/lib/rbs/locator.rb +2 -0
  101. data/lib/rbs/method_type.rb +2 -0
  102. data/lib/rbs/namespace.rb +1 -0
  103. data/lib/rbs/parser_aux.rb +40 -3
  104. data/lib/rbs/prototype/rb.rb +20 -12
  105. data/lib/rbs/prototype/rbi.rb +11 -6
  106. data/lib/rbs/prototype/runtime/value_object_generator.rb +7 -5
  107. data/lib/rbs/prototype/runtime.rb +7 -5
  108. data/lib/rbs/subtractor.rb +3 -3
  109. data/lib/rbs/test/hook.rb +47 -42
  110. data/lib/rbs/test/type_check.rb +7 -5
  111. data/lib/rbs/type_name.rb +14 -9
  112. data/lib/rbs/types.rb +63 -14
  113. data/lib/rbs/unit_test/spy.rb +4 -2
  114. data/lib/rbs/unit_test/type_assertions.rb +19 -13
  115. data/lib/rbs/unit_test/with_aliases.rb +3 -1
  116. data/lib/rbs/validator.rb +7 -1
  117. data/lib/rbs/version.rb +1 -1
  118. data/lib/rbs/writer.rb +10 -5
  119. data/lib/rbs.rb +1 -0
  120. data/lib/rdoc_plugin/parser.rb +2 -2
  121. data/rbs.gemspec +6 -2
  122. data/sig/ancestor_graph.rbs +5 -5
  123. data/sig/annotate/rdoc_source.rbs +2 -0
  124. data/sig/cli.rbs +2 -0
  125. data/sig/collection/config/lockfile_generator.rbs +9 -1
  126. data/sig/declarations.rbs +10 -3
  127. data/sig/definition.rbs +80 -12
  128. data/sig/definition_builder.rbs +18 -4
  129. data/sig/directives.rbs +17 -1
  130. data/sig/environment.rbs +3 -1
  131. data/sig/errors.rbs +19 -0
  132. data/sig/namespace.rbs +2 -3
  133. data/sig/parser.rbs +5 -1
  134. data/sig/prototype/rb.rbs +1 -1
  135. data/sig/resolver/constant_resolver.rbs +2 -2
  136. data/sig/resolver/context.rbs +1 -1
  137. data/sig/subtractor.rbs +1 -1
  138. data/sig/test/type_check.rbs +2 -2
  139. data/sig/type_alias_dependency.rbs +2 -2
  140. data/sig/type_alias_regularity.rbs +6 -6
  141. data/sig/type_param.rbs +4 -4
  142. data/sig/typename.rbs +8 -5
  143. data/sig/types.rbs +1 -1
  144. data/sig/unit_test/spy.rbs +2 -0
  145. data/sig/unit_test/type_assertions.rbs +2 -0
  146. data/sig/use_map.rbs +1 -1
  147. data/sig/validator.rbs +6 -2
  148. data/sig/vendorer.rbs +1 -1
  149. data/sig/writer.rbs +1 -1
  150. data/{ext/rbs_extension → src}/constants.c +35 -36
  151. data/src/ruby_objs.c +799 -0
  152. data/src/util/rbs_constant_pool.c +342 -0
  153. data/stdlib/base64/0/base64.rbs +0 -9
  154. data/stdlib/benchmark/0/benchmark.rbs +11 -2
  155. data/stdlib/bigdecimal/0/big_decimal.rbs +26 -182
  156. data/stdlib/cgi/0/core.rbs +60 -3
  157. data/stdlib/cgi/0/manifest.yaml +1 -0
  158. data/stdlib/coverage/0/coverage.rbs +0 -3
  159. data/stdlib/csv/0/csv.rbs +18 -58
  160. data/stdlib/csv/0/manifest.yaml +1 -0
  161. data/stdlib/date/0/date.rbs +27 -42
  162. data/stdlib/did_you_mean/0/did_you_mean.rbs +1 -6
  163. data/stdlib/digest/0/digest.rbs +25 -2
  164. data/stdlib/erb/0/erb.rbs +0 -1
  165. data/stdlib/etc/0/etc.rbs +51 -34
  166. data/stdlib/fileutils/0/fileutils.rbs +3 -44
  167. data/stdlib/io-console/0/io-console.rbs +69 -15
  168. data/stdlib/ipaddr/0/ipaddr.rbs +16 -4
  169. data/stdlib/json/0/json.rbs +107 -120
  170. data/stdlib/logger/0/log_device.rbs +1 -1
  171. data/stdlib/logger/0/logger.rbs +3 -18
  172. data/stdlib/minitest/0/kernel.rbs +2 -2
  173. data/stdlib/minitest/0/minitest/abstract_reporter.rbs +4 -1
  174. data/stdlib/minitest/0/minitest/assertion.rbs +1 -0
  175. data/stdlib/minitest/0/minitest/assertions.rbs +58 -13
  176. data/stdlib/minitest/0/minitest/backtrace_filter.rbs +7 -0
  177. data/stdlib/minitest/0/minitest/bench_spec.rbs +8 -8
  178. data/stdlib/minitest/0/minitest/benchmark.rbs +17 -16
  179. data/stdlib/minitest/0/minitest/compress.rbs +13 -0
  180. data/stdlib/minitest/0/minitest/error_on_warning.rbs +3 -0
  181. data/stdlib/minitest/0/minitest/mock.rbs +9 -5
  182. data/stdlib/minitest/0/minitest/parallel/executor.rbs +4 -0
  183. data/stdlib/minitest/0/minitest/parallel/test/class_methods.rbs +0 -1
  184. data/stdlib/minitest/0/minitest/pride_io.rbs +8 -0
  185. data/stdlib/minitest/0/minitest/pride_lol.rbs +2 -0
  186. data/stdlib/minitest/0/minitest/progress_reporter.rbs +1 -1
  187. data/stdlib/minitest/0/minitest/reportable.rbs +2 -0
  188. data/stdlib/minitest/0/minitest/runnable.rbs +33 -1
  189. data/stdlib/minitest/0/minitest/spec/dsl/instance_methods.rbs +1 -1
  190. data/stdlib/minitest/0/minitest/spec/dsl.rbs +10 -6
  191. data/stdlib/minitest/0/minitest/spec.rbs +1 -1
  192. data/stdlib/minitest/0/minitest/statistics_reporter.rbs +5 -0
  193. data/stdlib/minitest/0/minitest/summary_reporter.rbs +0 -7
  194. data/stdlib/minitest/0/minitest/test/lifecycle_hooks.rbs +1 -1
  195. data/stdlib/minitest/0/minitest/test.rbs +7 -14
  196. data/stdlib/minitest/0/minitest/unexpected_error.rbs +2 -0
  197. data/stdlib/minitest/0/minitest/unexpected_warning.rbs +6 -0
  198. data/stdlib/minitest/0/minitest/unit.rbs +1 -2
  199. data/stdlib/minitest/0/minitest.rbs +41 -892
  200. data/stdlib/monitor/0/monitor.rbs +13 -4
  201. data/stdlib/net-http/0/net-http.rbs +42 -109
  202. data/stdlib/nkf/0/nkf.rbs +30 -0
  203. data/stdlib/objspace/0/objspace.rbs +1 -2
  204. data/stdlib/observable/0/observable.rbs +1 -1
  205. data/stdlib/open-uri/0/manifest.yaml +1 -0
  206. data/stdlib/open-uri/0/open-uri.rbs +52 -0
  207. data/stdlib/open3/0/open3.rbs +0 -8
  208. data/stdlib/openssl/0/manifest.yaml +1 -0
  209. data/stdlib/openssl/0/openssl.rbs +235 -143
  210. data/stdlib/optparse/0/optparse.rbs +58 -18
  211. data/stdlib/pathname/0/pathname.rbs +2 -8
  212. data/stdlib/pp/0/pp.rbs +3 -1
  213. data/stdlib/prettyprint/0/prettyprint.rbs +0 -4
  214. data/stdlib/pstore/0/pstore.rbs +0 -6
  215. data/stdlib/psych/0/core_ext.rbs +12 -0
  216. data/stdlib/psych/0/psych.rbs +15 -4
  217. data/stdlib/pty/0/pty.rbs +46 -4
  218. data/stdlib/rdoc/0/code_object.rbs +0 -4
  219. data/stdlib/rdoc/0/markup.rbs +10 -12
  220. data/stdlib/rdoc/0/rdoc.rbs +13 -8
  221. data/stdlib/resolv/0/resolv.rbs +21 -12
  222. data/stdlib/ripper/0/ripper.rbs +0 -2
  223. data/stdlib/securerandom/0/securerandom.rbs +7 -2
  224. data/stdlib/shellwords/0/shellwords.rbs +11 -12
  225. data/stdlib/singleton/0/singleton.rbs +0 -1
  226. data/stdlib/socket/0/addrinfo.rbs +1 -2
  227. data/stdlib/socket/0/basic_socket.rbs +0 -5
  228. data/stdlib/socket/0/socket.rbs +32 -27
  229. data/stdlib/socket/0/tcp_server.rbs +0 -3
  230. data/stdlib/socket/0/tcp_socket.rbs +36 -3
  231. data/stdlib/socket/0/udp_socket.rbs +0 -1
  232. data/stdlib/socket/0/unix_server.rbs +0 -3
  233. data/stdlib/socket/0/unix_socket.rbs +4 -2
  234. data/{core/string_io.rbs → stdlib/stringio/0/stringio.rbs} +1 -1
  235. data/stdlib/strscan/0/string_scanner.rbs +1265 -422
  236. data/stdlib/tempfile/0/tempfile.rbs +135 -28
  237. data/stdlib/time/0/time.rbs +48 -35
  238. data/stdlib/timeout/0/timeout.rbs +11 -8
  239. data/stdlib/tmpdir/0/tmpdir.rbs +10 -3
  240. data/stdlib/tsort/0/tsort.rbs +0 -4
  241. data/stdlib/uri/0/common.rbs +28 -30
  242. data/stdlib/uri/0/ftp.rbs +1 -1
  243. data/stdlib/uri/0/generic.rbs +22 -18
  244. data/stdlib/uri/0/http.rbs +2 -2
  245. data/stdlib/uri/0/rfc2396_parser.rbs +3 -0
  246. data/stdlib/zlib/0/buf_error.rbs +1 -70
  247. data/stdlib/zlib/0/data_error.rbs +1 -70
  248. data/stdlib/zlib/0/deflate.rbs +8 -72
  249. data/stdlib/zlib/0/error.rbs +1 -70
  250. data/stdlib/zlib/0/gzip_file/crc_error.rbs +2 -105
  251. data/stdlib/zlib/0/gzip_file/error.rbs +2 -105
  252. data/stdlib/zlib/0/gzip_file/length_error.rbs +2 -105
  253. data/stdlib/zlib/0/gzip_file/no_footer.rbs +2 -105
  254. data/stdlib/zlib/0/gzip_file.rbs +1 -71
  255. data/stdlib/zlib/0/gzip_reader.rbs +3 -74
  256. data/stdlib/zlib/0/gzip_writer.rbs +1 -70
  257. data/stdlib/zlib/0/inflate.rbs +4 -71
  258. data/stdlib/zlib/0/mem_error.rbs +1 -70
  259. data/stdlib/zlib/0/need_dict.rbs +1 -70
  260. data/stdlib/zlib/0/stream_end.rbs +1 -70
  261. data/stdlib/zlib/0/stream_error.rbs +1 -70
  262. data/stdlib/zlib/0/version_error.rbs +1 -70
  263. data/stdlib/zlib/0/zlib.rbs +0 -2
  264. data/stdlib/zlib/0/zstream.rbs +4 -72
  265. metadata +17 -13
  266. data/ext/rbs_extension/ruby_objs.c +0 -602
  267. data/ext/rbs_extension/ruby_objs.h +0 -51
  268. 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
- # Retruns the home directory path of the user specified with `user_name` if it
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
  # * '&' -> '&amp;'
@@ -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