rbs 3.7.0 → 3.8.0.pre.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (168) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/comments.yml +3 -3
  3. data/.github/workflows/ruby.yml +7 -7
  4. data/CHANGELOG.md +52 -0
  5. data/core/array.rbs +1743 -1580
  6. data/core/basic_object.rbs +38 -35
  7. data/core/comparable.rbs +1 -1
  8. data/core/complex.rbs +165 -93
  9. data/core/data.rbs +1 -1
  10. data/core/dir.rbs +1 -17
  11. data/core/encoding.rbs +12 -6
  12. data/core/enumerable.rbs +270 -266
  13. data/core/enumerator.rbs +0 -2
  14. data/core/env.rbs +1 -1
  15. data/core/errno.rbs +33 -16
  16. data/core/errors.rbs +2 -2
  17. data/core/exception.rbs +236 -170
  18. data/core/fiber.rbs +3 -2
  19. data/core/file.rbs +32 -74
  20. data/core/float.rbs +125 -72
  21. data/core/gc.rbs +138 -40
  22. data/core/hash.rbs +120 -141
  23. data/core/integer.rbs +79 -50
  24. data/core/io/buffer.rbs +49 -43
  25. data/core/io.rbs +97 -144
  26. data/core/kernel.rbs +290 -200
  27. data/core/match_data.rbs +76 -2
  28. data/core/math.rbs +0 -36
  29. data/core/module.rbs +28 -23
  30. data/core/nil_class.rbs +0 -3
  31. data/core/numeric.rbs +100 -103
  32. data/core/object.rbs +0 -4
  33. data/core/object_space/weak_key_map.rbs +3 -4
  34. data/core/object_space.rbs +3 -3
  35. data/core/proc.rbs +0 -2
  36. data/core/process.rbs +109 -57
  37. data/core/ractor.rbs +37 -4
  38. data/core/range.rbs +114 -87
  39. data/core/rational.rbs +0 -2
  40. data/core/rbs/unnamed/argf.rbs +234 -33
  41. data/core/rbs/unnamed/env_class.rbs +35 -53
  42. data/core/rbs/unnamed/random.rbs +1 -2
  43. data/core/regexp.rbs +4 -52
  44. data/core/ruby_vm.rbs +88 -9
  45. data/core/rubygems/config_file.rbs +3 -0
  46. data/core/rubygems/errors.rbs +0 -5
  47. data/core/rubygems/platform.rbs +0 -9
  48. data/core/rubygems/rubygems.rbs +0 -5
  49. data/core/rubygems/version.rbs +6 -6
  50. data/core/set.rbs +3 -15
  51. data/core/string.rbs +130 -136
  52. data/core/struct.rbs +6 -18
  53. data/core/symbol.rbs +14 -21
  54. data/core/thread.rbs +32 -35
  55. data/core/time.rbs +127 -50
  56. data/core/trace_point.rbs +16 -0
  57. data/core/true_class.rbs +0 -1
  58. data/core/warning.rbs +9 -2
  59. data/docs/architecture.md +1 -1
  60. data/docs/syntax.md +1 -1
  61. data/ext/rbs_extension/location.c +29 -19
  62. data/ext/rbs_extension/parser.c +267 -292
  63. data/ext/rbs_extension/parserstate.c +56 -22
  64. data/lib/rbs/annotate/annotations.rb +3 -3
  65. data/lib/rbs/annotate/rdoc_source.rb +2 -2
  66. data/lib/rbs/cli/diff.rb +3 -3
  67. data/lib/rbs/cli/validate.rb +1 -1
  68. data/lib/rbs/cli.rb +13 -13
  69. data/lib/rbs/collection/config.rb +3 -1
  70. data/lib/rbs/definition_builder/ancestor_builder.rb +3 -3
  71. data/lib/rbs/environment_loader.rb +1 -1
  72. data/lib/rbs/namespace.rb +1 -0
  73. data/lib/rbs/parser_aux.rb +2 -2
  74. data/lib/rbs/prototype/rb.rb +11 -8
  75. data/lib/rbs/prototype/rbi.rb +9 -5
  76. data/lib/rbs/prototype/runtime/value_object_generator.rb +7 -5
  77. data/lib/rbs/prototype/runtime.rb +4 -5
  78. data/lib/rbs/type_name.rb +14 -9
  79. data/lib/rbs/unit_test/type_assertions.rb +2 -2
  80. data/lib/rbs/validator.rb +3 -1
  81. data/lib/rbs/version.rb +1 -1
  82. data/lib/rdoc_plugin/parser.rb +2 -2
  83. data/rbs.gemspec +4 -0
  84. data/sig/ancestor_graph.rbs +4 -4
  85. data/sig/namespace.rbs +2 -3
  86. data/sig/resolver/constant_resolver.rbs +2 -2
  87. data/sig/resolver/context.rbs +1 -1
  88. data/sig/type_alias_regularity.rbs +5 -5
  89. data/sig/typename.rbs +8 -5
  90. data/sig/use_map.rbs +1 -1
  91. data/sig/validator.rbs +2 -2
  92. data/stdlib/base64/0/base64.rbs +0 -9
  93. data/stdlib/benchmark/0/benchmark.rbs +11 -2
  94. data/stdlib/bigdecimal/0/big_decimal.rbs +26 -182
  95. data/stdlib/cgi/0/core.rbs +47 -0
  96. data/stdlib/coverage/0/coverage.rbs +0 -3
  97. data/stdlib/csv/0/csv.rbs +18 -58
  98. data/stdlib/date/0/date.rbs +4 -19
  99. data/stdlib/did_you_mean/0/did_you_mean.rbs +0 -5
  100. data/stdlib/digest/0/digest.rbs +25 -2
  101. data/stdlib/erb/0/erb.rbs +0 -1
  102. data/stdlib/etc/0/etc.rbs +51 -34
  103. data/stdlib/fileutils/0/fileutils.rbs +3 -44
  104. data/stdlib/io-console/0/io-console.rbs +69 -15
  105. data/stdlib/ipaddr/0/ipaddr.rbs +8 -4
  106. data/stdlib/json/0/json.rbs +56 -71
  107. data/stdlib/logger/0/log_device.rbs +1 -1
  108. data/stdlib/logger/0/logger.rbs +3 -18
  109. data/stdlib/net-http/0/net-http.rbs +19 -77
  110. data/stdlib/nkf/0/nkf.rbs +30 -0
  111. data/stdlib/objspace/0/objspace.rbs +1 -2
  112. data/stdlib/observable/0/observable.rbs +1 -1
  113. data/stdlib/open-uri/0/open-uri.rbs +52 -0
  114. data/stdlib/open3/0/open3.rbs +0 -8
  115. data/stdlib/openssl/0/openssl.rbs +136 -69
  116. data/stdlib/optparse/0/optparse.rbs +58 -18
  117. data/stdlib/pathname/0/pathname.rbs +2 -8
  118. data/stdlib/pp/0/pp.rbs +3 -1
  119. data/stdlib/prettyprint/0/prettyprint.rbs +0 -4
  120. data/stdlib/pstore/0/pstore.rbs +0 -6
  121. data/stdlib/psych/0/psych.rbs +15 -4
  122. data/stdlib/pty/0/pty.rbs +46 -4
  123. data/stdlib/rdoc/0/code_object.rbs +0 -4
  124. data/stdlib/rdoc/0/markup.rbs +10 -12
  125. data/stdlib/rdoc/0/rdoc.rbs +1 -2
  126. data/stdlib/resolv/0/resolv.rbs +8 -3
  127. data/stdlib/ripper/0/ripper.rbs +0 -2
  128. data/stdlib/securerandom/0/securerandom.rbs +0 -2
  129. data/stdlib/shellwords/0/shellwords.rbs +11 -12
  130. data/stdlib/singleton/0/singleton.rbs +0 -1
  131. data/stdlib/socket/0/addrinfo.rbs +0 -1
  132. data/stdlib/socket/0/basic_socket.rbs +0 -5
  133. data/stdlib/socket/0/socket.rbs +49 -25
  134. data/stdlib/socket/0/tcp_server.rbs +0 -3
  135. data/stdlib/socket/0/tcp_socket.rbs +58 -3
  136. data/stdlib/socket/0/udp_socket.rbs +0 -1
  137. data/stdlib/socket/0/unix_server.rbs +0 -3
  138. data/stdlib/strscan/0/string_scanner.rbs +1265 -422
  139. data/stdlib/tempfile/0/tempfile.rbs +135 -28
  140. data/stdlib/time/0/time.rbs +48 -35
  141. data/stdlib/timeout/0/timeout.rbs +11 -8
  142. data/stdlib/tmpdir/0/tmpdir.rbs +8 -1
  143. data/stdlib/tsort/0/tsort.rbs +0 -4
  144. data/stdlib/uri/0/common.rbs +11 -30
  145. data/stdlib/uri/0/ftp.rbs +1 -1
  146. data/stdlib/uri/0/generic.rbs +22 -18
  147. data/stdlib/uri/0/http.rbs +2 -2
  148. data/stdlib/uri/0/rfc2396_parser.rbs +3 -0
  149. data/stdlib/zlib/0/buf_error.rbs +1 -70
  150. data/stdlib/zlib/0/data_error.rbs +1 -70
  151. data/stdlib/zlib/0/deflate.rbs +8 -72
  152. data/stdlib/zlib/0/error.rbs +1 -70
  153. data/stdlib/zlib/0/gzip_file/crc_error.rbs +2 -105
  154. data/stdlib/zlib/0/gzip_file/error.rbs +2 -105
  155. data/stdlib/zlib/0/gzip_file/length_error.rbs +2 -105
  156. data/stdlib/zlib/0/gzip_file/no_footer.rbs +2 -105
  157. data/stdlib/zlib/0/gzip_file.rbs +1 -71
  158. data/stdlib/zlib/0/gzip_reader.rbs +3 -74
  159. data/stdlib/zlib/0/gzip_writer.rbs +1 -70
  160. data/stdlib/zlib/0/inflate.rbs +4 -71
  161. data/stdlib/zlib/0/mem_error.rbs +1 -70
  162. data/stdlib/zlib/0/need_dict.rbs +1 -70
  163. data/stdlib/zlib/0/stream_end.rbs +1 -70
  164. data/stdlib/zlib/0/stream_error.rbs +1 -70
  165. data/stdlib/zlib/0/version_error.rbs +1 -70
  166. data/stdlib/zlib/0/zlib.rbs +0 -2
  167. data/stdlib/zlib/0/zstream.rbs +4 -72
  168. metadata +4 -6
