wareki 0.1.3 → 0.1.4

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