wareki 0.1.3 → 0.1.4

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
2
  SHA1:
3
- metadata.gz: 580a31cae7a0a20059c2e914c08a0fd5793fa715
4
- data.tar.gz: 0d965affe4eb6a63e64b2c7fc3dd3f0038fe87e4
3
+ metadata.gz: 9b36739d46cbd6fd70410c22e27494c22d4bb895
4
+ data.tar.gz: cff175bc8ba633cb0521eb0d2e330be0f7568c09
5
5
  SHA512:
6
- metadata.gz: 4118d6b51ee6f34dde41d0009a57e695bf4c2e5070e64a014b87f2b5747eb8ef798ea89bab59cdbdc078a8fe7d7d605197d862e45bd089e817fe8d768204e596
7
- data.tar.gz: b9206e669bdd95e22fabe2cf8f4c200c69e04abbc07d56bced3802456745b8ac1da4c909f0c87ab3f39d75dd98ae57f1fcbea2530aafe5808bc8f27980701e99
6
+ metadata.gz: d388a21610e1f9be78807c87898d4c9b6df93302f6d8b97a7590e35b81903d2c6a69dde21aacead7d3384622f8c84cdd55ddd96cad850c6a8fe7e2ffde2075ed
7
+ data.tar.gz: 3091f85bde645d4d34ba827bd8e94e3bf4e332dbdf265c9ab6702414746a283e029bc06c4e75da871b37fa82373b5fb0506e278af9f5b2f23c34c0300acc769a
data/ChangeLog CHANGED
@@ -1,3 +1,8 @@
1
+ 2017-06-01 Tatsuki Sugiura <sugi@nemui.org>
2
+
3
+ * Version: 0.1.4
4
+ * Add ad-hoc support for 西暦 and 紀元前
5
+
1
6
  2017-02-04 Tatsuki Sugiura <sugi@nemui.org>
2
7
 
3
8
  * Version 0.1.3
@@ -11,6 +11,7 @@ module Wareki
11
11
  YEAR_BY_NUM = Hash[*YEAR_DEFS.map{|y| [y.year, y]}.flatten].freeze
12
12
  ERA_BY_NAME = Hash[*(ERA_NORTH_DEFS + ERA_DEFS).map {|g| [g.name, g]}.flatten]
13
13
  ERA_BY_NAME['皇紀'] = ERA_BY_NAME['神武天皇即位紀元'] = Era.new('皇紀', -660, 1480041, DATE_INFINITY.jd)
14
+ ERA_BY_NAME['西暦'] = ERA_BY_NAME[''] = Era.new('西暦', 1, 1721424, DATE_INFINITY.jd)
14
15
  ERA_BY_NAME.keys.each do |era_name|
15
16
  alt_era_name = era_name.tr("宝霊神応暦祥寿斎観寛徳禄万福禎国亀", "寳靈神應曆祥壽斉觀寬德祿萬福禎國龜")
16
17
  alt_era_name == era_name and next
@@ -20,7 +21,7 @@ module Wareki
20
21
  NUM_CHARS = "零〇一二三四五六七八九十卄廿卅丗卌肆百皕千万億兆01234567890123456789"
21
22
  ALT_MONTH_NAME = %w(睦月 如月 弥生 卯月 皐月 水無月 文月 葉月 長月 神無月 霜月 師走).freeze
22
23
  REGEX = %r{^
23
- (?<era_name>西暦|#{ERA_BY_NAME.keys.join('|')})?
24
+ (?<era_name>西暦|紀元前|#{ERA_BY_NAME.keys.join('|')})?
24
25
  (?:(?<year>[元#{NUM_CHARS}]+)年)?
25
26
  (?:(?<is_leap>閏|潤|うるう)?
26
27
  (?:(?<month>[正#{NUM_CHARS}]+)月 |
@@ -18,7 +18,7 @@ module Wareki
18
18
  month = 1
19
19
  day = 1
20
20
 
21
- if era.to_s != "" && !ERA_BY_NAME[era]
21
+ if era.to_s != "" && era.to_s != "紀元前" && !ERA_BY_NAME[era]
22
22
  raise ArgumentError, "Date parse failed: Invalid era name '#{match[:era_name]}'"
23
23
  end
24
24
 
@@ -73,7 +73,7 @@ module Wareki
73
73
  end
74
74
 
75
75
  def initialize(era_name, era_year, month = 1, day = 1, is_leap_month = false)
76
- if era_name.to_s != "" && era_name != "西暦" && !ERA_BY_NAME[era_name]
76
+ if era_name.to_s != "" && era_name != "紀元前" && !ERA_BY_NAME[era_name]
77
77
  raise ArgumentError, "Undefined era '#{era_name}'"
78
78
  end
79
79
  @month = month
@@ -81,10 +81,12 @@ module Wareki
81
81
  @is_leap_month = is_leap_month
82
82
  @era_name = era_name
83
83
  @era_year = era_year
84
- if era_name.to_s == ""
84
+ if era_name.to_s == "" || era_name == "西暦"
85
85
  @year = @era_year
86
86
  elsif era_name == "皇紀" || era_name == "神武天皇即位紀元"
87
87
  @year = era_year + IMPERIAL_START_YEAR
88
+ elsif era_name.to_s == "紀元前"
89
+ @year = -@era_year
88
90
  else
89
91
  @year = ERA_BY_NAME[era_name].year + era_year - 1
90
92
  end
@@ -111,7 +113,7 @@ module Wareki
111
113
  end
112
114
 
113
115
  def month_index
114
- if @era_name == "西暦" || @year >= GREGORIAN_START_YEAR
116
+ if @era_name == "" || @era_name == "西暦" || @era_name == "紀元前" || @year >= GREGORIAN_START_YEAR
115
117
  return month -1
116
118
  end
117
119
 
@@ -127,7 +129,7 @@ module Wareki
127
129
  def jd
128
130
  @jd and return @jd
129
131
 
130
- if @era_name == "西暦"
132
+ if @era_name == "西暦" || @era_name == "" || @era_name == "紀元前"
131
133
  return @jd = ::Date.new(@year, month, day, ::Date::ITALY).jd
132
134
  elsif @year >= GREGORIAN_START_YEAR
133
135
  return @jd = ::Date.new(@year, month, day, ::Date::GREGORIAN).jd
@@ -1,3 +1,3 @@
1
1
  module Wareki
2
- VERSION = "0.1.3"
2
+ VERSION = "0.1.4"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wareki
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tatsuki Sugiura
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-02-03 00:00:00.000000000 Z
11
+ date: 2017-06-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -91,7 +91,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
91
91
  version: '0'
92
92
  requirements: []
93
93
  rubyforge_project:
94
- rubygems_version: 2.4.5.1
94
+ rubygems_version: 2.2.2
95
95
  signing_key:
96
96
  specification_version: 4
97
97
  summary: Pure ruby library of Wareki (Japanese calendar date)