era_ja 0.0.1 → 0.1.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.
- data/Guardfile +1 -0
- data/README.ja.md +14 -0
- data/README.md +14 -0
- data/lib/era_ja.rb +31 -5
- data/lib/era_ja/version.rb +1 -1
- data/spec/date_spec.rb +16 -16
- data/spec/spec_helper.rb +98 -0
- data/spec/time_spec.rb +16 -16
- metadata +33 -13
data/Guardfile
CHANGED
data/README.ja.md
CHANGED
@@ -18,16 +18,30 @@
|
|
18
18
|
|
19
19
|
## Usage
|
20
20
|
|
21
|
+
### フォーマット文字列
|
22
|
+
|
23
|
+
引数としてstftimeのフォーマット文字列を使用出来ます。
|
24
|
+
|
25
|
+
EraJa#to_eraメソッドでの追加のフォーマット文字列は以下の通りです。
|
26
|
+
|
27
|
+
* %o: 元号(アルファベット)
|
28
|
+
* %O: 元号(漢字)
|
29
|
+
* %E: 元号の年
|
30
|
+
|
21
31
|
### Timeインスタンスを和暦に変換します。
|
22
32
|
|
23
33
|
```ruby
|
34
|
+
require 'era_ja/time'
|
24
35
|
Time.mktime(2012,4,29).to_era # => "H24.4.29"
|
36
|
+
Time.mktime(2012,4,29).to_era("%O%E年%m月%d日") # => "平成24年4月29日"
|
25
37
|
```
|
26
38
|
|
27
39
|
### Dateインタンスを和暦に変換します。
|
28
40
|
|
29
41
|
```ruby
|
42
|
+
require 'era_ja/date'
|
30
43
|
Date.new(2012,4,29).to_era # => "H24.4.29"
|
44
|
+
Date.new(2012,4,29).to_era("%O%E年%m月%d日") # => "平成24年4月29日"
|
31
45
|
```
|
32
46
|
|
33
47
|
## Support
|
data/README.md
CHANGED
@@ -18,16 +18,30 @@ Or install it yourself as:
|
|
18
18
|
|
19
19
|
## Usage
|
20
20
|
|
21
|
+
### format string
|
22
|
+
|
23
|
+
Strftime format string can be used as an argument.
|
24
|
+
|
25
|
+
EraJa#to_era of extra format string is follow.
|
26
|
+
|
27
|
+
* %o: era(alphabet)
|
28
|
+
* %O: era(kanzi)
|
29
|
+
* %E: era year
|
30
|
+
|
21
31
|
### Time instance to japanese era
|
22
32
|
|
23
33
|
```ruby
|
34
|
+
require 'era_ja/time'
|
24
35
|
Time.mktime(2012,4,29).to_era # => "H24.4.29"
|
36
|
+
Time.mktime(2012,4,29).to_era("%O%E年%m月%d日") # => "平成24年4月29日"
|
25
37
|
```
|
26
38
|
|
27
39
|
### Date instance to japanese era
|
28
40
|
|
29
41
|
```ruby
|
42
|
+
require 'era_ja/date'
|
30
43
|
Date.new(2012,4,29).to_era # => "H24.4.29"
|
44
|
+
Date.new(2012,4,29).to_era("%O%E年%m月%d日") # => "平成24年4月29日"
|
31
45
|
```
|
32
46
|
|
33
47
|
## Support
|
data/lib/era_ja.rb
CHANGED
@@ -3,17 +3,43 @@ require "era_ja/version"
|
|
3
3
|
require 'date'
|
4
4
|
|
5
5
|
module EraJa
|
6
|
-
|
6
|
+
ERA = [["M", "明治"], ["T", "大正"], ["S", "昭和"], ["H", "平成"]]
|
7
|
+
|
8
|
+
# Convert to Japanese era.
|
9
|
+
# @param [String] format_string
|
10
|
+
# Time#strftime format string can be used
|
11
|
+
# #### extra format string
|
12
|
+
# * %o - era(alphabet)
|
13
|
+
# * %O - era(kanzi)
|
14
|
+
# * %E - era year
|
15
|
+
# @return [String]
|
16
|
+
def to_era(format = "%o%E.%m.%d")
|
17
|
+
format.sub!(/%o/i) { |m| m + ' ' }
|
18
|
+
@era_format = format[/%o/i]
|
7
19
|
if self.to_time < ::Time.mktime(1868,9,8)
|
8
20
|
raise "#to_era is expeted later in 1968,9,8"
|
9
21
|
elsif self.to_time < ::Time.mktime(1912,7,30)
|
10
|
-
|
22
|
+
strftime(format).sub(/%E/, format_year(year - 1867)).sub(/%o /i) { format_era('M') }
|
11
23
|
elsif self.to_time < ::Time.mktime(1926,12,25)
|
12
|
-
|
24
|
+
strftime(format).sub(/%E/, format_year(year - 1911)).sub(/%o /i) { format_era('T') }
|
13
25
|
elsif self.to_time < ::Time.mktime(1989,1,8)
|
14
|
-
|
26
|
+
strftime(format).sub(/%E/, format_year(year - 1925)).sub(/%o /i) { format_era('S') }
|
15
27
|
else
|
16
|
-
|
28
|
+
strftime(format).sub(/%E/, format_year(year - 1988)).sub(/%o /i) { format_era('H') }
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
private
|
33
|
+
def format_era(string)
|
34
|
+
if @era_format == "%o"
|
35
|
+
return "#{ERA.detect{ |i| i[0] == string}[0]}"
|
36
|
+
elsif @era_format == "%O"
|
37
|
+
return "#{ERA.detect{ |i| i[0] == string}[1]}"
|
17
38
|
end
|
18
39
|
end
|
40
|
+
|
41
|
+
def format_year(year)
|
42
|
+
sprintf("%02d", year)
|
43
|
+
end
|
44
|
+
|
19
45
|
end
|
data/lib/era_ja/version.rb
CHANGED
data/spec/date_spec.rb
CHANGED
@@ -6,44 +6,44 @@ describe Date do
|
|
6
6
|
describe "#to_era" do
|
7
7
|
|
8
8
|
context "date is 2012,4,29" do
|
9
|
-
subject { Date.new(2012,4,29)
|
10
|
-
|
9
|
+
subject { Date.new(2012,4,29) }
|
10
|
+
include_examples "2012,4,29"
|
11
11
|
end
|
12
12
|
|
13
13
|
context "date is 1989,1,8" do
|
14
|
-
subject { Date.new(1989,1,8)
|
14
|
+
subject { Date.new(1989,1,8) }
|
15
15
|
|
16
|
-
|
16
|
+
include_examples "1989,1,8"
|
17
17
|
end
|
18
18
|
|
19
19
|
context "date is 1989,1,7" do
|
20
|
-
subject { Date.new(1989,1,7)
|
21
|
-
|
20
|
+
subject { Date.new(1989,1,7) }
|
21
|
+
include_examples "1989,1,7"
|
22
22
|
end
|
23
23
|
|
24
24
|
context "date is 1926,12,25" do
|
25
|
-
subject { Date.new(1926,12,25)
|
26
|
-
|
25
|
+
subject { Date.new(1926,12,25) }
|
26
|
+
include_examples "1926,12,25"
|
27
27
|
end
|
28
28
|
|
29
29
|
context "date is 1926,12,24" do
|
30
|
-
subject { Date.new(1926,12,24)
|
31
|
-
|
30
|
+
subject { Date.new(1926,12,24) }
|
31
|
+
include_examples "1926,12,24"
|
32
32
|
end
|
33
33
|
|
34
34
|
context "date is 1912,7,30" do
|
35
|
-
subject { Date.new(1912,7,30)
|
36
|
-
|
35
|
+
subject { Date.new(1912,7,30) }
|
36
|
+
include_examples "1912,7,30"
|
37
37
|
end
|
38
38
|
|
39
39
|
context "date is 1912,7,29" do
|
40
|
-
subject { Date.new(1912,7,29)
|
41
|
-
|
40
|
+
subject { Date.new(1912,7,29) }
|
41
|
+
include_examples "1912,7,29"
|
42
42
|
end
|
43
43
|
|
44
44
|
context "date is 1868,9,8" do
|
45
|
-
subject { Date.new(1868,9,8)
|
46
|
-
|
45
|
+
subject { Date.new(1868,9,8) }
|
46
|
+
include_examples "1868,9,8"
|
47
47
|
end
|
48
48
|
|
49
49
|
context "date is 1868,9,7" do
|
data/spec/spec_helper.rb
CHANGED
@@ -1,2 +1,100 @@
|
|
1
1
|
# -*- coding: utf-8 -*-
|
2
2
|
require 'rspec'
|
3
|
+
|
4
|
+
shared_examples "should equal 'H24.04.29'" do
|
5
|
+
it { subject.to_era.should eq "H24.04.29" }
|
6
|
+
|
7
|
+
context "with '%o%E.%m.%d'" do
|
8
|
+
it { subject.to_era("%o%E.%m.%d").should eq "H24.04.29" }
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
shared_examples "should equal '平成24年04月29日'" do
|
13
|
+
context "with '%O%E年%m月%d日'" do
|
14
|
+
it { subject.to_era("%O%E年%m月%d日").should eq "平成24年04月29日" }
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
shared_examples "should equal '24.04.29'" do
|
19
|
+
context "with '%E.%m.%d'" do
|
20
|
+
it { subject.to_era("%E.%m.%d").should eq "24.04.29" }
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
shared_examples "should equal 'H01.01.08'" do
|
25
|
+
it { subject.to_era.should eq "H01.01.08" }
|
26
|
+
end
|
27
|
+
|
28
|
+
shared_examples "should equal 'S64.01.07'" do
|
29
|
+
it { subject.to_era.should eq "S64.01.07" }
|
30
|
+
end
|
31
|
+
|
32
|
+
shared_examples "should equal '昭和64.01.07'" do
|
33
|
+
it { subject.to_era("%O%E.%m.%d").should eq "昭和64.01.07" }
|
34
|
+
end
|
35
|
+
|
36
|
+
shared_examples "should equal 'S01.12.25'" do
|
37
|
+
it { subject.to_era.should eq "S01.12.25" }
|
38
|
+
end
|
39
|
+
|
40
|
+
shared_examples "should equal 'T15.12.24'" do
|
41
|
+
it { subject.to_era.should eq "T15.12.24" }
|
42
|
+
end
|
43
|
+
|
44
|
+
shared_examples "should equal 'T01.07.30'" do
|
45
|
+
it { subject.to_era.should eq "T01.07.30" }
|
46
|
+
end
|
47
|
+
|
48
|
+
shared_examples "should equal '大正01.07.30'" do
|
49
|
+
it { subject.to_era("%O%E.%m.%d").should eq "大正01.07.30" }
|
50
|
+
end
|
51
|
+
|
52
|
+
shared_examples "should equal 'M45.07.29'" do
|
53
|
+
it { subject.to_era.should eq "M45.07.29" }
|
54
|
+
end
|
55
|
+
|
56
|
+
shared_examples "should equal '明治45.07.29'" do
|
57
|
+
it { subject.to_era("%O%E.%m.%d").should eq "明治45.07.29" }
|
58
|
+
end
|
59
|
+
|
60
|
+
shared_examples "should equal 'M01.09.08'" do
|
61
|
+
it { subject.to_era.should eq "M01.09.08" }
|
62
|
+
end
|
63
|
+
|
64
|
+
|
65
|
+
shared_examples "2012,4,29" do
|
66
|
+
include_examples "should equal 'H24.04.29'"
|
67
|
+
include_examples "should equal '平成24年04月29日'"
|
68
|
+
include_examples "should equal '24.04.29'"
|
69
|
+
end
|
70
|
+
|
71
|
+
shared_examples "1989,1,8" do
|
72
|
+
include_examples "should equal 'H01.01.08'"
|
73
|
+
end
|
74
|
+
|
75
|
+
shared_examples "1989,1,7" do
|
76
|
+
include_examples "should equal 'S64.01.07'"
|
77
|
+
include_examples "should equal '昭和64.01.07'"
|
78
|
+
end
|
79
|
+
|
80
|
+
shared_examples "1926,12,25" do
|
81
|
+
include_examples "should equal 'S01.12.25'"
|
82
|
+
end
|
83
|
+
|
84
|
+
shared_examples "1926,12,24" do
|
85
|
+
include_examples "should equal 'T15.12.24'"
|
86
|
+
end
|
87
|
+
|
88
|
+
shared_examples "1912,7,30" do
|
89
|
+
include_examples "should equal 'T01.07.30'"
|
90
|
+
include_examples "should equal '大正01.07.30'"
|
91
|
+
end
|
92
|
+
|
93
|
+
shared_examples "1912,7,29" do
|
94
|
+
include_examples "should equal 'M45.07.29'"
|
95
|
+
include_examples "should equal '明治45.07.29'"
|
96
|
+
end
|
97
|
+
|
98
|
+
shared_examples "1868,9,8" do
|
99
|
+
include_examples "should equal 'M01.09.08'"
|
100
|
+
end
|
data/spec/time_spec.rb
CHANGED
@@ -6,44 +6,44 @@ describe Time do
|
|
6
6
|
describe "#to_era" do
|
7
7
|
|
8
8
|
context "time is 2012,4,29" do
|
9
|
-
subject { Time.mktime(2012,4,29)
|
10
|
-
|
9
|
+
subject { Time.mktime(2012,4,29) }
|
10
|
+
include_examples "2012,4,29"
|
11
11
|
end
|
12
12
|
|
13
13
|
context "time is 1989,1,8" do
|
14
|
-
subject { Time.mktime(1989,1,8)
|
14
|
+
subject { Time.mktime(1989,1,8) }
|
15
15
|
|
16
|
-
|
16
|
+
include_examples "1989,1,8"
|
17
17
|
end
|
18
18
|
|
19
19
|
context "time is 1989,1,7" do
|
20
|
-
subject { Time.mktime(1989,1,7)
|
21
|
-
|
20
|
+
subject { Time.mktime(1989,1,7) }
|
21
|
+
include_examples "1989,1,7"
|
22
22
|
end
|
23
23
|
|
24
24
|
context "time is 1926,12,25" do
|
25
|
-
subject { Time.mktime(1926,12,25)
|
26
|
-
|
25
|
+
subject { Time.mktime(1926,12,25) }
|
26
|
+
include_examples "1926,12,25"
|
27
27
|
end
|
28
28
|
|
29
29
|
context "time is 1926,12,24" do
|
30
|
-
subject { Time.mktime(1926,12,24)
|
31
|
-
|
30
|
+
subject { Time.mktime(1926,12,24) }
|
31
|
+
include_examples "1926,12,24"
|
32
32
|
end
|
33
33
|
|
34
34
|
context "time is 1912,7,30" do
|
35
|
-
subject { Time.mktime(1912,7,30)
|
36
|
-
|
35
|
+
subject { Time.mktime(1912,7,30) }
|
36
|
+
include_examples "1912,7,30"
|
37
37
|
end
|
38
38
|
|
39
39
|
context "time is 1912,7,29" do
|
40
|
-
subject { Time.mktime(1912,7,29)
|
41
|
-
|
40
|
+
subject { Time.mktime(1912,7,29) }
|
41
|
+
include_examples "1912,7,29"
|
42
42
|
end
|
43
43
|
|
44
44
|
context "time is 1868,9,8" do
|
45
|
-
subject { Time.mktime(1868,9,8)
|
46
|
-
|
45
|
+
subject { Time.mktime(1868,9,8) }
|
46
|
+
include_examples "1868,9,8"
|
47
47
|
end
|
48
48
|
|
49
49
|
context "time is 1868,9,7" do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: era_ja
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-06-09 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rake
|
16
|
-
requirement:
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,15 @@ dependencies:
|
|
21
21
|
version: 0.9.2
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements:
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 0.9.2
|
25
30
|
- !ruby/object:Gem::Dependency
|
26
31
|
name: rspec
|
27
|
-
requirement:
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
28
33
|
none: false
|
29
34
|
requirements:
|
30
35
|
- - ! '>='
|
@@ -32,10 +37,15 @@ dependencies:
|
|
32
37
|
version: 2.9.0
|
33
38
|
type: :development
|
34
39
|
prerelease: false
|
35
|
-
version_requirements:
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: 2.9.0
|
36
46
|
- !ruby/object:Gem::Dependency
|
37
47
|
name: growl
|
38
|
-
requirement:
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
39
49
|
none: false
|
40
50
|
requirements:
|
41
51
|
- - ! '>='
|
@@ -43,10 +53,15 @@ dependencies:
|
|
43
53
|
version: 1.0.3
|
44
54
|
type: :development
|
45
55
|
prerelease: false
|
46
|
-
version_requirements:
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ! '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 1.0.3
|
47
62
|
- !ruby/object:Gem::Dependency
|
48
63
|
name: guard-rspec
|
49
|
-
requirement:
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
50
65
|
none: false
|
51
66
|
requirements:
|
52
67
|
- - ! '>='
|
@@ -54,7 +69,12 @@ dependencies:
|
|
54
69
|
version: 0.7.0
|
55
70
|
type: :development
|
56
71
|
prerelease: false
|
57
|
-
version_requirements:
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ! '>='
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: 0.7.0
|
58
78
|
description: Convert to Japanese era.
|
59
79
|
email:
|
60
80
|
- tomiacannondale@gmail.com
|
@@ -93,7 +113,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
93
113
|
version: '0'
|
94
114
|
segments:
|
95
115
|
- 0
|
96
|
-
hash: -
|
116
|
+
hash: -4408163875494566668
|
97
117
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
98
118
|
none: false
|
99
119
|
requirements:
|
@@ -102,10 +122,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
102
122
|
version: '0'
|
103
123
|
segments:
|
104
124
|
- 0
|
105
|
-
hash: -
|
125
|
+
hash: -4408163875494566668
|
106
126
|
requirements: []
|
107
127
|
rubyforge_project:
|
108
|
-
rubygems_version: 1.8.
|
128
|
+
rubygems_version: 1.8.24
|
109
129
|
signing_key:
|
110
130
|
specification_version: 3
|
111
131
|
summary: Convert Date or Time instance to String of Japanese era.
|