era_ja 0.2.2 → 0.3.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 +7 -0
- data/README.ja.md +2 -2
- data/README.md +4 -4
- data/lib/era_ja.rb +2 -75
- data/lib/era_ja/conversion.rb +77 -0
- data/lib/era_ja/date.rb +2 -2
- data/lib/era_ja/time.rb +2 -2
- data/lib/era_ja/version.rb +1 -1
- metadata +8 -25
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 4d6d464cb5c1bc163494728e662dcff888a83c45
|
4
|
+
data.tar.gz: bee2c4edbec74306347c2af4f93fc71baec4776d
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 1fa4e0f19b50dd285b43941bbf66a2a4401ab0870bd9b728a258fad47be17148a6a2a24e57caef80846892f7e804281aded75ed67a50c06113a79f998154986e
|
7
|
+
data.tar.gz: 6f2d8354564782403dd624bfd45c8cd6fcc061beb5f6c2e0a7414608b8a3b5771d1a9e6af1538732bc93d4f0fe2fafe54ba3f8374fcc3614e40bd80938e41773
|
data/README.ja.md
CHANGED
@@ -38,7 +38,7 @@ EraJa#to_eraメソッドでの追加のフォーマット文字列は以下の
|
|
38
38
|
require 'era_ja/time'
|
39
39
|
Time.mktime(2012,4,29).to_era # => "H24.4.29"
|
40
40
|
Time.mktime(2012,4,29).to_era("%O%E年%m月%d日") # => "平成24年4月29日"
|
41
|
-
Time.mktime(2012,4,29).to_era("%JE年%Jm月%Jd日") # => "平成二十四年四月二十九日"
|
41
|
+
Time.mktime(2012,4,29).to_era("%O%JE年%Jm月%Jd日") # => "平成二十四年四月二十九日"
|
42
42
|
```
|
43
43
|
|
44
44
|
### Dateインタンスを和暦に変換します。
|
@@ -47,7 +47,7 @@ EraJa#to_eraメソッドでの追加のフォーマット文字列は以下の
|
|
47
47
|
require 'era_ja/date'
|
48
48
|
Date.new(2012,4,29).to_era # => "H24.4.29"
|
49
49
|
Date.new(2012,4,29).to_era("%O%E年%m月%d日") # => "平成24年4月29日"
|
50
|
-
Date.new(2012,4,29).to_era("%JE年%Jm月%Jd日") # => "平成二十四年四月二十九日"
|
50
|
+
Date.new(2012,4,29).to_era("%O%JE年%Jm月%Jd日") # => "平成二十四年四月二十九日"
|
51
51
|
```
|
52
52
|
|
53
53
|
### 数字を漢数字に変換します。 ###
|
data/README.md
CHANGED
@@ -36,19 +36,19 @@ EraJa#to_era of extra format string is follow.
|
|
36
36
|
### Time instance to japanese era
|
37
37
|
|
38
38
|
```ruby
|
39
|
-
require 'era_ja
|
39
|
+
require 'era_ja'
|
40
40
|
Time.mktime(2012,4,29).to_era # => "H24.4.29"
|
41
41
|
Time.mktime(2012,4,29).to_era("%O%E年%m月%d日") # => "平成24年4月29日"
|
42
|
-
Time.mktime(2012,4,29).to_era("%JE年%Jm月%Jd日") # => "平成二十四年四月二十九日"
|
42
|
+
Time.mktime(2012,4,29).to_era("%O%JE年%Jm月%Jd日") # => "平成二十四年四月二十九日"
|
43
43
|
```
|
44
44
|
|
45
45
|
### Date instance to japanese era
|
46
46
|
|
47
47
|
```ruby
|
48
|
-
require 'era_ja
|
48
|
+
require 'era_ja'
|
49
49
|
Date.new(2012,4,29).to_era # => "H24.4.29"
|
50
50
|
Date.new(2012,4,29).to_era("%O%E年%m月%d日") # => "平成24年4月29日"
|
51
|
-
Date.new(2012,4,29).to_era("%JE年%Jm月%Jd日") # => "平成二十四年四月二十九日"
|
51
|
+
Date.new(2012,4,29).to_era("%O%JE年%Jm月%Jd日") # => "平成二十四年四月二十九日"
|
52
52
|
```
|
53
53
|
|
54
54
|
### Change number to kansuuzi ###
|
data/lib/era_ja.rb
CHANGED
@@ -1,77 +1,4 @@
|
|
1
1
|
# -*- coding: utf-8 -*-
|
2
2
|
require "era_ja/version"
|
3
|
-
require
|
4
|
-
|
5
|
-
module EraJa
|
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
|
-
# * %J - kanzi number
|
16
|
-
# @return [String]
|
17
|
-
def to_era(format = "%o%E.%m.%d")
|
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 1868,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
|
35
|
-
end
|
36
|
-
str_time.gsub(/%J(\d+)/) { to_kanzi($1) }
|
37
|
-
end
|
38
|
-
|
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
|
-
|
44
|
-
def format_era(string)
|
45
|
-
if @era_format =~ /%o/
|
46
|
-
return "#{ERA.detect{ |i| i[0] == string}[0]}"
|
47
|
-
elsif @era_format =~ /%O/
|
48
|
-
return "#{ERA.detect{ |i| i[0] == string}[1]}"
|
49
|
-
end
|
50
|
-
end
|
51
|
-
|
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
|
75
|
-
end
|
76
|
-
|
77
|
-
end
|
3
|
+
require "era_ja/date"
|
4
|
+
require "era_ja/time"
|
@@ -0,0 +1,77 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
require 'date'
|
3
|
+
|
4
|
+
module EraJa
|
5
|
+
module Conversion
|
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
|
+
# * %J - kanzi number
|
16
|
+
# @return [String]
|
17
|
+
def to_era(format = "%o%E.%m.%d")
|
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 1868,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
|
35
|
+
end
|
36
|
+
str_time.gsub(/%J(\d+)/) { to_kanzi($1) }
|
37
|
+
end
|
38
|
+
|
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
|
+
|
44
|
+
def format_era(string)
|
45
|
+
if @era_format =~ /%o/
|
46
|
+
return "#{ERA.detect{ |i| i[0] == string}[0]}"
|
47
|
+
elsif @era_format =~ /%O/
|
48
|
+
return "#{ERA.detect{ |i| i[0] == string}[1]}"
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
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
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
data/lib/era_ja/date.rb
CHANGED
data/lib/era_ja/time.rb
CHANGED
data/lib/era_ja/version.rb
CHANGED
metadata
CHANGED
@@ -1,20 +1,18 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: era_ja
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.3.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- tomi
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2014-12-13 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: rake
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
17
|
- - ~>
|
20
18
|
- !ruby/object:Gem::Version
|
@@ -22,7 +20,6 @@ dependencies:
|
|
22
20
|
type: :development
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
24
|
- - ~>
|
28
25
|
- !ruby/object:Gem::Version
|
@@ -30,7 +27,6 @@ dependencies:
|
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: rspec
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
31
|
- - ~>
|
36
32
|
- !ruby/object:Gem::Version
|
@@ -38,7 +34,6 @@ dependencies:
|
|
38
34
|
type: :development
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
38
|
- - ~>
|
44
39
|
- !ruby/object:Gem::Version
|
@@ -46,7 +41,6 @@ dependencies:
|
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
42
|
name: guard-rspec
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
44
|
requirements:
|
51
45
|
- - ~>
|
52
46
|
- !ruby/object:Gem::Version
|
@@ -54,7 +48,6 @@ dependencies:
|
|
54
48
|
type: :development
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
51
|
requirements:
|
59
52
|
- - ~>
|
60
53
|
- !ruby/object:Gem::Version
|
@@ -62,7 +55,6 @@ dependencies:
|
|
62
55
|
- !ruby/object:Gem::Dependency
|
63
56
|
name: rb-fsevent
|
64
57
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
58
|
requirements:
|
67
59
|
- - ~>
|
68
60
|
- !ruby/object:Gem::Version
|
@@ -70,7 +62,6 @@ dependencies:
|
|
70
62
|
type: :development
|
71
63
|
prerelease: false
|
72
64
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
65
|
requirements:
|
75
66
|
- - ~>
|
76
67
|
- !ruby/object:Gem::Version
|
@@ -78,7 +69,6 @@ dependencies:
|
|
78
69
|
- !ruby/object:Gem::Dependency
|
79
70
|
name: terminal-notifier-guard
|
80
71
|
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
72
|
requirements:
|
83
73
|
- - ~>
|
84
74
|
- !ruby/object:Gem::Version
|
@@ -86,7 +76,6 @@ dependencies:
|
|
86
76
|
type: :development
|
87
77
|
prerelease: false
|
88
78
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
79
|
requirements:
|
91
80
|
- - ~>
|
92
81
|
- !ruby/object:Gem::Version
|
@@ -109,6 +98,7 @@ files:
|
|
109
98
|
- Rakefile
|
110
99
|
- era_ja.gemspec
|
111
100
|
- lib/era_ja.rb
|
101
|
+
- lib/era_ja/conversion.rb
|
112
102
|
- lib/era_ja/date.rb
|
113
103
|
- lib/era_ja/time.rb
|
114
104
|
- lib/era_ja/version.rb
|
@@ -118,33 +108,26 @@ files:
|
|
118
108
|
homepage: https://github.com/tomiacannondale/era_ja
|
119
109
|
licenses:
|
120
110
|
- MIT
|
111
|
+
metadata: {}
|
121
112
|
post_install_message:
|
122
113
|
rdoc_options: []
|
123
114
|
require_paths:
|
124
115
|
- lib
|
125
116
|
required_ruby_version: !ruby/object:Gem::Requirement
|
126
|
-
none: false
|
127
117
|
requirements:
|
128
|
-
- -
|
118
|
+
- - '>='
|
129
119
|
- !ruby/object:Gem::Version
|
130
120
|
version: '0'
|
131
|
-
segments:
|
132
|
-
- 0
|
133
|
-
hash: -956347074724186715
|
134
121
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
135
|
-
none: false
|
136
122
|
requirements:
|
137
|
-
- -
|
123
|
+
- - '>='
|
138
124
|
- !ruby/object:Gem::Version
|
139
125
|
version: '0'
|
140
|
-
segments:
|
141
|
-
- 0
|
142
|
-
hash: -956347074724186715
|
143
126
|
requirements: []
|
144
127
|
rubyforge_project:
|
145
|
-
rubygems_version:
|
128
|
+
rubygems_version: 2.0.14
|
146
129
|
signing_key:
|
147
|
-
specification_version:
|
130
|
+
specification_version: 4
|
148
131
|
summary: Convert Date or Time instance to String of Japanese era.
|
149
132
|
test_files:
|
150
133
|
- spec/date_spec.rb
|