era_ja 0.3.1 → 0.4.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 +4 -4
- data/README.ja.md +25 -11
- data/README.md +25 -11
- data/lib/era_ja/conversion.rb +21 -11
- data/lib/era_ja/version.rb +1 -1
- data/spec/spec_helper.rb +37 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e63d396e7ea8b3fe5708d1612595222f744a3077
|
4
|
+
data.tar.gz: 5f157527bcb37159862adbed9adde21956243d9c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8c7f9a91eafad1b8a20d245fcbe3e35879b0d429b32c218a496275953d1e56f433f84be7eaf80d64c1ecccf34307069469c9a0b896744b6a9f163fcf866dc8d2
|
7
|
+
data.tar.gz: e2d0b8aecc5e2f7c46d23ebc37f306e387fb9833ccfbccc6ece0984bb8dc34a2c7f0e57266e4d5c13f8fa6466d8af2425564e401fd45e6b16c3353fd91dd78ee
|
data/README.ja.md
CHANGED
@@ -18,7 +18,9 @@
|
|
18
18
|
|
19
19
|
### ruby version ###
|
20
20
|
|
21
|
-
era_jaは
|
21
|
+
era_jaはruby2.0.0とruby2.1.x, 2.2.xでテストをしています。(xは現時点での最後のバージョンです)
|
22
|
+
|
23
|
+
**NOTE** :: era_ja0.4.0からruby1.9.3をサポートしていません。
|
22
24
|
|
23
25
|
## Usage
|
24
26
|
|
@@ -35,27 +37,39 @@ EraJa#to_eraメソッドでの追加のフォーマット文字列は以下の
|
|
35
37
|
### Timeインスタンスを和暦に変換します。
|
36
38
|
|
37
39
|
```ruby
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
40
|
+
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日"
|
43
|
+
Time.mktime(2012,4,29).to_era("%O%JE年%Jm月%Jd日") # => "平成二十四年四月二十九日"
|
42
44
|
```
|
43
45
|
|
44
46
|
### Dateインタンスを和暦に変換します。
|
45
47
|
|
46
48
|
```ruby
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
49
|
+
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日"
|
52
|
+
Date.new(2012,4,29).to_era("%O%JE年%Jm月%Jd日") # => "平成二十四年四月二十九日"
|
51
53
|
```
|
52
54
|
|
53
55
|
### 数字を漢数字に変換します。 ###
|
54
56
|
|
55
57
|
|
56
58
|
```ruby
|
57
|
-
|
58
|
-
|
59
|
+
Time.mktime(2012,4,29).to_era("%Jy年%Jm月%Jd日") # => "二千十二年四月二十九日"
|
60
|
+
Date.new(2012,4,29).to_era("%Jy年%Jm月%Jd日") # => "二千十二年四月二十九日"
|
61
|
+
```
|
62
|
+
|
63
|
+
### Era names ###
|
64
|
+
|
65
|
+
もしデフォルトの元号文字列以外の文字列でコンバートしたい場合、 `era_names` を使用することができます。
|
66
|
+
|
67
|
+
```ruby
|
68
|
+
require 'era_ja'
|
69
|
+
Time.mktime(2012,4,29).to_era(era_names: { heisei: ['h', '平'] }) # => "h24.4.29"
|
70
|
+
Time.mktime(2012,4,29).to_era("%O%E年%m月%d日", era_names: { heisei: ['h', '平'] }) # => "平24年4月29日"
|
71
|
+
Time.mktime(2012,4,29).to_era("%O%JE年%Jm月%Jd日", era_names: { heisei: ['h', '平'] }) # => "平二十四年四月二十九日"
|
72
|
+
# same as Date
|
59
73
|
```
|
60
74
|
|
61
75
|
## Support
|
data/README.md
CHANGED
@@ -18,7 +18,9 @@ Or install it yourself as:
|
|
18
18
|
|
19
19
|
### ruby version ###
|
20
20
|
|
21
|
-
era_ja was run test on ruby
|
21
|
+
era_ja was run test on ruby 2.0.0 and ruby 2.1.x and ruby 2.2.x .(x is latest version)
|
22
|
+
|
23
|
+
**NOTE** :: era_ja does not support ruby 1.9.3 since 0.4.0
|
22
24
|
|
23
25
|
## Usage
|
24
26
|
|
@@ -36,26 +38,38 @@ EraJa#to_era of extra format string is follow.
|
|
36
38
|
### Time instance to japanese era
|
37
39
|
|
38
40
|
```ruby
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
41
|
+
require 'era_ja'
|
42
|
+
Time.mktime(2012,4,29).to_era # => "H24.4.29"
|
43
|
+
Time.mktime(2012,4,29).to_era("%O%E年%m月%d日") # => "平成24年4月29日"
|
44
|
+
Time.mktime(2012,4,29).to_era("%O%JE年%Jm月%Jd日") # => "平成二十四年四月二十九日"
|
43
45
|
```
|
44
46
|
|
45
47
|
### Date instance to japanese era
|
46
48
|
|
47
49
|
```ruby
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
50
|
+
require 'era_ja'
|
51
|
+
Date.new(2012,4,29).to_era # => "H24.4.29"
|
52
|
+
Date.new(2012,4,29).to_era("%O%E年%m月%d日") # => "平成24年4月29日"
|
53
|
+
Date.new(2012,4,29).to_era("%O%JE年%Jm月%Jd日") # => "平成二十四年四月二十九日"
|
52
54
|
```
|
53
55
|
|
54
56
|
### Change number to kansuuzi ###
|
55
57
|
|
56
58
|
```ruby
|
57
|
-
|
58
|
-
|
59
|
+
Time.mktime(2012,4,29).to_era("%Jy年%Jm月%Jd日") # => "二千十二年四月二十九日"
|
60
|
+
Date.new(2012,4,29).to_era("%Jy年%Jm月%Jd日") # => "二千十二年四月二十九日"
|
61
|
+
```
|
62
|
+
|
63
|
+
### Era names ###
|
64
|
+
|
65
|
+
If you want to convert custom ara string, you can set `era_names` .
|
66
|
+
|
67
|
+
```ruby
|
68
|
+
require 'era_ja'
|
69
|
+
Time.mktime(2012,4,29).to_era(era_names: { heisei: ['h', '平'] }) # => "h24.4.29"
|
70
|
+
Time.mktime(2012,4,29).to_era("%O%E年%m月%d日", era_names: { heisei: ['h', '平'] }) # => "平24年4月29日"
|
71
|
+
Time.mktime(2012,4,29).to_era("%O%JE年%Jm月%Jd日", era_names: { heisei: ['h', '平'] }) # => "平二十四年四月二十九日"
|
72
|
+
# same as Date
|
59
73
|
```
|
60
74
|
|
61
75
|
## Support
|
data/lib/era_ja/conversion.rb
CHANGED
@@ -3,7 +3,12 @@ require 'date'
|
|
3
3
|
|
4
4
|
module EraJa
|
5
5
|
module Conversion
|
6
|
-
|
6
|
+
ERA_NAME_DEFAULTS = {
|
7
|
+
meiji: ["M", "明治"],
|
8
|
+
taisho: ["T", "大正"],
|
9
|
+
showa: ["S", "昭和"],
|
10
|
+
heisei: ["H", "平成"]
|
11
|
+
}
|
7
12
|
|
8
13
|
# Convert to Japanese era.
|
9
14
|
# @param [String] format_string
|
@@ -13,8 +18,13 @@ module EraJa
|
|
13
18
|
# * %O - era(kanzi)
|
14
19
|
# * %E - era year
|
15
20
|
# * %J - kanzi number
|
21
|
+
# @param [Hash] era_names
|
22
|
+
# If you want to convert custom era string(ex `平`, `h`), you can set this argument.
|
23
|
+
# 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`)].
|
25
|
+
# this argument is same as one element of ERA_NAME_DEFAULTS.
|
16
26
|
# @return [String]
|
17
|
-
def to_era(format = "%o%E.%m.%d")
|
27
|
+
def to_era(format = "%o%E.%m.%d", era_names: ERA_NAME_DEFAULTS)
|
18
28
|
@era_format = format.dup
|
19
29
|
@era_format.gsub!(/%J/, "%J%")
|
20
30
|
@era_format.sub!(/%o/i) { |m| m + ' ' }
|
@@ -24,28 +34,28 @@ module EraJa
|
|
24
34
|
if self.to_time < ::Time.mktime(1868,9,8)
|
25
35
|
raise "#to_era is expeted later in 1868,9,8"
|
26
36
|
elsif self.to_time < ::Time.mktime(1912,7,30)
|
27
|
-
str_time = era_year(year - 1867,
|
37
|
+
str_time = era_year(year - 1867, :meiji, era_names)
|
28
38
|
elsif self.to_time < ::Time.mktime(1926,12,25)
|
29
|
-
str_time = era_year(year - 1911,
|
39
|
+
str_time = era_year(year - 1911, :taisho, era_names)
|
30
40
|
elsif self.to_time < ::Time.mktime(1989,1,8)
|
31
|
-
str_time = era_year(year - 1925,
|
41
|
+
str_time = era_year(year - 1925, :showa, era_names)
|
32
42
|
else
|
33
|
-
str_time = era_year(year - 1988,
|
43
|
+
str_time = era_year(year - 1988, :heisei, era_names)
|
34
44
|
end
|
35
45
|
end
|
36
46
|
str_time.gsub(/%J(\d+)/) { to_kanzi($1) }
|
37
47
|
end
|
38
48
|
|
39
49
|
private
|
40
|
-
def era_year(year, era)
|
41
|
-
strftime(@era_format).sub(/(%J)?%E /) { format_year(year, $1) }.sub(/%o /i) { format_era(era) }
|
50
|
+
def era_year(year, era, era_names)
|
51
|
+
strftime(@era_format).sub(/(%J)?%E /) { format_year(year, $1) }.sub(/%o /i) { format_era(era, era_names) }
|
42
52
|
end
|
43
53
|
|
44
|
-
def format_era(
|
54
|
+
def format_era(era, era_names)
|
45
55
|
if @era_format =~ /%o/
|
46
|
-
return
|
56
|
+
return era_names.fetch(era)[0]
|
47
57
|
elsif @era_format =~ /%O/
|
48
|
-
return
|
58
|
+
return era_names.fetch(era)[1]
|
49
59
|
end
|
50
60
|
end
|
51
61
|
|
data/lib/era_ja/version.rb
CHANGED
data/spec/spec_helper.rb
CHANGED
@@ -9,6 +9,25 @@ RSpec.shared_examples "should equal 'H24.04.29'" do
|
|
9
9
|
end
|
10
10
|
end
|
11
11
|
|
12
|
+
RSpec.shared_examples "should equal 'h24.04.29'" do
|
13
|
+
context "with era_names option" do
|
14
|
+
context "when era_names is correct" do
|
15
|
+
let(:era_names) { { heisei: ["h", "平成"] } }
|
16
|
+
it { expect(subject.to_era(era_names: era_names)).to eq "h24.04.29" }
|
17
|
+
end
|
18
|
+
|
19
|
+
context "when era_names have no heisei values" do
|
20
|
+
let(:era_names) { { showa: ["s", "昭和"] } }
|
21
|
+
it { expect { subject.to_era(era_names: era_names) }.to raise_error }
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
context "with '%o%E.%m.%d' and era_names option" do
|
26
|
+
let(:era_names) { { heisei: ["h", "平成"] } }
|
27
|
+
it { expect(subject.to_era("%o%E.%m.%d", era_names: era_names)).to eq "h24.04.29" }
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
12
31
|
RSpec.shared_examples "should equal '平成24年04月29日'" do
|
13
32
|
context "with '%O%E年%m月%d日'" do
|
14
33
|
it { expect(subject.to_era("%O%E年%m月%d日")).to eq "平成24年04月29日" }
|
@@ -33,6 +52,22 @@ RSpec.shared_examples "should equal '平成240429'" do
|
|
33
52
|
end
|
34
53
|
end
|
35
54
|
|
55
|
+
RSpec.shared_examples "should equal '平240429'" do
|
56
|
+
context "with '%O%E%m%d' and era_names option" do
|
57
|
+
let(:format) { "%O%E%m%d" }
|
58
|
+
|
59
|
+
context "when era_names is correct" do
|
60
|
+
let(:era_names) { { heisei: ["H", "平"] } }
|
61
|
+
it { expect(subject.to_era(format, era_names: era_names)).to eq '平240429' }
|
62
|
+
end
|
63
|
+
|
64
|
+
context "when era_names have no heisei values" do
|
65
|
+
let(:era_names) { { showa: ["S", "昭"] } }
|
66
|
+
it { expect { subject.to_era(format, era_names: era_names) }.to raise_error }
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
36
71
|
RSpec.shared_examples "should equal '平成二十四年四月二十九日'" do
|
37
72
|
context "with '%O%JE年%Jm月%Jd日'" do
|
38
73
|
it { expect(subject.to_era('%O%JE年%Jm月%Jd日')).to eq '平成二十四年四月二十九日' }
|
@@ -103,10 +138,12 @@ end
|
|
103
138
|
|
104
139
|
RSpec.shared_examples "2012,4,29" do
|
105
140
|
include_examples "should equal 'H24.04.29'"
|
141
|
+
include_examples "should equal 'h24.04.29'"
|
106
142
|
include_examples "should equal '平成24年04月29日'"
|
107
143
|
include_examples "should equal '24.04.29'"
|
108
144
|
include_examples "should equal '2404'"
|
109
145
|
include_examples "should equal '平成240429'"
|
146
|
+
include_examples "should equal '平240429'"
|
110
147
|
include_examples "should equal '2012年04月29日'"
|
111
148
|
include_examples "should equal '平成二十四年四月二十九日'"
|
112
149
|
include_examples "should equal '二千十二年四月二十九日'"
|
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
|
+
version: 0.4.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
|
+
date: 2015-11-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|