wareki 0.3.0 → 0.4.0

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
- 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)