@@ -8,6 +8,8 @@ end
8
8
 
9
9
  interface _JsonWrite
10
10
  def write: (String json) -> void
11
+
12
+ def flush: () -> void
11
13
  end
12
14
 
13
15
  interface _JsonReadableIO
@@ -115,7 +117,6 @@ type json_state = singleton(JSON::Ext::Generator::State) | singleton(JSON::Pure:
115
117
  # name is double-quoted text; the values may be any JSON values:
116
118
  # {"a": "foo", "b": 1, "c": 1.0, "d": 2.0e2, "e": true, "f": false, "g": null}
117
119
  #
118
- #
119
120
  # A JSON array or object may contain nested arrays, objects, and scalars to any
120
121
  # depth:
121
122
  # {"foo": {"bar": 1, "baz": 2}, "bat": [0, 1, 2]}
@@ -134,13 +135,11 @@ type json_state = singleton(JSON::Ext::Generator::State) | singleton(JSON::Pure:
134
135
  # * `JSON.parse(source, opts)`
135
136
  # * `JSON.parse!(source, opts)`
136
137
  #
137
- #
138
138
  # where
139
139
  # * `source` is a Ruby object.
140
140
  # * `opts` is a Hash object containing options that control both input allowed
141
141
  # and output formatting.
142
142
  #
143
- #
144
143
  # The difference between the two methods is that JSON.parse! omits some checks
145
144
  # and may not be safe for some `source` data; use it only for data from trusted
146
145
  # sources. Use the safer method JSON.parse for less trusted sources.
@@ -298,7 +297,6 @@ type json_state = singleton(JSON::Ext::Generator::State) | singleton(JSON::Pure:
298
297
  # * `opts` is a Hash object containing options that control both input allowed
299
298
  # and output formatting.
300
299
  #
301
- #
302
300
  # #### Generating JSON from Arrays
303
301
  #
304
302
  # When the source is a Ruby Array, JSON.generate returns a String containing a
@@ -417,7 +415,6 @@ type json_state = singleton(JSON::Ext::Generator::State) | singleton(JSON::Pure:
417
415
  # inserted before the colon in each JSON object's pair; defaults to the
418
416
  # empty String, `''`.
419
417
  #
420
- #
421
418
  # In this example, `obj` is used first to generate the shortest JSON data (no
422
419
  # whitespace), then again with all formatting options specified:
423
420
  #
@@ -465,7 +462,6 @@ type json_state = singleton(JSON::Ext::Generator::State) | singleton(JSON::Pure:
465
462
  # * JSON.parse, called with option `create_additions`, uses that information
466
463
  # to create a proper Ruby object.
467
464
  #
468
- #
469
465
  # This example shows a Range being generated into JSON and parsed back into
470
466
  # Ruby, both without and with the addition for Range:
471
467
  # ruby = Range.new(0, 2)
@@ -477,13 +473,13 @@ type json_state = singleton(JSON::Ext::Generator::State) | singleton(JSON::Pure:
477
473
  # json1 = JSON.generate(ruby)
478
474
  # ruby1 = JSON.parse(json1, create_additions: true)
479
475
  # # Make a nice display.
480
- # display = <<EOT
481
- # Generated JSON:
482
- # Without addition: #{json0} (#{json0.class})
483
- # With addition: #{json1} (#{json1.class})
484
- # Parsed JSON:
485
- # Without addition: #{ruby0.inspect} (#{ruby0.class})
486
- # With addition: #{ruby1.inspect} (#{ruby1.class})
476
+ # display = <<~EOT
477
+ # Generated JSON:
478
+ # Without addition: #{json0} (#{json0.class})
479
+ # With addition: #{json1} (#{json1.class})
480
+ # Parsed JSON:
481
+ # Without addition: #{ruby0.inspect} (#{ruby0.class})
482
+ # With addition: #{ruby1.inspect} (#{ruby1.class})
487
483
  # EOT
488
484
  # puts display
489
485
  #
@@ -517,7 +513,6 @@ type json_state = singleton(JSON::Ext::Generator::State) | singleton(JSON::Pure:
517
513
  # * Symbol: `require 'json/add/symbol'`
518
514
  # * Time: `require 'json/add/time'`
519
515
  #
520
- #
521
516
  # To reduce punctuation clutter, the examples below show the generated JSON via
522
517
  # `puts`, rather than the usual `inspect`,
523
518
  #
@@ -660,13 +655,13 @@ type json_state = singleton(JSON::Ext::Generator::State) | singleton(JSON::Pure:
660
655
  # json1 = JSON.generate(foo1)
661
656
  # obj1 = JSON.parse(json1, create_additions: true)
662
657
  # # Make a nice display.
663
- # display = <<EOT
664
- # Generated JSON:
665
- # Without custom addition: #{json0} (#{json0.class})
666
- # With custom addition: #{json1} (#{json1.class})
667
- # Parsed JSON:
668
- # Without custom addition: #{obj0.inspect} (#{obj0.class})
669
- # With custom addition: #{obj1.inspect} (#{obj1.class})
658
+ # display = <<~EOT
659
+ # Generated JSON:
660
+ # Without custom addition: #{json0} (#{json0.class})
661
+ # With custom addition: #{json1} (#{json1.class})
662
+ # Parsed JSON:
663
+ # Without custom addition: #{obj0.inspect} (#{obj0.class})
664
+ # With custom addition: #{obj1.inspect} (#{obj1.class})
670
665
  # EOT
671
666
  # puts display
672
667
  #
@@ -731,7 +726,6 @@ module JSON
731
726
  # * Argument `limit`, if given, is passed to JSON.generate as option
732
727
  # `max_nesting`.
733
728
  #
734
- #
735
729
  # ---
736
730
  #
737
731
  # When argument `io` is not given, returns the JSON String generated from `obj`:
@@ -756,14 +750,14 @@ module JSON
756
750
  # <!-- rdoc-file=ext/json/lib/json/common.rb -->
757
751
  # Sets or returns the default options for the JSON.dump method. Initially:
758
752
  # opts = JSON.dump_default_options
759
- # opts # => {:max_nesting=>false, :allow_nan=>true, :script_safe=>false}
753
+ # opts # => {:max_nesting=>false, :allow_nan=>true}
760
754
  #
761
755
  def self.dump_default_options: () -> json_options
762
756
 
763
757
  # <!-- rdoc-file=ext/json/lib/json/common.rb -->
764
758
  # Sets or returns the default options for the JSON.dump method. Initially:
765
759
  # opts = JSON.dump_default_options
766
- # opts # => {:max_nesting=>false, :allow_nan=>true, :script_safe=>false}
760
+ # opts # => {:max_nesting=>false, :allow_nan=>true}
767
761
  #
768
762
  def self.dump_default_options=: (json_options) -> json_options
769
763
 
@@ -828,9 +822,7 @@ module JSON
828
822
  def self?.generate: (_ToJson obj, ?json_options opts) -> String
829
823
 
830
824
  # <!-- rdoc-file=ext/json/lib/json/common.rb -->
831
- # Returns the JSON generator module that is used by JSON. This is either
832
- # JSON::Ext::Generator or JSON::Pure::Generator:
833
- # JSON.generator # => JSON::Ext::Generator
825
+ # Returns the JSON generator module that is used by JSON.
834
826
  #
835
827
  def self.generator: () -> json_generator
836
828
 
@@ -850,6 +842,15 @@ module JSON
850
842
  # -->
851
843
  # Returns the Ruby objects created by parsing the given `source`.
852
844
  #
845
+ # BEWARE: This method is meant to serialise data from trusted user input, like
846
+ # from your own database server or clients under your control, it could be
847
+ # dangerous to allow untrusted users to pass JSON sources into it. If you must
848
+ # use it, use JSON.unsafe_load instead to make it clear.
849
+ #
850
+ # Since JSON version 2.8.0, `load` emits a deprecation warning when a non native
851
+ # type is deserialized, without `create_additions` being explicitly enabled, and
852
+ # in JSON version 3.0, `load` will have `create_additions` disabled by default.
853
+ #
853
854
  # * Argument `source` must be, or be convertible to, a String:
854
855
  # * If `source` responds to instance method `to_str`, `source.to_str`
855
856
  # becomes the source.
@@ -860,37 +861,31 @@ module JSON
860
861
  # * If both of the following are true, source becomes the String `'null'`:
861
862
  # * Option `allow_blank` specifies a truthy value.
862
863
  # * The source, as defined above, is `nil` or the empty String `''`.
863
- #
864
864
  # * Otherwise, `source` remains the source.
865
- #
866
865
  # * Argument `proc`, if given, must be a Proc that accepts one argument. It
867
866
  # will be called recursively with each result (depth-first order). See
868
- # details below. BEWARE: This method is meant to serialise data from trusted
869
- # user input, like from your own database server or clients under your
870
- # control, it could be dangerous to allow untrusted users to pass JSON
871
- # sources into it.
867
+ # details below.
872
868
  # * Argument `opts`, if given, contains a Hash of options for the parsing. See
873
869
  # [Parsing Options](#module-JSON-label-Parsing+Options). The default options
874
870
  # can be changed via method JSON.load_default_options=.
875
871
  #
876
- #
877
872
  # ---
878
873
  #
879
874
  # When no `proc` is given, modifies `source` as above and returns the result of
880
875
  # `parse(source, opts)`; see #parse.
881
876
  #
882
877
  # Source for following examples:
883
- # source = <<-EOT
884
- # {
885
- # "name": "Dave",
886
- # "age" :40,
887
- # "hats": [
888
- # "Cattleman's",
889
- # "Panama",
890
- # "Tophat"
891
- # ]
892
- # }
893
- # EOT
878
+ # source = <<~JSON
879
+ # {
880
+ # "name": "Dave",
881
+ # "age" :40,
882
+ # "hats": [
883
+ # "Cattleman's",
884
+ # "Panama",
885
+ # "Tophat"
886
+ # ]
887
+ # }
888
+ # JSON
894
889
  #
895
890
  # Load a String:
896
891
  # ruby = JSON.load(source)
@@ -916,7 +911,6 @@ module JSON
916
911
  # * Recursively calls `proc(result)`.
917
912
  # * Returns the final result.
918
913
  #
919
- #
920
914
  # Example:
921
915
  # require 'json'
922
916
  #
@@ -1045,17 +1039,17 @@ module JSON
1045
1039
  # \JSON](#module-JSON-label-Parsing+JSON).
1046
1040
  #
1047
1041
  # Parses nested JSON objects:
1048
- # source = <<-EOT
1049
- # {
1050
- # "name": "Dave",
1051
- # "age" :40,
1052
- # "hats": [
1053
- # "Cattleman's",
1054
- # "Panama",
1055
- # "Tophat"
1056
- # ]
1057
- # }
1058
- # EOT
1042
+ # source = <<~JSON
1043
+ # {
1044
+ # "name": "Dave",
1045
+ # "age" :40,
1046
+ # "hats": [
1047
+ # "Cattleman's",
1048
+ # "Panama",
1049
+ # "Tophat"
1050
+ # ]
1051
+ # }
1052
+ # JSON
1059
1053
  # ruby = JSON.parse(source)
1060
1054
  # ruby # => {"name"=>"Dave", "age"=>40, "hats"=>["Cattleman's", "Panama", "Tophat"]}
1061
1055
  #
@@ -1084,9 +1078,7 @@ module JSON
1084
1078
  def self?.parse!: (string source, ?json_options opts) -> untyped
1085
1079
 
1086
1080
  # <!-- rdoc-file=ext/json/lib/json/common.rb -->
1087
- # Returns the JSON parser class that is used by JSON. This is either
1088
- # JSON::Ext::Parser or JSON::Pure::Parser:
1089
- # JSON.parser # => JSON::Ext::Parser
1081
+ # Returns the JSON parser class that is used by JSON.
1090
1082
  #
1091
1083
  def self.parser: () -> json_parser
1092
1084
 
@@ -1137,29 +1129,25 @@ module JSON
1137
1129
 
1138
1130
  # <!--
1139
1131
  # rdoc-file=ext/json/lib/json/common.rb
1140
- # - restore(source, proc = nil, options = {})
1132
+ # - restore(source, proc = nil, options = nil)
1141
1133
  # -->
1142
1134
  #
1143
1135
  alias self.restore self.load
1144
1136
 
1145
1137
  # <!--
1146
1138
  # rdoc-file=ext/json/lib/json/common.rb
1147
- # - restore(source, proc = nil, options = {})
1139
+ # - restore(source, proc = nil, options = nil)
1148
1140
  # -->
1149
1141
  #
1150
1142
  alias restore load
1151
1143
 
1152
1144
  # <!-- rdoc-file=ext/json/lib/json/common.rb -->
1153
- # Sets or Returns the JSON generator state class that is used by JSON. This is
1154
- # either JSON::Ext::Generator::State or JSON::Pure::Generator::State:
1155
- # JSON.state # => JSON::Ext::Generator::State
1145
+ # Sets or Returns the JSON generator state class that is used by JSON.
1156
1146
  #
1157
1147
  def self.state: () -> json_state
1158
1148
 
1159
1149
  # <!-- rdoc-file=ext/json/lib/json/common.rb -->
1160
- # Sets or Returns the JSON generator state class that is used by JSON. This is
1161
- # either JSON::Ext::Generator::State or JSON::Pure::Generator::State:
1162
- # JSON.state # => JSON::Ext::Generator::State
1150
+ # Sets or Returns the JSON generator state class that is used by JSON.
1163
1151
  #
1164
1152
  def self.state=: (json_state) -> json_state
1165
1153
 
@@ -1182,9 +1170,6 @@ JSON::PRETTY_STATE_PROTOTYPE: json_state
1182
1170
 
1183
1171
  JSON::SAFE_STATE_PROTOTYPE: json_state
1184
1172
 
1185
- # <!-- rdoc-file=ext/json/lib/json/version.rb -->
1186
- # JSON version
1187
- #
1188
1173
  JSON::VERSION: String
1189
1174
 
1190
1175
  JSON::VERSION_ARRAY: Array[Integer]
@@ -57,7 +57,7 @@ class Logger
57
57
 
58
58
  # <!--
59
59
  # rdoc-file=lib/logger/log_device.rb
60
- # - new(log = nil, shift_age: nil, shift_size: nil, shift_period_suffix: nil, binmode: false)
60
+ # - new(log = nil, shift_age: nil, shift_size: nil, shift_period_suffix: nil, binmode: false, reraise_write_errors: [])
61
61
  # -->
62
62
  #
63
63
  def initialize: (?untyped logdev, ?binmode: boolish, ?shift_period_suffix: String, ?shift_size: Integer, ?shift_age: Numeric | String) -> void
@@ -66,13 +66,11 @@
66
66
  # * A severity (the required argument to #add).
67
67
  # * An automatically created timestamp.
68
68
  #
69
- #
70
69
  # And may also have:
71
70
  #
72
71
  # * A message.
73
72
  # * A program name.
74
73
  #
75
- #
76
74
  # Example:
77
75
  #
78
76
  # logger = Logger.new($stdout)
@@ -92,7 +90,6 @@
92
90
  # * Program name.
93
91
  # * Message.
94
92
  #
95
- #
96
93
  # You can use a different entry format by:
97
94
  #
98
95
  # * Setting a custom format proc (affects following entries); see
@@ -112,8 +109,6 @@
112
109
  #
113
110
  # logger.error("#{my_slow_message_generator}")
114
111
  #
115
- #
116
- #
117
112
  # ### Severity
118
113
  #
119
114
  # The severity of a log entry has two effects:
@@ -123,7 +118,6 @@
123
118
  # * Indicates to any log reader (whether a person or a program) the relative
124
119
  # importance of the entry.
125
120
  #
126
- #
127
121
  # ### Timestamp
128
122
  #
129
123
  # The timestamp for a log entry is generated automatically when the entry is
@@ -157,7 +151,6 @@
157
151
  # * An Exception: `message.message` is used.
158
152
  # * Anything else: `message.inspect` is used.
159
153
  #
160
- #
161
154
  # **Note**: Logger::Formatter does not escape or sanitize the message passed to
162
155
  # it. Developers should be aware that malicious data (user input) may be in the
163
156
  # message, and should explicitly escape untrusted data.
@@ -271,7 +264,6 @@
271
264
  # * Only the most recent log file is open and active; the others are closed
272
265
  # and inactive.
273
266
  #
274
- #
275
267
  # ### Size-Based Rotation
276
268
  #
277
269
  # For size-based log file rotation, call Logger.new with:
@@ -282,7 +274,6 @@
282
274
  # * Argument `shift_size` as a positive integer: the maximum size (in bytes)
283
275
  # of each log file; defaults to 1048576 (1 megabyte).
284
276
  #
285
- #
286
277
  # Examples:
287
278
  #
288
279
  # logger = Logger.new('t.log', 3) # Three 1-megabyte files.
@@ -300,14 +291,12 @@
300
291
  # * `t.log` is closed and renamed to `t.log.0`.
301
292
  # * A new file `t.log` is opened.
302
293
  #
303
- #
304
294
  # The second time `t.log` is full:
305
295
  #
306
296
  # * +t.log.0 is renamed as `t.log.1`.
307
297
  # * `t.log` is closed and renamed to `t.log.0`.
308
298
  # * A new file `t.log` is opened.
309
299
  #
310
- #
311
300
  # Each subsequent time that `t.log` is full, the log files are rotated:
312
301
  #
313
302
  # * `t.log.1` is removed.
@@ -315,7 +304,6 @@
315
304
  # * `t.log` is closed and renamed to `t.log.0`.
316
305
  # * A new file `t.log` is opened.
317
306
  #
318
- #
319
307
  # ### Periodic Rotation
320
308
  #
321
309
  # For periodic rotation, call Logger.new with:
@@ -323,7 +311,6 @@
323
311
  # * Argument `logdev` as a file path.
324
312
  # * Argument `shift_age` as a string period indicator.
325
313
  #
326
- #
327
314
  # Examples:
328
315
  #
329
316
  # logger = Logger.new('t.log', 'daily') # Rotate log files daily.
@@ -341,7 +328,6 @@
341
328
  # * A new log file `t.log` is opened.
342
329
  # * Nothing is removed.
343
330
  #
344
- #
345
331
  # The default format for the suffix is `'%Y%m%d'`, which produces a suffix
346
332
  # similar to the one above. You can set a different format using create-time
347
333
  # option `shift_period_suffix`; see details and suggestions at
@@ -534,7 +520,6 @@ class Logger
534
520
  # * `progname`: The program name for the entry.
535
521
  # * `msg`: The message for the entry (string or string-convertible object).
536
522
  #
537
- #
538
523
  # The proc should return a string containing the formatted entry.
539
524
  #
540
525
  # This custom formatter uses [String#dump](rdoc-ref:String#dump) to escape the
@@ -568,7 +553,6 @@ class Logger
568
553
  # * `progname`: The program name for the entry.
569
554
  # * `msg`: The message for the entry (string or string-convertible object).
570
555
  #
571
- #
572
556
  # The proc should return a string containing the formatted entry.
573
557
  #
574
558
  # This custom formatter uses [String#dump](rdoc-ref:String#dump) to escape the
@@ -670,7 +654,6 @@ class Logger
670
654
  # * If `logdev` is an IO stream (usually `$stdout`, `$stderr`, or an open File
671
655
  # object), opens the stream for append.
672
656
  #
673
- #
674
657
  # Example:
675
658
  #
676
659
  # logger = Logger.new('t.log')
@@ -770,7 +753,6 @@ class Logger
770
753
  # are to be written to the given stream.
771
754
  # * `nil` or `File::NULL`: no entries are to be written.
772
755
  #
773
- #
774
756
  # Examples:
775
757
  #
776
758
  # Logger.new('t.log')
@@ -797,6 +779,9 @@ class Logger
797
779
  # * `shift_period_suffix`: sets the format for the filename suffix for
798
780
  # periodic log file rotation; default is `'%Y%m%d'`. See [Periodic
799
781
  # Rotation](rdoc-ref:Logger@Periodic+Rotation).
782
+ # * `reraise_write_errors`: An array of exception classes, which will be
783
+ # reraised if there is an error when writing to the log device. The default
784
+ # is to swallow all exceptions raised.
800
785
  #
801
786
  def initialize: (logdev? logdev, ?Numeric | String shift_age, ?Integer shift_size, ?shift_period_suffix: String, ?binmode: boolish, ?datetime_format: String, ?formatter: _Formatter, ?progname: String, ?level: Integer | interned) -> void
802
787
  end