era_ja 0.5.3 → 1.2.2

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: 3e6d411b206e4460b298f9aa2d98eb9e94e2fc2e
4
- data.tar.gz: 18fdb71851b63ed43b398bf146df053d46e22f21
2
+ SHA256:
3
+ metadata.gz: bcf0a0de20e3f4e090835b70d95bd314e00969368a7d11930d4f138b10a5a479
4
+ data.tar.gz: 3faa10bd05537ebe7ac6bd279e32576701b8369ad1ac72c8198f9073fe0a1aa2
5
5
  SHA512:
6
- metadata.gz: d1a156a3fcd0d4b379d16fbba05d6516051966a59938cdd8bb05fc2fbc3dc7eb5e9adc466139992b6d17ee793f21e0fa4f9380e1915bb1e42d47ffbf9fb524c0
7
- data.tar.gz: fb3ff1d6ad6c8de4e0d2239dd3e25c1f6c5aa908e6a659183caa003a449422d1b713e1b093d5450947c292d03daf17b7b3bb1bda047ce86e7f39656c493cca8a
6
+ metadata.gz: fbbb0bf965c38428ba6c63057ab1c49b1dad5912c46480440386e6c5ce01e39185fa4e65b9de8ac990928d818308fb6183b42b1327192ae52b37da7f578a99bf
7
+ data.tar.gz: d2a6df2467587f964a74d869de4e59cae8da84ca062b3dda6f61074be7420d212c97d4111d697046f7b92a551b2059b90b9a4e29975520e0b37bb5c074b47ec6
@@ -2,7 +2,10 @@ language: ruby
2
2
  rvm:
3
3
  - 2.0.0-p648
4
4
  - 2.1.10
5
- - 2.2.9
6
- - 2.3.6
7
- - 2.4.3
5
+ - 2.2.10
6
+ - 2.3.8
7
+ - 2.4.9
8
+ - 2.5.7
9
+ - 2.6.5
10
+ - 2.7.0
8
11
  script: bundle exec rspec spec
@@ -26,20 +26,23 @@
26
26
 
27
27
  ### フォーマット文字列
28
28
 
29
- 引数としてstftimeのフォーマット文字列を使用出来ます。
29
+ 引数としてstrftimeのフォーマット文字列を使用出来ます。
30
30
 
31
31
  EraJa#to_eraメソッドでの追加のフォーマット文字列は以下の通りです。
32
32
 
33
- * %o: 元号(アルファベット)
34
- * %O: 元号(漢字)
35
- * %E: 元号の年
33
+ * %o: 元号(アルファベット)
34
+ * %O: 元号(漢字)
35
+ * %1O: 元号(漢字1文字)
36
+ * %E: 元号の年
37
+ * %-E: 元号の年(1から9まで1ケタ)
38
+ * %J: 漢数字
36
39
 
37
40
  ### Timeインスタンスを和暦に変換します。
38
41
 
39
42
  ```ruby
40
43
  require 'era_ja'
41
- Time.mktime(2012,4,29).to_era # => "H24.4.29"
42
- Time.mktime(2012,4,29).to_era("%O%E年%m月%d日") # => "平成24年4月29日"
44
+ Time.mktime(2012,4,29).to_era # => "H24.04.29"
45
+ Time.mktime(2012,4,29).to_era("%O%E年%-m月%d日") # => "平成24年4月29日"
43
46
  Time.mktime(2012,4,29).to_era("%O%JE年%Jm月%Jd日") # => "平成二十四年四月二十九日"
44
47
  ```
45
48
 
@@ -47,8 +50,8 @@ Time.mktime(2012,4,29).to_era("%O%JE年%Jm月%Jd日") # => "平成二十四年
47
50
 
48
51
  ```ruby
49
52
  require 'era_ja
50
- Date.new(2012,4,29).to_era # => "H24.4.29"
51
- Date.new(2012,4,29).to_era("%O%E年%m月%d日") # => "平成24年4月29日"
53
+ Date.new(2012,4,29).to_era # => "H24.04.29"
54
+ Date.new(2012,4,29).to_era("%O%E年%-m月%d日") # => "平成24年4月29日"
52
55
  Date.new(2012,4,29).to_era("%O%JE年%Jm月%Jd日") # => "平成二十四年四月二十九日"
53
56
  ```
54
57
 
@@ -73,12 +76,24 @@ Time.mktime(2012,4,29).to_era("%1O%E年%m月%d日") # => "平24年4月29日"
73
76
 
74
77
  ```ruby
75
78
  require 'era_ja'
76
- Time.mktime(2012,4,29).to_era(era_names: { heisei: ['h', '平'] }) # => "h24.4.29"
77
- Time.mktime(2012,4,29).to_era("%O%E年%m月%d日", era_names: { heisei: ['h', '平'] }) # => "平24年4月29日"
78
- Time.mktime(2012,4,29).to_era("%O%JE年%Jm月%Jd日", era_names: { heisei: ['h', '平'] }) # => "平二十四年四月二十九日"
79
+ Time.mktime(2012,4,29).to_era(era_names: { heisei: ['h', '平'] }) # => "h24.04.29"
80
+ Time.mktime(2012,4,29).to_era("%O%E年%-m月%d日", era_names: { heisei: ['h', '平'] }) # => "平24年4月29日"
81
+ Time.mktime(2012,4,29).to_era("%O%JE年%Jm月%Jd日", era_names: { heisei: ['h', '平'] }) # => "平二十四年四月二十九日"
79
82
  # same as Date
80
83
  ```
81
84
 
85
+ ### 元号に変換できるかどうかの判定方法 ###
86
+
87
+ 日付が元号に変換できるかどうかを判定するために、`era_convertible?` を使うことができます。
88
+
89
+ ```ruby
90
+ require 'era_ja'
91
+ Time.mktime(1868,9,7).era_convertible? #=> false
92
+ Time.mktime(1868,9,8).era_convertible? #=> true
93
+ ```
94
+
95
+ 元号に変換できない日付に関しては、[Noteセクション](#note) を参照してください。
96
+
82
97
  ## Support
83
98
 
84
99
  問題を報告したり、機能追加の要望する場合はgithubのIssuesに登録してください。 https://github.com/tomiacannondale/era_ja/issues
data/README.md CHANGED
@@ -34,14 +34,15 @@ Extra format strings provided by EraJa#to_era are:
34
34
  * %O: era(kanzi)
35
35
  * %1O: era(single kanzi)
36
36
  * %E: era year
37
+ * %-E: era year(single digit format from 1 to 9)
37
38
  * %J: kanzi numeral
38
39
 
39
40
  ### Time instance to Japanese era
40
41
 
41
42
  ```ruby
42
43
  require 'era_ja'
43
- Time.mktime(2012,4,29).to_era # => "H24.4.29"
44
- Time.mktime(2012,4,29).to_era("%O%E年%m月%d日") # => "平成24年4月29日"
44
+ Time.mktime(2012,4,29).to_era # => "H24.04.29"
45
+ Time.mktime(2012,4,29).to_era("%O%E年%-m月%d日") # => "平成24年4月29日"
45
46
  Time.mktime(2012,4,29).to_era("%O%JE年%Jm月%Jd日") # => "平成二十四年四月二十九日"
46
47
  ```
47
48
 
@@ -49,8 +50,8 @@ Time.mktime(2012,4,29).to_era("%O%JE年%Jm月%Jd日") # => "平成二十四年
49
50
 
50
51
  ```ruby
51
52
  require 'era_ja'
52
- Date.new(2012,4,29).to_era # => "H24.4.29"
53
- Date.new(2012,4,29).to_era("%O%E年%m月%d日") # => "平成24年4月29日"
53
+ Date.new(2012,4,29).to_era # => "H24.04.29"
54
+ Date.new(2012,4,29).to_era("%O%E年%-m月%d日") # => "平成24年4月29日"
54
55
  Date.new(2012,4,29).to_era("%O%JE年%Jm月%Jd日") # => "平成二十四年四月二十九日"
55
56
  ```
56
57
 
@@ -74,12 +75,24 @@ To convert to custom era strings, you can set `era_names` .
74
75
 
75
76
  ```ruby
76
77
  require 'era_ja'
77
- Time.mktime(2012,4,29).to_era(era_names: { heisei: ['h', '平'] }) # => "h24.4.29"
78
- Time.mktime(2012,4,29).to_era("%O%E年%m月%d日", era_names: { heisei: ['h', '平'] }) # => "平24年4月29日"
79
- Time.mktime(2012,4,29).to_era("%O%JE年%Jm月%Jd日", era_names: { heisei: ['h', '平'] }) # => "平二十四年四月二十九日"
78
+ Time.mktime(2012,4,29).to_era(era_names: { heisei: ['h', '平'] }) # => "h24.04.29"
79
+ Time.mktime(2012,4,29).to_era("%O%E年%-m月%d日", era_names: { heisei: ['h', '平'] }) # => "平24年4月29日"
80
+ Time.mktime(2012,4,29).to_era("%O%JE年%Jm月%Jd日", era_names: { heisei: ['h', '平'] }) # => "平二十四年四月二十九日"
80
81
  # same as Date
81
82
  ```
82
83
 
84
+ ### Checking a date is convertible ###
85
+
86
+ You can use `era_convertible?` to check if a given date is convertible or not.
87
+
88
+ ```ruby
89
+ require 'era_ja'
90
+ Time.mktime(1868,9,7).era_convertible? #=> false
91
+ Time.mktime(1868,9,8).era_convertible? #=> true
92
+ ```
93
+
94
+ See [Note](#note) section for more details.
95
+
83
96
  ## Support
84
97
 
85
98
  Report issues and feature requests to github Issues. https://github.com/tomiacannondale/era_ja/issues
@@ -16,7 +16,7 @@ Gem::Specification.new do |gem|
16
16
  gem.version = EraJa::VERSION
17
17
  gem.license = "MIT"
18
18
 
19
- gem.add_development_dependency "rake", '~> 10.1.0'
19
+ gem.add_development_dependency "rake", '>= 12.3.3'
20
20
  gem.add_development_dependency 'rspec', '~> 3.1.0'
21
21
  gem.add_development_dependency "guard-rspec", '~> 4.5.0'
22
22
  gem.add_development_dependency 'rb-fsevent', '~> 0.9.4'
@@ -2,3 +2,4 @@
2
2
  require "era_ja/version"
3
3
  require "era_ja/date"
4
4
  require "era_ja/time"
5
+ require "era_ja/error"
@@ -7,11 +7,10 @@ module EraJa
7
7
  meiji: ["M", "明治"],
8
8
  taisho: ["T", "大正"],
9
9
  showa: ["S", "昭和"],
10
- heisei: ["H", "平成"]
10
+ heisei: ["H", "平成"],
11
+ reiwa: ["R", "令和"]
11
12
  }.freeze
12
13
 
13
- ERR_DATE_OUT_OF_RANGE = "#to_era only works on dates after 1868,9,8".freeze
14
-
15
14
  # Convert to Japanese era.
16
15
  # @param [String] format_string
17
16
  # Time#strftime format string can be used
@@ -22,33 +21,39 @@ module EraJa
22
21
  # * %J - kanzi number
23
22
  # @param [Hash] era_names
24
23
  # If you want to convert custom to era strings (eg `平`, `h`), you can set this argument.
25
- # key is `:meiji' or `:taisho' or `:showa` or `:heisei`.
24
+ # key is `:meiji' or `:taisho' or `:showa` or `:heisei` or `:reiwa`.
26
25
  # value is ["alphabet era name"(ex `h`, `s`)(related to `%o`), "multibyte era name"(eg `平`, `昭`)(related to `%O`)].
27
26
  # this argument is same as one element of ERA_NAME_DEFAULTS.
28
27
  # @return [String]
29
28
  def to_era(format = "%o%E.%m.%d", era_names: ERA_NAME_DEFAULTS)
29
+ raise EraJa::DateOutOfRangeError unless era_convertible?
30
+
30
31
  @era_format = format.gsub(/%J/, "%J%")
31
32
  str_time = strftime(@era_format)
32
- if @era_format =~ /%([EOo]|1O)/
33
+ if @era_format =~ /%(-?E|[Oo]|1O)/
33
34
  case
34
- when self.to_time < ::Time.mktime(1868,9,8)
35
- raise ERR_DATE_OUT_OF_RANGE
36
35
  when self.to_time < ::Time.mktime(1912,7,30)
37
36
  str_time = era_year(year - 1867, :meiji, era_names)
38
37
  when self.to_time < ::Time.mktime(1926,12,25)
39
38
  str_time = era_year(year - 1911, :taisho, era_names)
40
39
  when self.to_time < ::Time.mktime(1989,1,8)
41
40
  str_time = era_year(year - 1925, :showa, era_names)
42
- else
41
+ when self.to_time < ::Time.mktime(2019, 5, 1)
43
42
  str_time = era_year(year - 1988, :heisei, era_names)
43
+ else
44
+ str_time = era_year(year - 2018, :reiwa, era_names)
44
45
  end
45
46
  end
46
47
  str_time.gsub(/%J(\d+)/) { to_kanzi($1) }
47
48
  end
48
49
 
50
+ def era_convertible?
51
+ self.to_time >= ::Time.mktime(1868,9,8)
52
+ end
53
+
49
54
  private
50
55
  def era_year(year, era, era_names)
51
- strftime(@era_format).sub(/(%J)?%E/) { format_year(year, $1) }.sub(/%1?o/i) { format_era(era, era_names) }
56
+ strftime(@era_format).sub(/(%J)?(%-?E)/) { format_year(year, $1, $2) }.sub(/%1?o/i) { format_era(era, era_names) }
52
57
  end
53
58
 
54
59
  def format_era(era, era_names)
@@ -62,18 +67,26 @@ module EraJa
62
67
  end
63
68
  end
64
69
 
65
- def format_year(year, match)
70
+ def format_year(year, match, digit)
66
71
  era_year = sprintf("%02d", year)
72
+
67
73
  if match == "%J"
68
- era_year = year == 1 ? "元" : to_kanzi(era_year)
74
+ return year == 1 ? "元" : to_kanzi(era_year)
69
75
  end
76
+
77
+ era_year = if digit == "%-E"
78
+ sprintf("%01d", year)
79
+ else
80
+ sprintf("%02d", year)
81
+ end
82
+
70
83
  era_year
71
84
  end
72
85
 
73
86
  def to_kanzi(numeric, kanzi = "")
74
87
  figures = (10 ** numeric.to_s.size) / 10
75
88
  numeric = numeric.to_i
76
- kanzi_string = [nil, "一", "二", "三", "四", "五", "六", "七", "八", "九"]
89
+ kanzi_string = ["", "一", "二", "三", "四", "五", "六", "七", "八", "九"]
77
90
  figures_string = { 1000 => "千", 100 => "百", 10 => "十", 1 => "" }
78
91
  return kanzi + kanzi_string[numeric] if figures == 1
79
92
 
@@ -0,0 +1,9 @@
1
+ module EraJa
2
+ class DateOutOfRangeError < StandardError
3
+ ERR_DATE_OUT_OF_RANGE = "#to_era only works on dates after 1868,9,8".freeze
4
+
5
+ def message
6
+ ERR_DATE_OUT_OF_RANGE
7
+ end
8
+ end
9
+ end
@@ -1,3 +1,3 @@
1
1
  module EraJa
2
- VERSION = "0.5.3"
2
+ VERSION = "1.2.2"
3
3
  end
@@ -5,6 +5,26 @@ require File.expand_path('spec_helper', File.dirname(__FILE__))
5
5
  RSpec.describe Date do
6
6
  describe "#to_era" do
7
7
 
8
+ context "date is 2020,1,1" do
9
+ subject { Date.new(2020,1,1) }
10
+ include_examples "2020,1,1"
11
+ end
12
+
13
+ context "date is 2019,7,2" do
14
+ subject { Date.new(2019,7,2) }
15
+ include_examples "2019,7,2"
16
+ end
17
+
18
+ context 'date is 2019,5,1' do
19
+ subject { Date.new(2019,5,1) }
20
+ include_examples "2019,5,1"
21
+ end
22
+
23
+ context 'date is 2019,4,30' do
24
+ subject { Date.new(2019,4,30) }
25
+ include_examples "2019,4,30"
26
+ end
27
+
8
28
  context "date is 2012,4,29" do
9
29
  subject { Date.new(2012,4,29) }
10
30
  include_examples "2012,4,29"
@@ -53,4 +73,20 @@ RSpec.describe Date do
53
73
 
54
74
  end
55
75
 
76
+ describe "#era_convertible?" do
77
+
78
+ context "when date is not convertible" do
79
+ it "returns false" do
80
+ expect(Date.new(1868,9,7).era_convertible?).to be false
81
+ end
82
+ end
83
+
84
+ context "when date is convertible" do
85
+ it "returns true" do
86
+ expect(Date.new(1868,9,8).era_convertible?).to be true
87
+ end
88
+ end
89
+
90
+ end
91
+
56
92
  end
@@ -1,5 +1,164 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  require 'rspec'
3
+ require File.expand_path('../lib/era_ja/error', File.dirname(__FILE__))
4
+
5
+ RSpec.shared_examples "should equal 'R01.07.02'" do
6
+ it { expect(subject.to_era).to eq "R01.07.02" }
7
+
8
+ context "with '%o%E.%m.%d'" do
9
+ it { expect(subject.to_era("%o%E.%m.%d")).to eq "R01.07.02" }
10
+ end
11
+
12
+ context "with '%o%-E.%-m.%-d'" do
13
+ it { expect(subject.to_era("%o%-E.%-m.%-d")).to eq "R1.7.2" }
14
+ end
15
+ end
16
+
17
+ RSpec.shared_examples "should equal '令和01年07月02日'" do
18
+ context "with '%O%E年%m月%d日'" do
19
+ it { expect(subject.to_era("%O%E年%m月%d日")).to eq "令和01年07月02日" }
20
+ end
21
+
22
+ context "with '%O%-E年%m月%d日'" do
23
+ it { expect(subject.to_era("%O%-E年%m月%d日")).to eq "令和1年07月02日" }
24
+ end
25
+
26
+ context "with '%O%J%-E年%m月%d日'" do
27
+ it { expect(subject.to_era("%O%J%-E年%m月%d日")).to eq "令和元年07月02日" }
28
+ end
29
+
30
+ context "with '%-E年%-m月%-d日'" do
31
+ it { expect(subject.to_era("%-E年%-m月%-d日")).to eq "1年7月2日" }
32
+ end
33
+ end
34
+
35
+ RSpec.shared_examples "should equal 'R01.05.01'" do
36
+ it { expect(subject.to_era).to eq "R01.05.01" }
37
+
38
+ context "with '%o%E.%m.%d'" do
39
+ it { expect(subject.to_era("%o%E.%m.%d")).to eq "R01.05.01" }
40
+ end
41
+ end
42
+
43
+ RSpec.shared_examples "should equal 'r01.05.01'" do
44
+ context "with era_names option" do
45
+ context "when era_names is correct" do
46
+ let(:era_names) { { reiwa: ["r", "令和"] } }
47
+ it { expect(subject.to_era(era_names: era_names)).to eq "r01.05.01" }
48
+ end
49
+
50
+ context "when era_names have no reiwa values" do
51
+ let(:era_names) { { heisei: ["h", "平成"] } }
52
+ it { expect { subject.to_era(era_names: era_names) }.to raise_error(KeyError) }
53
+ end
54
+ end
55
+
56
+ context "with '%o%E.%m.%d' and era_names option" do
57
+ let(:era_names) { { reiwa: ["r", "令和"] } }
58
+ it { expect(subject.to_era("%o%E.%m.%d", era_names: era_names)).to eq "r01.05.01" }
59
+ end
60
+ end
61
+
62
+ RSpec.shared_examples "should equal '令和01年05月01日'" do
63
+ context "with '%O%E年%m月%d日'" do
64
+ it { expect(subject.to_era("%O%E年%m月%d日")).to eq "令和01年05月01日" }
65
+ end
66
+ end
67
+
68
+ RSpec.shared_examples "should equal '令01年05月01日'" do
69
+ context "with '%1O%E年%m月%d日'" do
70
+ it { expect(subject.to_era("%1O%E年%m月%d日")).to eq "令01年05月01日" }
71
+ end
72
+ end
73
+
74
+ RSpec.shared_examples "should equal '01.05.01'" do
75
+ context "with '%E.%m.%d'" do
76
+ it { expect(subject.to_era("%E.%m.%d")).to eq "01.05.01" }
77
+ end
78
+ end
79
+
80
+ RSpec.shared_examples "should equal '0105'" do
81
+ context "with '%E%m'" do
82
+ it { expect(subject.to_era("%E%m")).to eq "0105" }
83
+ end
84
+ end
85
+
86
+ RSpec.shared_examples "should equal '令和010501'" do
87
+ context "with '%O%E%m%d'" do
88
+ it { expect(subject.to_era("%O%E%m%d")).to eq "令和010501" }
89
+ end
90
+ end
91
+
92
+ RSpec.shared_examples "should equal '令010501'" do
93
+ context "with '%O%E%m%d' and era_names option" do
94
+ let(:format) { "%O%E%m%d" }
95
+
96
+ context "when era_names is correct" do
97
+ let(:era_names) { { reiwa: ["R", "令"] } }
98
+ it { expect(subject.to_era(format, era_names: era_names)).to eq '令010501' }
99
+ end
100
+
101
+ context "when era_names have no heisei values" do
102
+ let(:era_names) { { heisei: ["H", "平"] } }
103
+ it { expect { subject.to_era(format, era_names: era_names) }.to raise_error(KeyError) }
104
+ end
105
+ end
106
+ end
107
+
108
+ RSpec.shared_examples "should equal '2019年05月01日'" do
109
+ context "with '%y年%m月%d日'" do
110
+ it { expect(subject.to_era('%Y年%m月%d日')).to eq '2019年05月01日' }
111
+ end
112
+ end
113
+
114
+ RSpec.shared_examples "should equal '令和元年五月一日'" do
115
+ context "with '%O%JE年%Jm月%Jd日'" do
116
+ it { expect(subject.to_era('%O%JE年%Jm月%Jd日')).to eq '令和元年五月一日' }
117
+ end
118
+ end
119
+
120
+ RSpec.shared_examples "should equal '二千十九年五月一日'" do
121
+ context "with '%JY年%Jm月%Jd日'" do
122
+ it { expect(subject.to_era('%JY年%Jm月%Jd日')).to eq '二千十九年五月一日' }
123
+ end
124
+ end
125
+
126
+
127
+ RSpec.shared_examples "should equal '令和'" do
128
+ context "with '%O'" do
129
+ it { expect(subject.to_era('%O')).to eq '令和' }
130
+ end
131
+ end
132
+
133
+ RSpec.shared_examples "should equal '令'" do
134
+ context "with '%1O'" do
135
+ it { expect(subject.to_era('%1O')).to eq '令' }
136
+ end
137
+ end
138
+
139
+ RSpec.shared_examples "should equal 'R'" do
140
+ context "with '%o'" do
141
+ it { expect(subject.to_era('%o')).to eq 'R' }
142
+ end
143
+ end
144
+
145
+ RSpec.shared_examples "should equal '令和二年一月一日'" do
146
+ context "with '%O%JE年%Jm月%Jd日'" do
147
+ it { expect(subject.to_era('%O%JE年%Jm月%Jd日')).to eq '令和二年一月一日' }
148
+ end
149
+ end
150
+
151
+ RSpec.shared_examples "should equal '平成三十一年四月三十日'" do
152
+ context "with '%O%JE年%Jm月%Jd日'" do
153
+ it { expect(subject.to_era("%O%JE年%Jm月%Jd日")).to eq "平成三十一年四月三十日" }
154
+ end
155
+ end
156
+
157
+ RSpec.shared_examples "should equal '二千十九年四月三十日'" do
158
+ context "with '%JY年%Jm月%Jd日'" do
159
+ it { expect(subject.to_era("%JY年%Jm月%Jd日")).to eq "二千十九年四月三十日" }
160
+ end
161
+ end
3
162
 
4
163
  RSpec.shared_examples "should equal 'H24.04.29'" do
5
164
  it { expect(subject.to_era).to eq "H24.04.29" }
@@ -169,7 +328,38 @@ RSpec.shared_examples "should equal 'M01.09.08'" do
169
328
  end
170
329
 
171
330
  RSpec.shared_examples "should raise error" do
172
- it { expect {subject.to_era}.to raise_error(RuntimeError, EraJa::Conversion::ERR_DATE_OUT_OF_RANGE) }
331
+ it { expect {subject.to_era}.to raise_error(EraJa::DateOutOfRangeError, EraJa::DateOutOfRangeError::ERR_DATE_OUT_OF_RANGE) }
332
+ end
333
+
334
+ RSpec.shared_examples "2020,1,1" do
335
+ include_examples "should equal '令和二年一月一日'"
336
+ end
337
+
338
+ RSpec.shared_examples "2019,7,2" do
339
+ include_examples "should equal 'R01.07.02'"
340
+ include_examples "should equal '令和01年07月02日'"
341
+ end
342
+
343
+ RSpec.shared_examples "2019,5,1" do
344
+ include_examples "should equal 'R01.05.01'"
345
+ include_examples "should equal 'r01.05.01'"
346
+ include_examples "should equal '令和01年05月01日'"
347
+ include_examples "should equal '令01年05月01日'"
348
+ include_examples "should equal '01.05.01'"
349
+ include_examples "should equal '0105'"
350
+ include_examples "should equal '令和010501'"
351
+ include_examples "should equal '令010501'"
352
+ include_examples "should equal '2019年05月01日'"
353
+ include_examples "should equal '令和元年五月一日'"
354
+ include_examples "should equal '二千十九年五月一日'"
355
+ include_examples "should equal '令和'"
356
+ include_examples "should equal '令'"
357
+ include_examples "should equal 'R'"
358
+ end
359
+
360
+ RSpec.shared_examples "2019,4,30" do
361
+ include_examples "should equal '平成三十一年四月三十日'"
362
+ include_examples "should equal '二千十九年四月三十日'"
173
363
  end
174
364
 
175
365
  RSpec.shared_examples "2012,4,29" do
@@ -5,6 +5,26 @@ require File.expand_path('spec_helper', File.dirname(__FILE__))
5
5
  RSpec.describe Time do
6
6
  describe "#to_era" do
7
7
 
8
+ context 'time is 2020,1,1' do
9
+ subject { Time.mktime(2020,1,1) }
10
+ include_examples "2020,1,1"
11
+ end
12
+
13
+ context 'time is 2019,7,2' do
14
+ subject { Time.mktime(2019,7,2) }
15
+ include_examples "2019,7,2"
16
+ end
17
+
18
+ context 'time is 2019,5,1' do
19
+ subject { Time.mktime(2019,5,1) }
20
+ include_examples "2019,5,1"
21
+ end
22
+
23
+ context 'time is 2019,4,30' do
24
+ subject { Time.mktime(2019,4,30) }
25
+ include_examples "2019,4,30"
26
+ end
27
+
8
28
  context "time is 2012,4,29" do
9
29
  subject { Time.mktime(2012,4,29) }
10
30
  include_examples "2012,4,29"
metadata CHANGED
@@ -1,29 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: era_ja
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.3
4
+ version: 1.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - tomi
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-02-07 00:00:00.000000000 Z
11
+ date: 2020-10-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 10.1.0
19
+ version: 12.3.3
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
- version: 10.1.0
26
+ version: 12.3.3
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rspec
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -115,6 +115,7 @@ files:
115
115
  - lib/era_ja.rb
116
116
  - lib/era_ja/conversion.rb
117
117
  - lib/era_ja/date.rb
118
+ - lib/era_ja/error.rb
118
119
  - lib/era_ja/time.rb
119
120
  - lib/era_ja/version.rb
120
121
  - spec/date_spec.rb
@@ -124,7 +125,7 @@ homepage: https://github.com/tomiacannondale/era_ja
124
125
  licenses:
125
126
  - MIT
126
127
  metadata: {}
127
- post_install_message:
128
+ post_install_message:
128
129
  rdoc_options: []
129
130
  require_paths:
130
131
  - lib
@@ -139,9 +140,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
139
140
  - !ruby/object:Gem::Version
140
141
  version: '0'
141
142
  requirements: []
142
- rubyforge_project:
143
- rubygems_version: 2.4.5.1
144
- signing_key:
143
+ rubygems_version: 3.1.4
144
+ signing_key:
145
145
  specification_version: 4
146
146
  summary: Convert Date or Time instance to String of Japanese era.
147
147
  test_files: