rbs 2.0.0 → 2.2.2

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 (208) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/comments.yml +34 -0
  3. data/.github/workflows/ruby.yml +5 -0
  4. data/CHANGELOG.md +82 -0
  5. data/README.md +6 -1
  6. data/Rakefile +56 -21
  7. data/core/array.rbs +2866 -1086
  8. data/core/basic_object.rbs +150 -30
  9. data/core/binding.rbs +33 -0
  10. data/core/builtin.rbs +4 -4
  11. data/core/class.rbs +43 -5
  12. data/core/comparable.rbs +57 -0
  13. data/core/complex.rbs +170 -4
  14. data/core/constants.rbs +51 -0
  15. data/core/deprecated.rbs +7 -0
  16. data/core/dir.rbs +305 -20
  17. data/core/encoding.rbs +1214 -77
  18. data/core/enumerable.rbs +2173 -234
  19. data/core/enumerator.rbs +448 -182
  20. data/core/env.rbs +448 -1
  21. data/core/errno.rbs +1 -10
  22. data/core/errors.rbs +152 -2
  23. data/core/exception.rbs +201 -127
  24. data/core/false_class.rbs +27 -0
  25. data/core/fiber.rbs +118 -37
  26. data/core/fiber_error.rbs +8 -9
  27. data/core/file.rbs +1060 -142
  28. data/core/file_test.rbs +287 -32
  29. data/core/float.rbs +776 -300
  30. data/core/gc.rbs +185 -34
  31. data/core/global_variables.rbs +5 -1
  32. data/core/hash.rbs +1582 -649
  33. data/core/integer.rbs +974 -204
  34. data/core/io/buffer.rbs +710 -0
  35. data/core/io/wait.rbs +29 -8
  36. data/core/io.rbs +2438 -417
  37. data/core/kernel.rbs +2319 -318
  38. data/core/marshal.rbs +37 -2
  39. data/core/match_data.rbs +123 -6
  40. data/core/math.rbs +126 -6
  41. data/core/method.rbs +226 -102
  42. data/core/module.rbs +421 -45
  43. data/core/nil_class.rbs +64 -0
  44. data/core/numeric.rbs +620 -142
  45. data/core/object.rbs +453 -81
  46. data/core/object_space.rbs +92 -2
  47. data/core/proc.rbs +482 -285
  48. data/core/process.rbs +443 -34
  49. data/core/ractor.rbs +232 -9
  50. data/core/random.rbs +151 -52
  51. data/core/range.rbs +885 -160
  52. data/core/rational.rbs +122 -6
  53. data/core/rb_config.rbs +14 -4
  54. data/core/refinement.rbs +44 -0
  55. data/core/regexp.rbs +156 -14
  56. data/core/ruby_vm.rbs +42 -3
  57. data/core/signal.rbs +78 -39
  58. data/core/string.rbs +2123 -567
  59. data/core/string_io.rbs +204 -0
  60. data/core/struct.rbs +283 -28
  61. data/core/symbol.rbs +304 -30
  62. data/core/thread.rbs +1288 -688
  63. data/core/thread_group.rbs +66 -10
  64. data/core/time.rbs +643 -217
  65. data/core/trace_point.rbs +100 -12
  66. data/core/true_class.rbs +24 -0
  67. data/core/unbound_method.rbs +73 -7
  68. data/core/warning.rbs +37 -12
  69. data/docs/CONTRIBUTING.md +40 -34
  70. data/docs/stdlib.md +3 -102
  71. data/docs/syntax.md +54 -11
  72. data/ext/rbs_extension/extconf.rb +1 -0
  73. data/ext/rbs_extension/lexer.h +5 -0
  74. data/ext/rbs_extension/lexstate.c +6 -0
  75. data/ext/rbs_extension/parser.c +85 -10
  76. data/ext/rbs_extension/ruby_objs.c +4 -2
  77. data/ext/rbs_extension/ruby_objs.h +2 -2
  78. data/goodcheck.yml +0 -11
  79. data/lib/rbs/annotate/annotations.rb +197 -0
  80. data/lib/rbs/annotate/formatter.rb +80 -0
  81. data/lib/rbs/annotate/rdoc_annotator.rb +398 -0
  82. data/lib/rbs/annotate/rdoc_source.rb +120 -0
  83. data/lib/rbs/annotate.rb +6 -0
  84. data/lib/rbs/ast/members.rb +21 -13
  85. data/lib/rbs/buffer.rb +17 -11
  86. data/lib/rbs/cli.rb +48 -1
  87. data/lib/rbs/definition_builder/method_builder.rb +28 -16
  88. data/lib/rbs/definition_builder.rb +6 -2
  89. data/lib/rbs/environment.rb +8 -4
  90. data/lib/rbs/location_aux.rb +12 -0
  91. data/lib/rbs/namespace.rb +1 -1
  92. data/lib/rbs/prototype/rb.rb +12 -0
  93. data/lib/rbs/type_alias_regularity.rb +6 -4
  94. data/lib/rbs/type_name.rb +1 -1
  95. data/lib/rbs/types.rb +1 -1
  96. data/lib/rbs/validator.rb +6 -0
  97. data/lib/rbs/version.rb +1 -1
  98. data/lib/rbs/writer.rb +54 -4
  99. data/lib/rbs.rb +0 -2
  100. data/schema/typeParam.json +3 -3
  101. data/sig/annotate/annotations.rbs +102 -0
  102. data/sig/annotate/formatter.rbs +24 -0
  103. data/sig/annotate/rdoc_annotater.rbs +82 -0
  104. data/sig/annotate/rdoc_source.rbs +30 -0
  105. data/sig/buffer.rbs +6 -2
  106. data/sig/cli.rbs +2 -0
  107. data/sig/collection/{collections.rbs → sources.rbs} +0 -0
  108. data/sig/location.rbs +6 -0
  109. data/sig/members.rbs +24 -18
  110. data/sig/method_builder.rbs +5 -4
  111. data/sig/method_types.rbs +5 -1
  112. data/sig/polyfill.rbs +78 -0
  113. data/sig/validator.rbs +3 -1
  114. data/sig/writer.rbs +79 -2
  115. data/stdlib/abbrev/0/abbrev.rbs +6 -0
  116. data/stdlib/abbrev/0/array.rbs +26 -0
  117. data/stdlib/base64/0/base64.rbs +31 -0
  118. data/stdlib/benchmark/0/benchmark.rbs +74 -3
  119. data/stdlib/bigdecimal/0/big_decimal.rbs +614 -165
  120. data/stdlib/bigdecimal-math/0/big_math.rbs +41 -64
  121. data/stdlib/cgi/0/core.rbs +649 -21
  122. data/stdlib/coverage/0/coverage.rbs +164 -2
  123. data/stdlib/csv/0/csv.rbs +2862 -398
  124. data/stdlib/date/0/date.rbs +483 -25
  125. data/stdlib/date/0/date_time.rbs +187 -12
  126. data/stdlib/dbm/0/dbm.rbs +152 -17
  127. data/stdlib/digest/0/digest.rbs +146 -0
  128. data/stdlib/erb/0/erb.rbs +65 -245
  129. data/stdlib/fiber/0/fiber.rbs +73 -91
  130. data/stdlib/fileutils/0/fileutils.rbs +301 -1
  131. data/stdlib/find/0/find.rbs +9 -0
  132. data/stdlib/forwardable/0/forwardable.rbs +65 -1
  133. data/stdlib/io-console/0/io-console.rbs +227 -15
  134. data/stdlib/ipaddr/0/ipaddr.rbs +161 -0
  135. data/stdlib/json/0/json.rbs +1147 -145
  136. data/stdlib/logger/0/formatter.rbs +24 -0
  137. data/stdlib/logger/0/log_device.rbs +64 -0
  138. data/stdlib/logger/0/logger.rbs +165 -13
  139. data/stdlib/logger/0/period.rbs +10 -0
  140. data/stdlib/logger/0/severity.rbs +26 -0
  141. data/stdlib/monitor/0/monitor.rbs +163 -0
  142. data/stdlib/mutex_m/0/mutex_m.rbs +35 -6
  143. data/stdlib/net-http/0/manifest.yaml +1 -0
  144. data/stdlib/net-http/0/net-http.rbs +1513 -683
  145. data/stdlib/nkf/0/nkf.rbs +372 -0
  146. data/stdlib/objspace/0/objspace.rbs +149 -90
  147. data/stdlib/openssl/0/openssl.rbs +8108 -71
  148. data/stdlib/optparse/0/optparse.rbs +487 -19
  149. data/stdlib/pathname/0/pathname.rbs +425 -124
  150. data/stdlib/prettyprint/0/prettyprint.rbs +120 -99
  151. data/stdlib/prime/0/integer-extension.rbs +20 -2
  152. data/stdlib/prime/0/prime.rbs +88 -21
  153. data/stdlib/pstore/0/pstore.rbs +102 -0
  154. data/stdlib/pty/0/pty.rbs +64 -14
  155. data/stdlib/resolv/0/resolv.rbs +420 -31
  156. data/stdlib/rubygems/0/basic_specification.rbs +4 -1
  157. data/stdlib/rubygems/0/config_file.rbs +33 -1
  158. data/stdlib/rubygems/0/dependency_installer.rbs +4 -3
  159. data/stdlib/rubygems/0/installer.rbs +13 -1
  160. data/stdlib/rubygems/0/path_support.rbs +4 -1
  161. data/stdlib/rubygems/0/platform.rbs +5 -1
  162. data/stdlib/rubygems/0/request_set.rbs +44 -2
  163. data/stdlib/rubygems/0/requirement.rbs +65 -2
  164. data/stdlib/rubygems/0/rubygems.rbs +407 -0
  165. data/stdlib/rubygems/0/source_list.rbs +13 -0
  166. data/stdlib/rubygems/0/specification.rbs +21 -1
  167. data/stdlib/rubygems/0/stream_ui.rbs +3 -1
  168. data/stdlib/rubygems/0/uninstaller.rbs +8 -1
  169. data/stdlib/rubygems/0/version.rbs +60 -157
  170. data/stdlib/securerandom/0/securerandom.rbs +44 -0
  171. data/stdlib/set/0/set.rbs +423 -109
  172. data/stdlib/shellwords/0/shellwords.rbs +55 -77
  173. data/stdlib/singleton/0/singleton.rbs +20 -0
  174. data/stdlib/socket/0/addrinfo.rbs +210 -9
  175. data/stdlib/socket/0/basic_socket.rbs +103 -11
  176. data/stdlib/socket/0/ip_socket.rbs +31 -9
  177. data/stdlib/socket/0/socket.rbs +586 -38
  178. data/stdlib/socket/0/tcp_server.rbs +22 -2
  179. data/stdlib/socket/0/tcp_socket.rbs +12 -1
  180. data/stdlib/socket/0/udp_socket.rbs +25 -2
  181. data/stdlib/socket/0/unix_server.rbs +22 -2
  182. data/stdlib/socket/0/unix_socket.rbs +45 -5
  183. data/stdlib/strscan/0/string_scanner.rbs +210 -9
  184. data/stdlib/tempfile/0/tempfile.rbs +58 -10
  185. data/stdlib/time/0/time.rbs +208 -116
  186. data/stdlib/timeout/0/timeout.rbs +10 -0
  187. data/stdlib/tmpdir/0/tmpdir.rbs +13 -4
  188. data/stdlib/tsort/0/cyclic.rbs +1 -0
  189. data/stdlib/tsort/0/interfaces.rbs +1 -0
  190. data/stdlib/tsort/0/tsort.rbs +42 -0
  191. data/stdlib/uri/0/common.rbs +57 -8
  192. data/stdlib/uri/0/file.rbs +55 -109
  193. data/stdlib/uri/0/ftp.rbs +6 -3
  194. data/stdlib/uri/0/generic.rbs +558 -329
  195. data/stdlib/uri/0/http.rbs +60 -114
  196. data/stdlib/uri/0/https.rbs +8 -102
  197. data/stdlib/uri/0/ldap.rbs +143 -137
  198. data/stdlib/uri/0/ldaps.rbs +8 -102
  199. data/stdlib/uri/0/mailto.rbs +3 -0
  200. data/stdlib/uri/0/rfc2396_parser.rbs +66 -26
  201. data/stdlib/uri/0/ws.rbs +6 -3
  202. data/stdlib/uri/0/wss.rbs +5 -3
  203. data/stdlib/yaml/0/dbm.rbs +151 -87
  204. data/stdlib/yaml/0/store.rbs +6 -0
  205. data/stdlib/zlib/0/zlib.rbs +90 -31
  206. metadata +18 -6
  207. data/lib/rbs/location.rb +0 -221
  208. data/sig/char_scanner.rbs +0 -9
@@ -1,7 +1,10 @@
1
+ # <!-- rdoc-file=ext/date/date_core.c -->
1
2
  # ## DateTime
2
3
  #
3
4
  # A subclass of Date that easily handles date, hour, minute, second, and offset.
4
5
  #
6
+ # DateTime class is considered deprecated. Use Time class.
7
+ #
5
8
  # DateTime does not consider any leap seconds, does not track any summer time
6
9
  # rules.
7
10
  #
@@ -59,17 +62,17 @@
59
62
  # ### When should you use DateTime and when should you use Time?
60
63
  #
61
64
  # It's a common misconception that [William
62
- # Shakespeare](http://en.wikipedia.org/wiki/William_Shakespeare) and [Miguel de
63
- # Cervantes](http://en.wikipedia.org/wiki/Miguel_de_Cervantes) died on the same
65
+ # Shakespeare](https://en.wikipedia.org/wiki/William_Shakespeare) and [Miguel de
66
+ # Cervantes](https://en.wikipedia.org/wiki/Miguel_de_Cervantes) died on the same
64
67
  # day in history - so much so that UNESCO named April 23 as [World Book Day
65
- # because of this fact](http://en.wikipedia.org/wiki/World_Book_Day). However,
68
+ # because of this fact](https://en.wikipedia.org/wiki/World_Book_Day). However,
66
69
  # because England hadn't yet adopted the [Gregorian Calendar
67
- # Reform](http://en.wikipedia.org/wiki/Gregorian_calendar#Gregorian_reform) (and
68
- # wouldn't until
69
- # [1752](http://en.wikipedia.org/wiki/Calendar_(New_Style)_Act_1750)) their
70
+ # Reform](https://en.wikipedia.org/wiki/Gregorian_calendar#Gregorian_reform)
71
+ # (and wouldn't until
72
+ # [1752](https://en.wikipedia.org/wiki/Calendar_(New_Style)_Act_1750)) their
70
73
  # deaths are actually 10 days apart. Since Ruby's Time class implements a
71
74
  # [proleptic Gregorian
72
- # calendar](http://en.wikipedia.org/wiki/Proleptic_Gregorian_calendar) and has
75
+ # calendar](https://en.wikipedia.org/wiki/Proleptic_Gregorian_calendar) and has
73
76
  # no concept of calendar reform there's no way to express this with Time
74
77
  # objects. This is where DateTime steps in:
75
78
  #
@@ -112,7 +115,7 @@
112
115
  # #=> Fri, 04 May 1753 00:00:00 +0000
113
116
  #
114
117
  # As you can see, if we're accurately tracking the number of [solar
115
- # years](http://en.wikipedia.org/wiki/Tropical_year) since Shakespeare's
118
+ # years](https://en.wikipedia.org/wiki/Tropical_year) since Shakespeare's
116
119
  # birthday then the correct anniversary date would be the 4th May and not the
117
120
  # 23rd April.
118
121
  #
@@ -122,12 +125,17 @@
122
125
  # a historical context you'll want to use DateTime to avoid making the same
123
126
  # mistakes as UNESCO. If you also have to deal with timezones then best of luck
124
127
  # - just bear in mind that you'll probably be dealing with [local solar
125
- # times](http://en.wikipedia.org/wiki/Solar_time), since it wasn't until the
128
+ # times](https://en.wikipedia.org/wiki/Solar_time), since it wasn't until the
126
129
  # 19th century that the introduction of the railways necessitated the need for
127
- # [Standard Time](http://en.wikipedia.org/wiki/Standard_time#Great_Britain) and
130
+ # [Standard Time](https://en.wikipedia.org/wiki/Standard_time#Great_Britain) and
128
131
  # eventually timezones.
129
132
  #
130
133
  class DateTime < Date
134
+ # <!--
135
+ # rdoc-file=ext/date/date_core.c
136
+ # - DateTime.civil([year=-4712[, month=1[, mday=1[, hour=0[, minute=0[, second=0[, offset=0[, start=Date::ITALY]]]]]]]]) -> datetime
137
+ # - DateTime.new([year=-4712[, month=1[, mday=1[, hour=0[, minute=0[, second=0[, offset=0[, start=Date::ITALY]]]]]]]]) -> datetime
138
+ # -->
131
139
  # Creates a DateTime object denoting the given calendar date.
132
140
  #
133
141
  # DateTime.new(2001,2,3) #=> #<DateTime: 2001-02-03T00:00:00+00:00 ...>
@@ -138,6 +146,10 @@ class DateTime < Date
138
146
  #
139
147
  def initialize: (?Integer year, ?Integer month, ?Integer mday, ?Integer hour, ?Integer minute, ?Integer second, ?Integer offset, ?Integer start) -> void
140
148
 
149
+ # <!--
150
+ # rdoc-file=ext/date/date_core.c
151
+ # - DateTime._strptime(string[, format='%FT%T%z']) -> hash
152
+ # -->
141
153
  # Parses the given representation of date and time with the given template, and
142
154
  # returns a hash of parsed elements. _strptime does not support specification
143
155
  # of flags and width unlike strftime.
@@ -146,6 +158,11 @@ class DateTime < Date
146
158
  #
147
159
  def self._strptime: (String str, ?String format) -> Hash[Symbol, Integer | String]
148
160
 
161
+ # <!--
162
+ # rdoc-file=ext/date/date_core.c
163
+ # - DateTime.civil([year=-4712[, month=1[, mday=1[, hour=0[, minute=0[, second=0[, offset=0[, start=Date::ITALY]]]]]]]]) -> datetime
164
+ # - DateTime.new([year=-4712[, month=1[, mday=1[, hour=0[, minute=0[, second=0[, offset=0[, start=Date::ITALY]]]]]]]]) -> datetime
165
+ # -->
149
166
  # Creates a DateTime object denoting the given calendar date.
150
167
  #
151
168
  # DateTime.new(2001,2,3) #=> #<DateTime: 2001-02-03T00:00:00+00:00 ...>
@@ -156,6 +173,10 @@ class DateTime < Date
156
173
  #
157
174
  def self.civil: (?Integer year, ?Integer month, ?Integer mday, ?Integer hour, ?Integer minute, ?Integer second, ?Integer offset, ?Integer start) -> DateTime
158
175
 
176
+ # <!--
177
+ # rdoc-file=ext/date/date_core.c
178
+ # - DateTime.commercial([cwyear=-4712[, cweek=1[, cwday=1[, hour=0[, minute=0[, second=0[, offset=0[, start=Date::ITALY]]]]]]]]) -> datetime
179
+ # -->
159
180
  # Creates a DateTime object denoting the given week date.
160
181
  #
161
182
  # DateTime.commercial(2001) #=> #<DateTime: 2001-01-01T00:00:00+00:00 ...>
@@ -165,14 +186,26 @@ class DateTime < Date
165
186
  #
166
187
  def self.commercial: (?Integer cwyear, ?Integer cweek, ?Integer cwday, ?Integer hour, ?Integer minute, ?Integer second, ?Integer offset, ?Integer start) -> DateTime
167
188
 
189
+ # <!--
190
+ # rdoc-file=ext/date/date_core.c
191
+ # - DateTime.httpdate(string='Mon, 01 Jan -4712 00:00:00 GMT'[, start=Date::ITALY]) -> datetime
192
+ # -->
168
193
  # Creates a new DateTime object by parsing from a string according to some RFC
169
194
  # 2616 format.
170
195
  #
171
196
  # DateTime.httpdate('Sat, 03 Feb 2001 04:05:06 GMT')
172
197
  # #=> #<DateTime: 2001-02-03T04:05:06+00:00 ...>
173
198
  #
199
+ # Raise an ArgumentError when the string length is longer than *limit*. You can
200
+ # stop this check by passing `limit: nil`, but note that it may take a long time
201
+ # to parse.
202
+ #
174
203
  def self.httpdate: (String str, ?Integer start) -> DateTime
175
204
 
205
+ # <!--
206
+ # rdoc-file=ext/date/date_core.c
207
+ # - DateTime.iso8601(string='-4712-01-01T00:00:00+00:00'[, start=Date::ITALY], limit: 128) -> datetime
208
+ # -->
176
209
  # Creates a new DateTime object by parsing from a string according to some
177
210
  # typical ISO 8601 formats.
178
211
  #
@@ -183,8 +216,16 @@ class DateTime < Date
183
216
  # DateTime.iso8601('2001-W05-6T04:05:06+07:00')
184
217
  # #=> #<DateTime: 2001-02-03T04:05:06+07:00 ...>
185
218
  #
219
+ # Raise an ArgumentError when the string length is longer than *limit*. You can
220
+ # stop this check by passing `limit: nil`, but note that it may take a long time
221
+ # to parse.
222
+ #
186
223
  def self.iso8601: (String str, ?Integer start) -> DateTime
187
224
 
225
+ # <!--
226
+ # rdoc-file=ext/date/date_core.c
227
+ # - DateTime.jd([jd=0[, hour=0[, minute=0[, second=0[, offset=0[, start=Date::ITALY]]]]]]) -> datetime
228
+ # -->
188
229
  # Creates a DateTime object denoting the given chronological Julian day number.
189
230
  #
190
231
  # DateTime.jd(2451944) #=> #<DateTime: 2001-02-03T00:00:00+00:00 ...>
@@ -194,6 +235,10 @@ class DateTime < Date
194
235
  #
195
236
  def self.jd: (?Integer jd, ?Integer hour, ?Integer minute, ?Integer second, ?Integer offset, ?Integer start) -> DateTime
196
237
 
238
+ # <!--
239
+ # rdoc-file=ext/date/date_core.c
240
+ # - DateTime.jisx0301(string='-4712-01-01T00:00:00+00:00'[, start=Date::ITALY], limit: 128) -> datetime
241
+ # -->
197
242
  # Creates a new DateTime object by parsing from a string according to some
198
243
  # typical JIS X 0301 formats.
199
244
  #
@@ -205,14 +250,26 @@ class DateTime < Date
205
250
  # DateTime.jisx0301('13.02.03T04:05:06+07:00')
206
251
  # #=> #<DateTime: 2001-02-03T04:05:06+07:00 ...>
207
252
  #
253
+ # Raise an ArgumentError when the string length is longer than *limit*. You can
254
+ # stop this check by passing `limit: nil`, but note that it may take a long time
255
+ # to parse.
256
+ #
208
257
  def self.jisx0301: (String str, ?Integer start) -> DateTime
209
258
 
259
+ # <!--
260
+ # rdoc-file=ext/date/date_core.c
261
+ # - DateTime.now([start=Date::ITALY]) -> datetime
262
+ # -->
210
263
  # Creates a DateTime object denoting the present time.
211
264
  #
212
265
  # DateTime.now #=> #<DateTime: 2011-06-11T21:20:44+09:00 ...>
213
266
  #
214
267
  def self.now: (?Integer start) -> DateTime
215
268
 
269
+ # <!--
270
+ # rdoc-file=ext/date/date_core.c
271
+ # - DateTime.ordinal([year=-4712[, yday=1[, hour=0[, minute=0[, second=0[, offset=0[, start=Date::ITALY]]]]]]]) -> datetime
272
+ # -->
216
273
  # Creates a DateTime object denoting the given ordinal date.
217
274
  #
218
275
  # DateTime.ordinal(2001,34) #=> #<DateTime: 2001-02-03T00:00:00+00:00 ...>
@@ -223,8 +280,16 @@ class DateTime < Date
223
280
  #
224
281
  def self.ordinal: (?Integer year, ?Integer yday, ?Integer hour, ?Integer minute, ?Integer second, ?Integer offset, ?Integer start) -> DateTime
225
282
 
283
+ # <!--
284
+ # rdoc-file=ext/date/date_core.c
285
+ # - DateTime.parse(string='-4712-01-01T00:00:00+00:00'[, comp=true[, start=Date::ITALY]], limit: 128) -> datetime
286
+ # -->
226
287
  # Parses the given representation of date and time, and creates a DateTime
227
- # object. This method does not function as a validator.
288
+ # object.
289
+ #
290
+ # This method *does not* function as a validator. If the input string does not
291
+ # match valid formats strictly, you may get a cryptic result. Should consider
292
+ # to use `DateTime.strptime` instead of this method as possible.
228
293
  #
229
294
  # If the optional second argument is true and the detected year is in the range
230
295
  # "00" to "99", makes it full.
@@ -236,32 +301,66 @@ class DateTime < Date
236
301
  # DateTime.parse('3rd Feb 2001 04:05:06 PM')
237
302
  # #=> #<DateTime: 2001-02-03T16:05:06+00:00 ...>
238
303
  #
304
+ # Raise an ArgumentError when the string length is longer than *limit*. You can
305
+ # stop this check by passing `limit: nil`, but note that it may take a long time
306
+ # to parse.
307
+ #
239
308
  def self.parse: (String str, ?boolish complete, ?Integer start) -> DateTime
240
309
 
310
+ # <!--
311
+ # rdoc-file=ext/date/date_core.c
312
+ # - DateTime.rfc2822(string='Mon, 1 Jan -4712 00:00:00 +0000'[, start=Date::ITALY], limit: 128) -> datetime
313
+ # - DateTime.rfc822(string='Mon, 1 Jan -4712 00:00:00 +0000'[, start=Date::ITALY], limit: 128) -> datetime
314
+ # -->
241
315
  # Creates a new DateTime object by parsing from a string according to some
242
316
  # typical RFC 2822 formats.
243
317
  #
244
318
  # DateTime.rfc2822('Sat, 3 Feb 2001 04:05:06 +0700')
245
319
  # #=> #<DateTime: 2001-02-03T04:05:06+07:00 ...>
246
320
  #
321
+ # Raise an ArgumentError when the string length is longer than *limit*. You can
322
+ # stop this check by passing `limit: nil`, but note that it may take a long time
323
+ # to parse.
324
+ #
247
325
  def self.rfc2822: (String str, ?Integer start) -> DateTime
248
326
 
327
+ # <!--
328
+ # rdoc-file=ext/date/date_core.c
329
+ # - DateTime.rfc3339(string='-4712-01-01T00:00:00+00:00'[, start=Date::ITALY], limit: 128) -> datetime
330
+ # -->
249
331
  # Creates a new DateTime object by parsing from a string according to some
250
332
  # typical RFC 3339 formats.
251
333
  #
252
334
  # DateTime.rfc3339('2001-02-03T04:05:06+07:00')
253
335
  # #=> #<DateTime: 2001-02-03T04:05:06+07:00 ...>
254
336
  #
337
+ # Raise an ArgumentError when the string length is longer than *limit*. You can
338
+ # stop this check by passing `limit: nil`, but note that it may take a long time
339
+ # to parse.
340
+ #
255
341
  def self.rfc3339: (String str, ?Integer start) -> DateTime
256
342
 
343
+ # <!--
344
+ # rdoc-file=ext/date/date_core.c
345
+ # - DateTime.rfc2822(string='Mon, 1 Jan -4712 00:00:00 +0000'[, start=Date::ITALY], limit: 128) -> datetime
346
+ # - DateTime.rfc822(string='Mon, 1 Jan -4712 00:00:00 +0000'[, start=Date::ITALY], limit: 128) -> datetime
347
+ # -->
257
348
  # Creates a new DateTime object by parsing from a string according to some
258
349
  # typical RFC 2822 formats.
259
350
  #
260
351
  # DateTime.rfc2822('Sat, 3 Feb 2001 04:05:06 +0700')
261
352
  # #=> #<DateTime: 2001-02-03T04:05:06+07:00 ...>
262
353
  #
354
+ # Raise an ArgumentError when the string length is longer than *limit*. You can
355
+ # stop this check by passing `limit: nil`, but note that it may take a long time
356
+ # to parse.
357
+ #
263
358
  def self.rfc822: (String str, ?Integer start) -> DateTime
264
359
 
360
+ # <!--
361
+ # rdoc-file=ext/date/date_core.c
362
+ # - DateTime.strptime([string='-4712-01-01T00:00:00+00:00'[, format='%FT%T%z'[ ,start=Date::ITALY]]]) -> datetime
363
+ # -->
265
364
  # Parses the given representation of date and time with the given template, and
266
365
  # creates a DateTime object. strptime does not support specification of flags
267
366
  # and width unlike strftime.
@@ -287,22 +386,39 @@ class DateTime < Date
287
386
  #
288
387
  def self.strptime: (String str, ?String format, ?Integer start) -> DateTime
289
388
 
389
+ # <!--
390
+ # rdoc-file=ext/date/date_core.c
391
+ # - DateTime.xmlschema(string='-4712-01-01T00:00:00+00:00'[, start=Date::ITALY], limit: 128) -> datetime
392
+ # -->
290
393
  # Creates a new DateTime object by parsing from a string according to some
291
394
  # typical XML Schema formats.
292
395
  #
293
396
  # DateTime.xmlschema('2001-02-03T04:05:06+07:00')
294
397
  # #=> #<DateTime: 2001-02-03T04:05:06+07:00 ...>
295
398
  #
399
+ # Raise an ArgumentError when the string length is longer than *limit*. You can
400
+ # stop this check by passing `limit: nil`, but note that it may take a long time
401
+ # to parse.
402
+ #
296
403
  def self.xmlschema: (String str, ?Integer start) -> DateTime
297
404
 
298
405
  public
299
406
 
407
+ # <!--
408
+ # rdoc-file=ext/date/date_core.c
409
+ # - d.hour -> fixnum
410
+ # -->
300
411
  # Returns the hour (0-23).
301
412
  #
302
413
  # DateTime.new(2001,2,3,4,5,6).hour #=> 4
303
414
  #
304
415
  def hour: () -> Integer
305
416
 
417
+ # <!--
418
+ # rdoc-file=ext/date/date_core.c
419
+ # - dt.iso8601([n=0]) -> string
420
+ # - dt.xmlschema([n=0]) -> string
421
+ # -->
306
422
  # This method is equivalent to strftime('%FT%T%:z'). The optional argument `n`
307
423
  # is the number of digits for fractional seconds.
308
424
  #
@@ -311,6 +427,10 @@ class DateTime < Date
311
427
  #
312
428
  def iso8601: (?Integer n) -> String
313
429
 
430
+ # <!--
431
+ # rdoc-file=ext/date/date_core.c
432
+ # - dt.jisx0301([n=0]) -> string
433
+ # -->
314
434
  # Returns a string in a JIS X 0301 format. The optional argument `n` is the
315
435
  # number of digits for fractional seconds.
316
436
  #
@@ -319,18 +439,28 @@ class DateTime < Date
319
439
  #
320
440
  def jisx0301: (?Integer n) -> String
321
441
 
442
+ # <!--
443
+ # rdoc-file=ext/date/date_core.c
444
+ # - d.min -> fixnum
445
+ # - d.minute -> fixnum
446
+ # -->
322
447
  # Returns the minute (0-59).
323
448
  #
324
449
  # DateTime.new(2001,2,3,4,5,6).min #=> 5
325
450
  #
326
451
  def min: () -> Integer
327
452
 
453
+ # <!-- rdoc-file=ext/date/date_core.c -->
328
454
  # Returns the minute (0-59).
329
455
  #
330
456
  # DateTime.new(2001,2,3,4,5,6).min #=> 5
331
457
  #
332
458
  def minute: () -> Integer
333
459
 
460
+ # <!--
461
+ # rdoc-file=ext/date/date_core.c
462
+ # - d.new_offset([offset=0]) -> date
463
+ # -->
334
464
  # Duplicates self and resets its offset.
335
465
  #
336
466
  # d = DateTime.new(2001,2,3,4,5,6,'-02:00')
@@ -339,12 +469,20 @@ class DateTime < Date
339
469
  #
340
470
  def new_offset: (?String offset) -> DateTime
341
471
 
472
+ # <!--
473
+ # rdoc-file=ext/date/date_core.c
474
+ # - d.offset -> rational
475
+ # -->
342
476
  # Returns the offset.
343
477
  #
344
478
  # DateTime.parse('04pm+0730').offset #=> (5/16)
345
479
  #
346
480
  def offset: () -> Rational
347
481
 
