era_ja 0.4.1 → 0.5.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
2
  SHA1:
3
- metadata.gz: b0cd9f5424cd1252076c713acee568acc088b793
4
- data.tar.gz: 504477b56ccb23b8f4701905a65c109fb66220fb
3
+ metadata.gz: 3dc968407d2aa1d8d89f19820529c1ec39b646bf
4
+ data.tar.gz: 7c695884e466ccb5cd18fcdb60a5ac3b87bdda1f
5
5
  SHA512:
6
- metadata.gz: 0237e8246990ae7463dc13995e8532280bcfb74a27fc91e9ec6e29ce58409962b9abd2dafdb7781c9eedef06d84ed8d38231190f338bff770bc262c65d37e306
7
- data.tar.gz: e8c1ca1ab4fc487152966802bd8526ba4d7976ad91ff1b641b9df248c2e890016fb6184ad7fa622f5f904bbe5d639f60f048d441b9ab94b8f48049db974e0ad0
6
+ metadata.gz: 058f66ea666f5f3a158061d26fcb0a7f696ae1973cbc3b0adb2150bddb2e0f0b1ff03d34247375df55a6974cc99e61fbbb13c76d5657213cdeb44445a0d2e1c3
7
+ data.tar.gz: 21f3aa1bd3ab10df432c69d827d6624d8f1df1b548ae562c0304577ec3f04cf6d944f9e0084ec06780af0d7be6ae8ad79fd453b7811fd6e7471c9bdc2e152ca6
@@ -3,4 +3,5 @@ rvm:
3
3
  - 2.0.0
4
4
  - 2.1
5
5
  - 2.2
6
+ - 2.3.0
6
7
  script: bundle exec rspec spec
@@ -62,6 +62,13 @@ Date.new(2012,4,29).to_era("%Jy年%Jm月%Jd日") # => "二千十二年四月
62
62
 
63
63
  ### Era names ###
64
64
 
65
+ もし1桁の元号文字列でコンバートしたい場合、 `%1O` を使用することができます。
66
+
67
+ ```ruby
68
+ require 'era_ja'
69
+ Time.mktime(2012,4,29).to_era("%1O%E年%m月%d日") # => "平24年4月29日"
70
+ ```
71
+
65
72
  もしデフォルトの元号文字列以外の文字列でコンバートしたい場合、 `era_names` を使用することができます。
66
73
 
67
74
  ```ruby
data/README.md CHANGED
@@ -26,16 +26,17 @@ See [.travis.yml](https://github.com/tomiacannondale/era_ja/blob/master/.travis.
26
26
 
27
27
  ### format string
28
28
 
29
- Strftime format string can be used as an argument.
29
+ strftime format string can be used as an argument.
30
30
 
31
- EraJa#to_era of extra format string is follow.
31
+ Extra format strings provided by EraJa#to_era are:
32
32
 
33
- * %o: era(alphabet)
34
- * %O: era(kanzi)
35
- * %E: era year
36
- * %J: kanzi number
33
+ * %o: era(alphabet)
34
+ * %O: era(kanzi)
35
+ * %1O: era(single kanzi)
36
+ * %E: era year
37
+ * %J: kanzi numeral
37
38
 
38
- ### Time instance to japanese era
39
+ ### Time instance to Japanese era
39
40
 
40
41
  ```ruby
41
42
  require 'era_ja'
@@ -44,7 +45,7 @@ Time.mktime(2012,4,29).to_era("%O%E年%m月%d日") # => "平成24年4月29日"
44
45
  Time.mktime(2012,4,29).to_era("%O%JE年%Jm月%Jd日") # => "平成二十四年四月二十九日"
45
46
  ```
46
47
 
47
- ### Date instance to japanese era
48
+ ### Date instance to Japanese era
48
49
 
49
50
  ```ruby
50
51
  require 'era_ja'
@@ -53,7 +54,7 @@ Date.new(2012,4,29).to_era("%O%E年%m月%d日") # => "平成24年4月29日"
53
54
  Date.new(2012,4,29).to_era("%O%JE年%Jm月%Jd日") # => "平成二十四年四月二十九日"
