date 2.0.2 → 2.0.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8481a68fbde6bd3bfd0451519276e4dc0b97a5ef9821795e02ccf44f6e6a2657
4
- data.tar.gz: c3406be1405e4d5d428ca8235108b9f510f79cf9e576f00df5e41fa01d841cce
3
+ metadata.gz: e5fd26f10cea9d0d9c0c9af53fdbec0b57f303ba90e1258be39a804d4d97e471
4
+ data.tar.gz: 612e53600f02e04d8058490c2f39dbf9deacc05af70dddcdbad1baba68491cb2
5
5
  SHA512:
6
- metadata.gz: dd3b5df79114ab296e7ab12be8c1e455f608269a91c73531b5f42ce645487f2692016d1526cc914f9bd6661cbeb1f8bd5425cf3a16f3abcbc4cb864a260afdae
7
- data.tar.gz: ce1323207b6e3cbc3b09aff4a660b9f0de2a37367a186f6bde2af92ad9e048e63843abaadcccd97c4e0a3fa1609572aa804502690c5444a22a85af2903a4db37
6
+ metadata.gz: 2ae8c570c323530065fbfb4d0423b1d178d77f3000ebcb1c0adb3586dd934d9f3f6fcc0385afca5897316a89950fcd4e0beb93c219ea168f1917fb2e7976ed7f
7
+ data.tar.gz: e7044003b3517172c98efc69b58bc5355a9562c017b88d0b520626f145aeda4780ad24b9c504e6ee0b5df12c4282c3998f6afc5c8e4d20fbdcfaf1badd574ea2
data/ext/date/date_core.c CHANGED
@@ -4755,6 +4755,10 @@ date_s__jisx0301(int argc, VALUE *argv, VALUE klass)
4755
4755
  *
4756
4756
  * Date.jisx0301('H13.02.03') #=> #<Date: 2001-02-03 ...>
4757
4757
  *
4758
+ * For no-era year, legacy format, Heisei is assumed.
4759
+ *
4760
+ * Date.jisx0301('13.02.03') #=> #<Date: 2001-02-03 ...>
4761
+ *
4758
4762
  * Raise an ArgumentError when the string length is longer than _limit_.
4759
4763
  * You can stop this check by passing `limit: nil`, but note that
4760
4764
  * it may take a long time to parse.
@@ -7190,10 +7194,14 @@ jisx0301_date_format(char *fmt, size_t size, VALUE jd, VALUE y)
7190
7194
  c = 'S';
7191
7195
  s = 1925;
7192
7196
  }
7193
- else {
7197
+ else if (d < 2458605) {
7194
7198
  c = 'H';
7195
7199
  s = 1988;
7196
7200
  }
7201
+ else {
7202
+ c = 'R';
7203
+ s = 2018;
7204
+ }
7197
7205
  snprintf(fmt, size, "%c%02ld" ".%%m.%%d", c, FIX2INT(y) - s);
7198
7206
  return fmt;
7199
7207
  }
@@ -8358,6 +8366,11 @@ datetime_s_httpdate(int argc, VALUE *argv, VALUE klass)
8358
8366
  * DateTime.jisx0301('H13.02.03T04:05:06+07:00')
8359
8367
  * #=> #<DateTime: 2001-02-03T04:05:06+07:00 ...>
8360
8368
  *
8369
+ * For no-era year, legacy format, Heisei is assumed.
8370
+ *
8371
+ * DateTime.jisx0301('13.02.03T04:05:06+07:00')
8372
+ * #=> #<DateTime: 2001-02-03T04:05:06+07:00 ...>
8373
+ *
8361
8374
  * Raise an ArgumentError when the string length is longer than _limit_.
8362
8375
  * You can stop this check by passing `limit: nil`, but note that
8363
8376
  * it may take a long time to parse.
@@ -1212,6 +1212,9 @@ parse_iso2(VALUE str, VALUE hash)
1212
1212
  return 1;
1213
1213
  }
1214
1214
 
1215
+ #define JISX0301_ERA_INITIALS "mtshr"
1216
+ #define JISX0301_DEFAULT_ERA 'H' /* obsolete */
1217
+
1215
1218
  static int
1216
1219
  gengo(int c)
1217
1220
  {
@@ -1222,6 +1225,7 @@ gengo(int c)
1222
1225
  case 'T': case 't': e = 1911; break;
1223
1226
  case 'S': case 's': e = 1925; break;
1224
1227
  case 'H': case 'h': e = 1988; break;
1228
+ case 'R': case 'r': e = 2018; break;
1225
1229
  default: e = 0; break;
1226
1230
  }
1227
1231
  return e;
@@ -1252,11 +1256,11 @@ parse_jis(VALUE str, VALUE hash)
1252
1256
  {
1253
1257
  static const char pat_source[] =
1254
1258
  #ifndef TIGHT_PARSER
1255
- "\\b([mtsh])(\\d+)\\.(\\d+)\\.(\\d+)"
1259
+ "\\b([" JISX0301_ERA_INITIALS "])(\\d+)\\.(\\d+)\\.(\\d+)"
1256
1260
  #else
1257
1261
  BOS
1258
1262
  FPW_COM FPT_COM
1259
- "([mtsh])(\\d+)\\.(\\d+)\\.(\\d+)"
1263
+ "([" JISX0301_ERA_INITIALS "])(\\d+)\\.(\\d+)\\.(\\d+)"
1260
1264
  TEE_FPT COM_FPW
1261
1265
  EOS
1262
1266
  #endif
@@ -2954,7 +2958,7 @@ jisx0301_cb(VALUE m, VALUE hash)
2954
2958
  s[i] = rb_reg_nth_match(i, m);
2955
2959
  }
2956
2960
 
2957
- ep = gengo(NIL_P(s[1]) ? 'h' : *RSTRING_PTR(s[1]));
2961
+ ep = gengo(NIL_P(s[1]) ? JISX0301_DEFAULT_ERA : *RSTRING_PTR(s[1]));
2958
2962
  set_hash("year", f_add(str2num(s[2]), INT2FIX(ep)));
2959
2963
  set_hash("mon", str2num(s[3]));
2960
2964
  set_hash("mday", str2num(s[4]));
@@ -2979,7 +2983,7 @@ static int
2979
2983
  jisx0301(VALUE str, VALUE hash)
2980
2984
  {
2981
2985
  static const char pat_source[] =
2982
- "\\A\\s*([mtsh])?(\\d{2})\\.(\\d{2})\\.(\\d{2})"
2986
+ "\\A\\s*([" JISX0301_ERA_INITIALS "])?(\\d{2})\\.(\\d{2})\\.(\\d{2})"
2983
2987
  "(?:t"
2984
2988
  "(?:(\\d{2}):(\\d{2})(?::(\\d{2})(?:[,.](\\d*))?)?"
2985
2989
  "(z|[-+]\\d{2}(?::?\\d{2})?)?)?)?\\s*\\z";
data/lib/date.rb CHANGED
@@ -4,7 +4,7 @@
4
4
  require 'date_core'
5
5
 
6
6
  class Date
7
- VERSION = '2.0.2' # :nodoc:
7
+ VERSION = '2.0.3' # :nodoc:
8
8
 
9
9
  class Infinity < Numeric # :nodoc:
10
10
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: date
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.2
4
+ version: 2.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tadayoshi Funaba
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-11-18 00:00:00.000000000 Z
11
+ date: 2022-01-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake-compiler
@@ -26,7 +26,7 @@ dependencies:
26
26
  version: '0'
27
27
  description: A subclass of Object includes Comparable module for handling dates.
28
28
  email:
29
- -
29
+ -
30
30
  executables: []
31
31
  extensions:
32
32
  - ext/date/extconf.rb
@@ -46,7 +46,7 @@ homepage: https://github.com/ruby/date
46
46
  licenses:
47
47
  - BSD-2-Clause
48
48
  metadata: {}
49
- post_install_message:
49
+ post_install_message:
50
50
  rdoc_options: []
51
51
  require_paths:
52
52
  - lib
@@ -61,8 +61,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
61
61
  - !ruby/object:Gem::Version
62
62
  version: '0'
63
63
  requirements: []
64
- rubygems_version: 3.3.0.dev
65
- signing_key:
64
+ rubygems_version: 3.4.0.dev
65
+ signing_key:
66
66
  specification_version: 4
67
67
  summary: A subclass of Object includes Comparable module for handling dates.
68
68
  test_files: []