era_ja 0.1.1 → 0.2.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 -1
- data/README.ja.md +10 -0
- data/README.md +10 -0
- data/era_ja.gemspec +5 -4
- data/lib/era_ja.rb +48 -17
- data/lib/era_ja/version.rb +1 -1
- data/spec/spec_helper.rb +28 -1
- metadata +38 -22
data/Guardfile
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
# A sample Guardfile
|
3
3
|
# More info at https://github.com/guard/guard#readme
|
4
4
|
|
5
|
-
guard 'rspec', :
|
5
|
+
guard 'rspec', :cli => '--color', :all_after_pass => false do
|
6
6
|
watch(%r{^spec/.+_spec\.rb$})
|
7
7
|
watch(%r{^lib/era_ja/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
|
8
8
|
watch('lib/era_ja.rb') { "spec" }
|
data/README.ja.md
CHANGED
@@ -34,6 +34,7 @@ EraJa#to_eraメソッドでの追加のフォーマット文字列は以下の
|
|
34
34
|
require 'era_ja/time'
|
35
35
|
Time.mktime(2012,4,29).to_era # => "H24.4.29"
|
36
36
|
Time.mktime(2012,4,29).to_era("%O%E年%m月%d日") # => "平成24年4月29日"
|
37
|
+
Time.mktime(2012,4,29).to_era("%JE年%Jm月%Jd日") # => "平成二十四年四月二十九日"
|
37
38
|
```
|
38
39
|
|
39
40
|
### Dateインタンスを和暦に変換します。
|
@@ -42,6 +43,15 @@ EraJa#to_eraメソッドでの追加のフォーマット文字列は以下の
|
|
42
43
|
require 'era_ja/date'
|
43
44
|
Date.new(2012,4,29).to_era # => "H24.4.29"
|
44
45
|
Date.new(2012,4,29).to_era("%O%E年%m月%d日") # => "平成24年4月29日"
|
46
|
+
Date.new(2012,4,29).to_era("%JE年%Jm月%Jd日") # => "平成二十四年四月二十九日"
|
47
|
+
```
|
48
|
+
|
49
|
+
### 数字を漢数字に変換します。 ###
|
50
|
+
|
51
|
+
|
52
|
+
```ruby
|
53
|
+
Time.mktime(2012,4,29).to_era("%Jy年%Jm月%Jd日") # => "二千十二年四月二十九日"
|
54
|
+
Date.new(2012,4,29).to_era("%Jy年%Jm月%Jd日") # => "二千十二年四月二十九日"
|
45
55
|
```
|
46
56
|
|
47
57
|
## Support
|
data/README.md
CHANGED
@@ -27,6 +27,7 @@ EraJa#to_era of extra format string is follow.
|
|
27
27
|
* %o: era(alphabet)
|
28
28
|
* %O: era(kanzi)
|
29
29
|
* %E: era year
|
30
|
+
* %J: kanzi number
|
30
31
|
|
31
32
|
### Time instance to japanese era
|
32
33
|
|
@@ -34,6 +35,7 @@ EraJa#to_era of extra format string is follow.
|
|
34
35
|
require 'era_ja/time'
|
35
36
|
Time.mktime(2012,4,29).to_era # => "H24.4.29"
|
36
37
|
Time.mktime(2012,4,29).to_era("%O%E年%m月%d日") # => "平成24年4月29日"
|
38
|
+
Time.mktime(2012,4,29).to_era("%JE年%Jm月%Jd日") # => "平成二十四年四月二十九日"
|
37
39
|
```
|
38
40
|
|
39
41
|
### Date instance to japanese era
|
@@ -42,6 +44,14 @@ EraJa#to_era of extra format string is follow.
|
|
42
44
|
require 'era_ja/date'
|
43
45
|
Date.new(2012,4,29).to_era # => "H24.4.29"
|
44
46
|
Date.new(2012,4,29).to_era("%O%E年%m月%d日") # => "平成24年4月29日"
|
47
|
+
Date.new(2012,4,29).to_era("%JE年%Jm月%Jd日") # => "平成二十四年四月二十九日"
|
48
|
+
```
|
49
|
+
|
50
|
+
### Change number to kansuuzi ###
|
51
|
+
|
52
|
+
```ruby
|
53
|
+
Time.mktime(2012,4,29).to_era("%Jy年%Jm月%Jd日") # => "二千十二年四月二十九日"
|
54
|
+
Date.new(2012,4,29).to_era("%Jy年%Jm月%Jd日") # => "二千十二年四月二十九日"
|
45
55
|
```
|
46
56
|
|
47
57
|
## Support
|
data/era_ja.gemspec
CHANGED
@@ -15,8 +15,9 @@ Gem::Specification.new do |gem|
|
|
15
15
|
gem.require_paths = ["lib"]
|
16
16
|
gem.version = EraJa::VERSION
|
17
17
|
|
18
|
-
gem.add_development_dependency "rake", '
|
19
|
-
gem.add_development_dependency 'rspec', '
|
20
|
-
gem.add_development_dependency
|
21
|
-
gem.add_development_dependency
|
18
|
+
gem.add_development_dependency "rake", '~> 10.0.3'
|
19
|
+
gem.add_development_dependency 'rspec', '~> 2.12.0'
|
20
|
+
gem.add_development_dependency "guard-rspec", '~> 2.4.0'
|
21
|
+
gem.add_development_dependency 'rb-fsevent', '~> 0.9.3'
|
22
|
+
gem.add_development_dependency 'terminal-notifier-guard', '~> 1.5.3'
|
22
23
|
end
|
data/lib/era_ja.rb
CHANGED
@@ -12,35 +12,66 @@ module EraJa
|
|
12
12
|
# * %o - era(alphabet)
|
13
13
|
# * %O - era(kanzi)
|
14
14
|
# * %E - era year
|
15
|
+
# * %J - kanzi number
|
15
16
|
# @return [String]
|
16
17
|
def to_era(format = "%o%E.%m.%d")
|
17
|
-
|
18
|
-
|
19
|
-
@era_format
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
18
|
+
@era_format = format
|
19
|
+
@era_format.gsub!(/%J/, "%J%")
|
20
|
+
@era_format.sub!(/%o/i) { |m| m + ' ' }
|
21
|
+
@era_format.sub!(/%E/) { |m| m + ' ' }
|
22
|
+
str_time = strftime(@era_format)
|
23
|
+
if @era_format =~ /%E/
|
24
|
+
if self.to_time < ::Time.mktime(1868,9,8)
|
25
|
+
raise "#to_era is expeted later in 1968,9,8"
|
26
|
+
elsif self.to_time < ::Time.mktime(1912,7,30)
|
27
|
+
str_time = era_year(year - 1867, 'M')
|
28
|
+
elsif self.to_time < ::Time.mktime(1926,12,25)
|
29
|
+
str_time = era_year(year - 1911, 'T')
|
30
|
+
elsif self.to_time < ::Time.mktime(1989,1,8)
|
31
|
+
str_time = era_year(year - 1925, 'S')
|
32
|
+
else
|
33
|
+
str_time = era_year(year - 1988, 'H')
|
34
|
+
end
|
30
35
|
end
|
36
|
+
str_time.gsub(/%J(\d+)/) { to_kanzi($1) }
|
31
37
|
end
|
32
38
|
|
33
39
|
private
|
40
|
+
def era_year(year, era)
|
41
|
+
strftime(@era_format).sub(/(%J)?%E /) { format_year(year, $1) }.sub(/%o /i) { format_era(era) }
|
42
|
+
end
|
43
|
+
|
34
44
|
def format_era(string)
|
35
|
-
if @era_format
|
45
|
+
if @era_format =~ /%o/
|
36
46
|
return "#{ERA.detect{ |i| i[0] == string}[0]}"
|
37
|
-
elsif @era_format
|
47
|
+
elsif @era_format =~ /%O/
|
38
48
|
return "#{ERA.detect{ |i| i[0] == string}[1]}"
|
39
49
|
end
|
40
50
|
end
|
41
51
|
|
42
|
-
def format_year(year)
|
43
|
-
sprintf("%02d", year)
|
52
|
+
def format_year(year, match)
|
53
|
+
era_year = sprintf("%02d", year)
|
54
|
+
if match == "%J"
|
55
|
+
era_year = year == 1 ? "元" : to_kanzi(era_year)
|
56
|
+
end
|
57
|
+
era_year
|
58
|
+
end
|
59
|
+
|
60
|
+
def to_kanzi(numeric, kanzi = "")
|
61
|
+
figures = (10 ** numeric.to_s.size) / 10
|
62
|
+
numeric = numeric.to_i
|
63
|
+
kanzi_string = [nil, "一", "二", "三", "四", "五", "六", "七", "八", "九"]
|
64
|
+
figures_string = { 1000 => "千", 100 => "百", 10 => "十", 1 => "" }
|
65
|
+
return kanzi + kanzi_string[numeric] if figures == 1
|
66
|
+
|
67
|
+
numeral = numeric / figures
|
68
|
+
if numeral > 1
|
69
|
+
to_kanzi(numeric - numeral * figures, "#{kanzi}#{kanzi_string[numeral]}#{figures_string[figures]}")
|
70
|
+
elsif numeral == 1
|
71
|
+
to_kanzi(numeric - numeral * figures, "#{kanzi}#{figures_string[figures]}")
|
72
|
+
else
|
73
|
+
to_kanzi(numeric - numeral * figures, kanzi)
|
74
|
+
end
|
44
75
|
end
|
45
76
|
|
46
77
|
end
|
data/lib/era_ja/version.rb
CHANGED
data/spec/spec_helper.rb
CHANGED
@@ -33,8 +33,32 @@ shared_examples "should equal '平成240429'" do
|
|
33
33
|
end
|
34
34
|
end
|
35
35
|
|
36
|
+
shared_examples "should equal '平成二十四年四月二十九日'" do
|
37
|
+
context "with '%O%JE年%Jm月%Jd日'" do
|
38
|
+
it { subject.to_era('%O%JE年%Jm月%Jd日').should eq '平成二十四年四月二十九日' }
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
shared_examples "should equal '2012年04月29日'" do
|
43
|
+
context "with '%y年%m月%d日'" do
|
44
|
+
it { subject.to_era('%Y年%m月%d日').should eq '2012年04月29日' }
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
shared_examples "should equal '二千十二年四月二十九日'" do
|
49
|
+
context "with '%Jy年%Jm月%Jd日'" do
|
50
|
+
it { subject.to_era('%JY年%Jm月%Jd日').should eq '二千十二年四月二十九日' }
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
36
54
|
shared_examples "should equal 'H01.01.08'" do
|
37
|
-
|
55
|
+
context "without argument" do
|
56
|
+
it { subject.to_era.should eq "H01.01.08" }
|
57
|
+
end
|
58
|
+
|
59
|
+
context "with '%O%JE.%Jm.%Jd'" do
|
60
|
+
it { subject.to_era('%O%JE.%Jm.%Jd').should eq "平成元.一.八" }
|
61
|
+
end
|
38
62
|
end
|
39
63
|
|
40
64
|
shared_examples "should equal 'S64.01.07'" do
|
@@ -80,6 +104,9 @@ shared_examples "2012,4,29" do
|
|
80
104
|
include_examples "should equal '24.04.29'"
|
81
105
|
include_examples "should equal '2404'"
|
82
106
|
include_examples "should equal '平成240429'"
|
107
|
+
include_examples "should equal '2012年04月29日'"
|
108
|
+
include_examples "should equal '平成二十四年四月二十九日'"
|
109
|
+
include_examples "should equal '二千十二年四月二十九日'"
|
83
110
|
end
|
84
111
|
|
85
112
|
shared_examples "1989,1,8" 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.
|
4
|
+
version: 0.2.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,72 +9,88 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2013-02-10 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rake
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
|
-
- -
|
19
|
+
- - ~>
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version: 0.
|
21
|
+
version: 10.0.3
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
25
|
none: false
|
26
26
|
requirements:
|
27
|
-
- -
|
27
|
+
- - ~>
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
version: 0.
|
29
|
+
version: 10.0.3
|
30
30
|
- !ruby/object:Gem::Dependency
|
31
31
|
name: rspec
|
32
32
|
requirement: !ruby/object:Gem::Requirement
|
33
33
|
none: false
|
34
34
|
requirements:
|
35
|
-
- -
|
35
|
+
- - ~>
|
36
36
|
- !ruby/object:Gem::Version
|
37
|
-
version: 2.
|
37
|
+
version: 2.12.0
|
38
38
|
type: :development
|
39
39
|
prerelease: false
|
40
40
|
version_requirements: !ruby/object:Gem::Requirement
|
41
41
|
none: false
|
42
42
|
requirements:
|
43
|
-
- -
|
43
|
+
- - ~>
|
44
44
|
- !ruby/object:Gem::Version
|
45
|
-
version: 2.
|
45
|
+
version: 2.12.0
|
46
46
|
- !ruby/object:Gem::Dependency
|
47
|
-
name:
|
47
|
+
name: guard-rspec
|
48
48
|
requirement: !ruby/object:Gem::Requirement
|
49
49
|
none: false
|
50
50
|
requirements:
|
51
|
-
- -
|
51
|
+
- - ~>
|
52
52
|
- !ruby/object:Gem::Version
|
53
|
-
version:
|
53
|
+
version: 2.4.0
|
54
54
|
type: :development
|
55
55
|
prerelease: false
|
56
56
|
version_requirements: !ruby/object:Gem::Requirement
|
57
57
|
none: false
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - ~>
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
61
|
+
version: 2.4.0
|
62
62
|
- !ruby/object:Gem::Dependency
|
63
|
-
name:
|
63
|
+
name: rb-fsevent
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
66
|
+
requirements:
|
67
|
+
- - ~>
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: 0.9.3
|
70
|
+
type: :development
|
71
|
+
prerelease: false
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ~>
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: 0.9.3
|
78
|
+
- !ruby/object:Gem::Dependency
|
79
|
+
name: terminal-notifier-guard
|
64
80
|
requirement: !ruby/object:Gem::Requirement
|
65
81
|
none: false
|
66
82
|
requirements:
|
67
|
-
- -
|
83
|
+
- - ~>
|
68
84
|
- !ruby/object:Gem::Version
|
69
|
-
version:
|
85
|
+
version: 1.5.3
|
70
86
|
type: :development
|
71
87
|
prerelease: false
|
72
88
|
version_requirements: !ruby/object:Gem::Requirement
|
73
89
|
none: false
|
74
90
|
requirements:
|
75
|
-
- -
|
91
|
+
- - ~>
|
76
92
|
- !ruby/object:Gem::Version
|
77
|
-
version:
|
93
|
+
version: 1.5.3
|
78
94
|
description: Convert to Japanese era.
|
79
95
|
email:
|
80
96
|
- tomiacannondale@gmail.com
|
@@ -113,7 +129,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
113
129
|
version: '0'
|
114
130
|
segments:
|
115
131
|
- 0
|
116
|
-
hash: -
|
132
|
+
hash: -1339535651453117489
|
117
133
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
118
134
|
none: false
|
119
135
|
requirements:
|
@@ -122,7 +138,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
122
138
|
version: '0'
|
123
139
|
segments:
|
124
140
|
- 0
|
125
|
-
hash: -
|
141
|
+
hash: -1339535651453117489
|
126
142
|
requirements: []
|
127
143
|
rubyforge_project:
|
128
144
|
rubygems_version: 1.8.24
|