54
55
  ```
55
56
 
56
- ### Change number to kansuuzi ###
57
+ ### Convert numerals to kanzi ###
57
58
 
58
59
  ```ruby
59
60
  Time.mktime(2012,4,29).to_era("%Jy年%Jm月%Jd日") # => "二千十二年四月二十九日"
@@ -62,7 +63,14 @@ Date.new(2012,4,29).to_era("%Jy年%Jm月%Jd日") # => "二千十二年四月
62
63
 
63
64
  ### Era names ###
64
65
 
65
- If you want to convert custom ara string, you can set `era_names` .
66
+ To convert to single kanji era strings, you can use `%1O`.
67
+
68
+ ```ruby
69
+ require 'era_ja'
70
+ Time.mktime(2012,4,29).to_era("%1O%E年%m月%d日") # => "平24年4月29日"
71
+ ```
72
+
73
+ To convert to custom era strings, you can set `era_names` .
66
74
 
67
75
  ```ruby
68
76
  require 'era_ja'
@@ -82,14 +90,14 @@ Report issues and feature requests to github Issues. https://github.com/tomiacan
82
90
  2. Create your feature branch (`git checkout -b my-new-feature`)
83
91
  3. Commit your changes (`git commit -am 'Added some feature'`)
84
92
  4. Push to the branch (`git push origin my-new-feature`)
85
- 5. Create new Pull Request
93
+ 5. Create a new Pull Request
86
94
 
87
95
  ## Note
88
96
 
89
- I think about the era and there is a problem in the following.
97
+ The following issues exist regarding era:
90
98
 
91
- * The date in the lunar calendar Although it is September 8, 1868 the start of the Meiji era.
92
- * Start date Taisho, Showa is the same day as the last day of the Meiji, Taisho, respectively.
99
+ * The Meiji era starts at September 8, 1866, but that date is in the old Japanese lunar calendar.
100
+ * The start dates of the Taisho and Showa eras are the same as the end dates of the Meiji and Taisho eras respectively.
93
101
  * [昭和ト改元](http://ja.wikisource.org/wiki/%e6%98%ad%e5%92%8c%e3%83%88%e6%94%b9%e5%85%83)
94
102
  * [大正十五年十二月ニ十五日以後ヲ改メテ昭和元年ト爲ス](http://ja.wikisource.org/wiki/%e5%a4%a7%e6%ad%a3%e5%8d%81%e4%ba%94%e5%b9%b4%e5%8d%81%e4%ba%8c%e6%9c%88%e3%83%8b%e5%8d%81%e4%ba%94%e6%97%a5%e4%bb%a5%e5%be%8c%e3%83%b2%e6%94%b9%e3%83%a1%e3%83%86%e6%98%ad%e5%92%8c%e5%85%83%e5%b9%b4%e3%83%88%e7%88%b2%e3%82%b9)
95
103
  * [明治45年(1912)7月|大正と改元:日本のあゆみ](http://www.archives.go.jp/ayumi/kobetsu/m45_1912_01.html)
@@ -100,4 +108,4 @@ tomi tomiacannondale@gmail.com
100
108
 
101
109
  ## License
102
110
 
103
- MIT License. For more imformation, please see LICENSE.
111
+ MIT License. For more information, please see LICENSE.
@@ -10,6 +10,8 @@ module EraJa
10
10
  heisei: ["H", "平成"]
11
11
  }
12
12
 
13
+ ERR_DATE_OUT_OF_RANGE = "#to_era only works on dates after 1868,9,8"
14
+
13
15
  # Convert to Japanese era.
14
16
  # @param [String] format_string
15
17
  # Time#strftime format string can be used
@@ -19,22 +21,23 @@ module EraJa
19
21
  # * %E - era year
20
22
  # * %J - kanzi number
21
23
  # @param [Hash] era_names
22
- # If you want to convert custom era string(ex `平`, `h`), you can set this argument.
24
+ # If you want to convert custom to era strings (eg `平`, `h`), you can set this argument.
23
25
  # key is `:meiji' or `:taisho' or `:showa` or `:heisei`.
