wareki 0.3.0 → 0.4.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 39f05936b30d97f43a06edb9d15c7d67bb719e96
4
- data.tar.gz: ccd7b79a1bf1dd80c5d7941e3563776821bfa929
2
+ SHA256:
3
+ metadata.gz: 1b97e0db45629f26f18ac0248bf9607823d956157cd3d3fac9ae29df4192f7c1
4
+ data.tar.gz: dfe01af9cad263a2dc429e1b9f220d9a66c111ff030214aaae3e5ea1199bb858
5
5
  SHA512:
6
- metadata.gz: 362fd8803dc51359f7b90e3a56bad1767c6feb4d2253270cc0d6d748d35b98ac92bb6d9f24e2adcf45d57236a956b909d8e0f78cb7b9652306b4c1b12bd25835
7
- data.tar.gz: 435a35906ed7100d2f808bdaf8051b9db778fc76e9ff0fcf8d8e646da5e1319a511ead388fe0159832b8268e681c5c231b1abf8c9ac996abf8c71e1ae70e0913
6
+ metadata.gz: cbc653ad671c59142a02f83d972c75519ec0d63c8fb77f1179be4b2d27e938dd2a3341f2be35b2143f26ad524d542293c2379a70baebf5a79c7d4d132509d888
7
+ data.tar.gz: d9a1b4dd4ae9e882dd4a330a3c566da85b52988716ec481f4c906c364855f92cadebe3d4a8ca064689c0abfa4e8f48bc64e206ac9175c1d25366a1684c9aa686
data/ChangeLog CHANGED
@@ -1,3 +1,9 @@
1
+ 2019-04-01 Tatsuki Sugiura <sugi@nemui.org>
2
+
3
+ * Version: 0.4.0
4
+ * Add new era "令和"
5
+ * Support parse without year (#8)
6
+
1
7
  2018-11-09 Tatsuki Sugiura <sugi@nemui.org>
2
8
 
3
9
  * Version: 0.3.0
@@ -1,4 +1,4 @@
1
- = ruby 和暦ライブラリ
1
+ = wareki - ruby 和暦ライブラリ
2
2
 
3
3
  {<img src="https://badge.fury.io/rb/wareki.svg" alt="Gem Version" />}[https://badge.fury.io/rb/wareki]
4
4
  {<img src="https://travis-ci.org/sugi/wareki.svg?branch=master" alt="Build Status" />}[https://travis-ci.org/sugi/wareki]
@@ -15,7 +15,7 @@
15
15
 
16
16
  * 和暦文字列のパース
17
17
  * 旧字体、1文字元号のサポート (慶應、萬延、㍻ など)
18
- * 全角数字、漢数字、全角ゼロのサポート (10月、十月、一〇月)
18
+ * 全角数字、漢数字、全角ゼロ、大字のサポート (10月、十月、一〇月、拾月、什月)
19
19
  * 閏月サポート
20
20
  * 月の別名のサポート (如月、弥生、師走など)
21
21
  * 元年、正月、朔日、晦日、廿一日、卅日 などの特殊な表記の日付サポート
@@ -1,2 +1,3 @@
1
+ require 'wareki/version'
1
2
  require 'wareki/date'
2
3
  require 'wareki/std_ext'
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module Wareki
2
3
  Year = Struct.new(:year, :start, :end, :leap_month, :month_starts, :month_days)
3
4
  YEAR_DEFS = [
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'wareki/calendar_def'
2
4
  require 'wareki/era_def'
3
5
  require 'date'
@@ -29,7 +31,7 @@ module Wareki
29
31
  (?:(?<is_leap>閏|潤|うるう)?
30
32
  (?:(?<month>[正#{NUM_CHARS}]+)月 |
31
33
  (?<alt_month>#{ALT_MONTH_NAME.join('|')})))?
32
- (?:(?<day>[元朔晦#{NUM_CHARS}]+))?
34
+ (?:(?<day>[元朔晦#{NUM_CHARS}]+)日|元旦)?
33
35
  $}x.freeze
34
36
 
35
37
  class UnsupportedDateRange < StandardError; end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'date'
2
4
  require 'wareki/common'
3
5
  require 'wareki/utils'
@@ -25,8 +27,12 @@ module Wareki
25
27
  match = REGEX.match(str.to_s.gsub(/[[:space:]]/, '')) or
26
28
  raise ArgumentError, "Invaild Date: #{str}"
27
29
  era = match[:era_name]
28
- (year = Kansuji.k2i(match[:year])) > 0 or
29
- raise ArgumentError, "Invalid year: #{str}"
30
+ if (era.nil? || era == '') && match[:year].nil?
31
+ year = Date.today.year
32
+ else
33
+ (year = Kansuji.k2i(match[:year])) > 0 or
34
+ raise ArgumentError, "Invalid year: #{str}"
35
+ end
30
36
  month = day = 1
31
37
 
32
38
  era.to_s != '' && era.to_s != '紀元前' && !ERA_BY_NAME[era] and
@@ -1,5 +1,7 @@
1
+ # frozen_string_literal: true
1
2
  # coding: utf-8
2
3
  module Wareki
4
+ DAY_MAX = 1684383730585466947585
3
5
  Era = Struct.new(:name, :year, :start, :end)
4
6
  ERA_DEFS = [
5
7
  Era.new("大化", 645, 1956842, 1958551),
@@ -248,7 +250,8 @@ module Wareki
248
250
  Era.new("明治", 1868, 2403357, 2419613),
249
251
  Era.new("大正", 1912, 2419614, 2424874),
250
252
  Era.new("昭和", 1926, 2424875, 2447534),
251
- Era.new("平成", 1989, 2447535, 1684383730585466947585),
253
+ Era.new("平成", 1989, 2447535, 2458604),
254
+ Era.new("令和", 2019, 2458605, DAY_MAX),
252
255
  ].freeze
253
256
  ERA_NORTH_DEFS = [
254
257
  Era.new("大化", 645, 1956842, 1958551),
@@ -497,6 +500,7 @@ module Wareki
497
500
  Era.new("明治", 1868, 2403357, 2419613),
498
501
  Era.new("大正", 1912, 2419614, 2424874),
499
502
  Era.new("昭和", 1926, 2424875, 2447534),
500
- Era.new("平成", 1989, 2447535, 1684383730585466947585),
503
+ Era.new("平成", 1989, 2447535, 2458604),
504
+ Era.new("令和", 2019, 2458605, DAY_MAX),
501
505
  ].freeze
502
506
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Wareki
2
4
  # Utilities of kansuji/integer converter.
3
5
  module Kansuji
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Wareki
2
4
  # Static utility methods.
3
5
  module Utils
@@ -1,3 +1,3 @@
1
1
  module Wareki
2
- VERSION = '0.3.0'.freeze
2
+ VERSION = '0.4.0'.freeze
3
3
  end
metadata CHANGED
@@ -1,41 +1,41 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wareki
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tatsuki Sugiura
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-11-08 00:00:00.000000000 Z
11
+ date: 2019-04-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '1.9'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '1.9'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '10.0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - "~>"
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '10.0'
41
41
  - !ruby/object:Gem::Dependency
@@ -93,7 +93,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
93
93
  version: '0'
94
94
  requirements: []
95
95
  rubyforge_project:
96
- rubygems_version: 2.5.2.2
96
+ rubygems_version: 2.7.6.2
97
97
  signing_key:
98
98
  specification_version: 4
99
99
  summary: Pure ruby library of Wareki (Japanese calendar date)