482
+ # <!--
483
+ # rdoc-file=ext/date/date_core.c
484
+ # - dt.rfc3339([n=0]) -> string
485
+ # -->
348
486
  # This method is equivalent to strftime('%FT%T%:z'). The optional argument `n`
349
487
  # is the number of digits for fractional seconds.
350
488
  #
@@ -353,30 +491,46 @@ class DateTime < Date
353
491
  #
354
492
  def rfc3339: (?Integer n) -> String
355
493
 
494
+ # <!--
495
+ # rdoc-file=ext/date/date_core.c
496
+ # - d.sec -> fixnum
497
+ # - d.second -> fixnum
498
+ # -->
356
499
  # Returns the second (0-59).
357
500
  #
358
501
  # DateTime.new(2001,2,3,4,5,6).sec #=> 6
359
502
  #
360
503
  def sec: () -> Integer
361
504
 
505
+ # <!--
506
+ # rdoc-file=ext/date/date_core.c
507
+ # - d.sec_fraction -> rational
508
+ # - d.second_fraction -> rational
509
+ # -->
362
510
  # Returns the fractional part of the second.
363
511
  #
364
512
  # DateTime.new(2001,2,3,4,5,6.5).sec_fraction #=> (1/2)
365
513
  #
366
514
  def sec_fraction: () -> Rational
367
515
 
516
+ # <!-- rdoc-file=ext/date/date_core.c -->
368
517
  # Returns the second (0-59).
369
518
  #
370
519
  # DateTime.new(2001,2,3,4,5,6).sec #=> 6
371
520
  #
372
521
  def second: () -> Integer
373
522
 
523
+ # <!-- rdoc-file=ext/date/date_core.c -->
374
524
  # Returns the fractional part of the second.
375
525
  #
376
526
  # DateTime.new(2001,2,3,4,5,6.5).sec_fraction #=> (1/2)
377
527
  #
378
528
  def second_fraction: () -> Rational
379
529
 
530
+ # <!--
531
+ # rdoc-file=ext/date/date_core.c
532
+ # - dt.strftime([format='%FT%T%:z']) -> string
533
+ # -->
380
534
  # Formats date according to the directives in the given format string. The
381
535
  # directives begin with a percent (%) character. Any text not listed as a
382
536
  # directive will be passed through to the output string.
@@ -484,7 +638,7 @@ class DateTime < Date
484
638
  # %c - date and time (%a %b %e %T %Y)
485
639
  # %D - Date (%m/%d/%y)
486
640
  # %F - The ISO 8601 date format (%Y-%m-%d)
487
- # %v - VMS date (%e-%b-%Y)
641
+ # %v - VMS date (%e-%^b-%Y)
488
642
  # %x - Same as %D
489
643
  # %X - Same as %T
490
644
  # %r - 12-hour time (%I:%M:%S %p)
@@ -546,14 +700,26 @@ class DateTime < Date
546
700
  #
547
701
  def strftime: (?String format) -> String
548
702
 
703
+ # <!--
704
+ # rdoc-file=ext/date/date_core.c
705
+ # - dt.to_date -> date
706
+ # -->
549
707
  # Returns a Date object which denotes self.
550
708
  #
551
709
  def to_date: () -> Date
552
710
 
711
+ # <!--
712
+ # rdoc-file=ext/date/date_core.c
713
+ # - dt.to_datetime -> self
714
+ # -->
553
715
  # Returns self.
554
716
  #
555
717
  def to_datetime: () -> DateTime
556
718
 
719
+ # <!--
720
+ # rdoc-file=ext/date/date_core.c
721
+ # - dt.to_s -> string
722
+ # -->
557
723
  # Returns a string in an ISO 8601 format. (This method doesn't use the expanded
558
724
  # representations.)
559
725
  #
@@ -562,10 +728,15 @@ class DateTime < Date
562
728
  #
563
729
  def to_s: () -> String
564
730
 
731
+ # <!--
732
+ # rdoc-file=ext/date/date_core.c
733
+ # - dt.to_time -> time
734
+ # -->
565
735
  # Returns a Time object which denotes self.
566
736
  #
567
737
  def to_time: () -> Time
568
738
 
739
+ # <!-- rdoc-file=ext/date/date_core.c -->
569
740
  # This method is equivalent to strftime('%FT%T%:z'). The optional argument `n`
570
741
  # is the number of digits for fractional seconds.
571
742
  #
@@ -574,6 +745,10 @@ class DateTime < Date
574
745
  #
575
746
  def xmlschema: (?Integer n) -> String
576
747
 
748
+ # <!--
749
+ # rdoc-file=ext/date/date_core.c
750
+ # - d.zone -> string
751
+ # -->
577
752
  # Returns the timezone.
578
753
  #
579
754
  # DateTime.parse('04pm+0730').zone #=> "+07:30"