24
- # value is ["alphabet era name"(ex `h`, `s`)(related to `%o`), "multibyte ara name"(ex `平`, `昭`)(related to `%O`)].
26
+ # value is ["alphabet era name"(ex `h`, `s`)(related to `%o`), "multibyte era name"(eg `平`, `昭`)(related to `%O`)].
25
27
  # this argument is same as one element of ERA_NAME_DEFAULTS.
26
28
  # @return [String]
27
29
  def to_era(format = "%o%E.%m.%d", era_names: ERA_NAME_DEFAULTS)
28
30
  @era_format = format.gsub(/%J/, "%J%")
29
31
  str_time = strftime(@era_format)
30
32
  if @era_format =~ /%E/
31
- if self.to_time < ::Time.mktime(1868,9,8)
32
- raise "#to_era is expeted later in 1868,9,8"
33
- elsif self.to_time < ::Time.mktime(1912,7,30)
33
+ case
34
+ when self.to_time < ::Time.mktime(1868,9,8)
35
+ raise ERR_DATE_OUT_OF_RANGE
36
+ when self.to_time < ::Time.mktime(1912,7,30)
34
37
  str_time = era_year(year - 1867, :meiji, era_names)
35
- elsif self.to_time < ::Time.mktime(1926,12,25)
38
+ when self.to_time < ::Time.mktime(1926,12,25)
36
39
  str_time = era_year(year - 1911, :taisho, era_names)
37
- elsif self.to_time < ::Time.mktime(1989,1,8)
40
+ when self.to_time < ::Time.mktime(1989,1,8)
38
41
  str_time = era_year(year - 1925, :showa, era_names)
39
42
  else
40
43
  str_time = era_year(year - 1988, :heisei, era_names)
@@ -45,14 +48,17 @@ module EraJa
45
48
 
46
49
  private
47
50
  def era_year(year, era, era_names)
48
- strftime(@era_format).sub(/(%J)?%E/) { format_year(year, $1) }.sub(/%o/i) { format_era(era, era_names) }
51
+ strftime(@era_format).sub(/(%J)?%E/) { format_year(year, $1) }.sub(/%1?o/i) { format_era(era, era_names) }
49
52
  end
50
53
 
51
54
  def format_era(era, era_names)
52
- if @era_format =~ /%o/
53
- return era_names.fetch(era)[0]
54
- elsif @era_format =~ /%O/
55
- return era_names.fetch(era)[1]
55
+ case
56
+ when @era_format =~ /%o/
57
+ era_names.fetch(era)[0]
58
+ when @era_format =~ /%1O/
59
+ era_names.fetch(era)[1][0]
60
+ when @era_format =~ /%O/
61
+ era_names.fetch(era)[1]
56
62
  end
57
63
  end
58
64
 
@@ -1,3 +1,3 @@
1
1
  module EraJa
2
- VERSION = "0.4.1"
2
+ VERSION = "0.5.0"
3
3
  end
@@ -18,7 +18,7 @@ RSpec.shared_examples "should equal 'h24.04.29'" do
18
18
 
19
19
  context "when era_names have no heisei values" do
20
20
  let(:era_names) { { showa: ["s", "昭和"] } }
21
- it { expect { subject.to_era(era_names: era_names) }.to raise_error }
21
+ it { expect { subject.to_era(era_names: era_names) }.to raise_error(KeyError) }
22
22
  end
23
23
  end
24
24
 
@@ -34,6 +34,12 @@ RSpec.shared_examples "should equal '平成24年04月29日'" do
34
34
  end
35
35
  end
36
36
 
37
+ RSpec.shared_examples "should equal '平24年04月29日'" do
38
+ context "with '%1O%E年%m月%d日'" do
39
+ it { expect(subject.to_era("%1O%E年%m月%d日")).to eq "平24年04月29日" }
40
+ end
41
+ end
42
+
37
43
  RSpec.shared_examples "should equal '24.04.29'" do
38
44
  context "with '%E.%m.%d'" do
39
45
  it { expect(subject.to_era("%E.%m.%d")).to eq "24.04.29" }
@@ -63,7 +69,7 @@ RSpec.shared_examples "should equal '平240429'" do
63
69
 
64
70
  context "when era_names have no heisei values" do
65
71
  let(:era_names) { { showa: ["S", "昭"] } }
66
- it { expect { subject.to_era(format, era_names: era_names) }.to raise_error }
72
+ it { expect { subject.to_era(format, era_names: era_names) }.to raise_error(KeyError) }
67
73
  end
68
74
  end
69
75
  end
@@ -104,6 +110,10 @@ RSpec.shared_examples "should equal '昭和64.01.07'" do
104
110
  it { expect(subject.to_era("%O%E.%m.%d")).to eq "昭和64.01.07" }
105
111
  end
106
112
 
113
+ RSpec.shared_examples "should equal '昭64.01.07'" do
114
+ it { expect(subject.to_era("%1O%E.%m.%d")).to eq "昭64.01.07" }
115
+ end
116
+
107
117
  RSpec.shared_examples "should equal 'S01.12.25'" do
108
118
  it { expect(subject.to_era).to eq "S01.12.25" }
109
119
  end
@@ -120,6 +130,10 @@ RSpec.shared_examples "should equal '大正01.07.30'" do
120
130
  it { expect(subject.to_era("%O%E.%m.%d")).to eq "大正01.07.30" }
121
131
  end
122
132
 
133
+ RSpec.shared_examples "should equal '大01.07.30'" do
134
+ it { expect(subject.to_era("%1O%E.%m.%d")).to eq "大01.07.30" }
135
+ end
136
+
123
137
  RSpec.shared_examples "should equal 'M45.07.29'" do
124
138
  it { expect(subject.to_era).to eq "M45.07.29" }
125
139
  end
@@ -128,18 +142,23 @@ RSpec.shared_examples "should equal '明治45.07.29'" do
128
142
  it { expect(subject.to_era("%O%E.%m.%d")).to eq "明治45.07.29" }
129
143
  end
130
144
 
145
+ RSpec.shared_examples "should equal '明45.07.29'" do
146
+ it { expect(subject.to_era("%1O%E.%m.%d")).to eq "明45.07.29" }
147
+ end
148
+
131
149
  RSpec.shared_examples "should equal 'M01.09.08'" do
132
150
  it { expect(subject.to_era).to eq "M01.09.08" }
133
151
  end
134
152
 
135
153
  RSpec.shared_examples "should raise error" do
136
- it { expect {subject.to_era}.to raise_error(RuntimeError, "#to_era is expeted later in 1868,9,8") }
154
+ it { expect {subject.to_era}.to raise_error(RuntimeError, EraJa::Conversion::ERR_DATE_OUT_OF_RANGE) }
137
155
  end
138
156
 
139
157
  RSpec.shared_examples "2012,4,29" do
140
158
  include_examples "should equal 'H24.04.29'"
141
159
  include_examples "should equal 'h24.04.29'"
142
160
  include_examples "should equal '平成24年04月29日'"
161
+ include_examples "should equal '平24年04月29日'"
143
162
  include_examples "should equal '24.04.29'"
144
163
  include_examples "should equal '2404'"
145
164
  include_examples "should equal '平成240429'"
@@ -156,6 +175,7 @@ end
156
175
  RSpec.shared_examples "1989,1,7" do
157
176
  include_examples "should equal 'S64.01.07'"
158
177
  include_examples "should equal '昭和64.01.07'"
178
+ include_examples "should equal '昭64.01.07'"
159
179
  end
160
180
 
161
181
  RSpec.shared_examples "1926,12,25" do
@@ -169,11 +189,13 @@ end
169
189
  RSpec.shared_examples "1912,7,30" do
170
190
  include_examples "should equal 'T01.07.30'"
171
191
  include_examples "should equal '大正01.07.30'"
192
+ include_examples "should equal '大01.07.30'"
172
193
  end
173
194
 
174
195
  RSpec.shared_examples "1912,7,29" do
175
196
  include_examples "should equal 'M45.07.29'"
176
197
  include_examples "should equal '明治45.07.29'"
198
+ include_examples "should equal '明45.07.29'"
177
199
  end
178
200
 
179
201
  RSpec.shared_examples "1868,9,8" do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: era_ja
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.1
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - tomi
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-11-29 00:00:00.000000000 Z
11
+ date: 2016-02-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake