wareki 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 +5 -5
- data/ChangeLog +5 -0
- data/README.rdoc +35 -7
- data/lib/wareki/common.rb +2 -2
- data/lib/wareki/kansuji.rb +8 -8
- data/lib/wareki/version.rb +1 -1
- metadata +17 -17
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 39f05936b30d97f43a06edb9d15c7d67bb719e96
|
4
|
+
data.tar.gz: ccd7b79a1bf1dd80c5d7941e3563776821bfa929
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 362fd8803dc51359f7b90e3a56bad1767c6feb4d2253270cc0d6d748d35b98ac92bb6d9f24e2adcf45d57236a956b909d8e0f78cb7b9652306b4c1b12bd25835
|
7
|
+
data.tar.gz: 435a35906ed7100d2f808bdaf8051b9db778fc76e9ff0fcf8d8e646da5e1319a511ead388fe0159832b8268e681c5c231b1abf8c9ac996abf8c71e1ae70e0913
|
data/ChangeLog
CHANGED
data/README.rdoc
CHANGED
@@ -36,21 +36,49 @@ Gemfile に以下のようにするか、
|
|
36
36
|
|
37
37
|
== 使い方の例
|
38
38
|
|
39
|
+
=== ありそうな例
|
40
|
+
|
39
41
|
require 'wareki'
|
40
42
|
|
41
|
-
|
42
|
-
|
43
|
-
|
43
|
+
d = Date.parse("平成二七年 08月 22日")
|
44
|
+
d.strftime("%F") # => "2015-08-22"
|
45
|
+
d.strftime("%JF") # => "平成二十七年八月二十二日"
|
46
|
+
d.strftime("%Jf") # => "平成27年8月22日"
|
44
47
|
|
45
|
-
|
46
|
-
|
48
|
+
=== パース
|
49
|
+
|
50
|
+
旧暦を含むの日本語の日付文字列パースして、組み込み Date オブジェクトに変換できます。この時、慣例的に使われていたい色々な表記も解釈できます。(標準では Date::ITALY な Date オブジェクトに変換しますが、必要であれば第3引数の start に改暦日を渡せます。)
|
51
|
+
|
52
|
+
# 和暦のパース (標準 Date インスタンス)
|
53
|
+
Date.parse("㍻一〇年 肆月 晦日") # => #<Date: 1998-04-30 ...
|
54
|
+
Date.parse("安政七年 弥生") # => #<Date: 1860-03-22 ...
|
55
|
+
Date.parse("元仁元年閏七月朔日") # => #<Date: 1224-08-17 ...
|
56
|
+
Date.parse("萬延三年 5月 廿一日") # => #<Date: 1862-06-18 ...
|
57
|
+
Date.parse("皇紀二千皕卌年") # => #<Date: 1580-01-17 ...
|
58
|
+
Date.parse("正嘉元年 うるう3月 12日") # => #<Date: 1257-04-27 ...
|
47
59
|
|
48
60
|
# Wareki::Date を直接扱う場合
|
49
61
|
Date.today.to_wareki_date # => Wareki::Date インスタンス
|
50
62
|
Wareki::Date.parse("正嘉元年 うるう3月 12日") # => Wareki::Date インスタンス
|
51
|
-
Wareki::Date.new("明治", 8, 2, 1).to_date
|
63
|
+
Wareki::Date.new("明治", 8, 2, 1).to_date # => 標準 Date インスタンス 1875-02-01
|
64
|
+
|
65
|
+
=== 和暦・旧暦へのフォーマット
|
66
|
+
|
67
|
+
日本では明治5年まで、グレゴリオ暦でもユリウス歴でもない旧暦が使われていました。これもフォーマット文字列経由で透過的に扱えます。
|
68
|
+
|
69
|
+
Date.today.strftime("%JF") # => "平成二十七年八月二十二日"
|
70
|
+
Date.civil(1311, 7, 20).strftime("%JF") # => "応長元年閏六月四日"
|
71
|
+
|
72
|
+
旧暦の場合の月日 (%Jm, %Jd) と、グレゴリオ暦やユリウス暦での月日 (%m, %d)は違うものを出力します。
|
73
|
+
|
74
|
+
d = Date.civil(1860, 4, 7)
|
75
|
+
dj = d.new_start(Date::JULIAN)
|
76
|
+
d.strftime # => "1860-04-07" (グレゴリオ暦)
|
77
|
+
dj.strftime # => "1860-03-26" (ユリウス暦)
|
78
|
+
d.strftime("%Jf") # => "安政7年3月17日" (日本の旧暦)
|
79
|
+
d.strftime("皇紀%Ji年%Jm月%Jd日") # => "皇紀2520年3月17日" (日本の旧暦で神武天皇即位紀元年)
|
52
80
|
|
53
|
-
==
|
81
|
+
== 追加フォーマット文字列一覧
|
54
82
|
|
55
83
|
* %Jf: "%Je%Jg年%Js%Jl月%Jd日" の略 (例: 平成23年3月12日)
|
56
84
|
* %JF: "%Je%JGK年%JLk%JSk月%JDk日" の略 (例: 平成二十三年三月十二日)
|
data/lib/wareki/common.rb
CHANGED
@@ -21,7 +21,7 @@ module Wareki
|
|
21
21
|
ERA_BY_NAME[short] = ERA_BY_NAME[canon]
|
22
22
|
end
|
23
23
|
ERA_BY_NAME.freeze
|
24
|
-
NUM_CHARS = '
|
24
|
+
NUM_CHARS = '零壱壹弌弐貳貮参參弎肆伍陸漆質柒捌玖〇一二三四五六七八九十拾什卄廿卅丗卌百陌佰皕阡仟千万萬億兆京垓01234567890123456789'.freeze
|
25
25
|
ALT_MONTH_NAME = %w(睦月 如月 弥生 卯月 皐月 水無月 文月 葉月 長月 神無月 霜月 師走).freeze
|
26
26
|
REGEX = %r{^
|
27
27
|
(?<era_name>西暦|紀元前|#{ERA_BY_NAME.keys.join('|')})?
|
@@ -30,7 +30,7 @@ module Wareki
|
|
30
30
|
(?:(?<month>[正#{NUM_CHARS}]+)月 |
|
31
31
|
(?<alt_month>#{ALT_MONTH_NAME.join('|')})))?
|
32
32
|
(?:(?<day>[元朔晦#{NUM_CHARS}]+)日)?
|
33
|
-
$}x
|
33
|
+
$}x.freeze
|
34
34
|
|
35
35
|
class UnsupportedDateRange < StandardError; end
|
36
36
|
|
data/lib/wareki/kansuji.rb
CHANGED
@@ -18,23 +18,23 @@ module Wareki
|
|
18
18
|
module_function
|
19
19
|
|
20
20
|
def kan_to_i(str)
|
21
|
+
str = str.to_s.tr(
|
22
|
+
'〇一二三四五六七八九0123456789零正元朔壱壹弌弐貳貮参參弎肆伍陸漆質柒捌玖拾什陌佰阡仟萬',
|
23
|
+
'01234567890123456789011111122233345677789十十百百千千万'
|
24
|
+
)
|
21
25
|
ret3 = 0
|
22
26
|
ret4 = 0
|
23
27
|
curnum = nil
|
24
|
-
str
|
25
|
-
str.to_s.each_char do |c|
|
28
|
+
str.each_char do |c|
|
26
29
|
case c
|
27
|
-
when '
|
28
|
-
'一', '二', '三', '四', '五', '六', '七', '八', '九', '肆',
|
29
|
-
'1', '2', '3', '4', '5', '6', '7', '8', '9',
|
30
|
-
'1', '2', '3', '4', '5', '6', '7', '8', '9'
|
30
|
+
when '1', '2', '3', '4', '5', '6', '7', '8', '9'
|
31
31
|
if curnum
|
32
32
|
curnum *= 10
|
33
33
|
else
|
34
34
|
curnum = 0
|
35
35
|
end
|
36
|
-
curnum += c.
|
37
|
-
when '
|
36
|
+
curnum += c.to_i
|
37
|
+
when '0'
|
38
38
|
curnum and curnum *= 10
|
39
39
|
when '卄', '廿'
|
40
40
|
ret3 += 20
|
data/lib/wareki/version.rb
CHANGED
metadata
CHANGED
@@ -1,52 +1,52 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: wareki
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tatsuki Sugiura
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-11-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
14
15
|
requirement: !ruby/object:Gem::Requirement
|
15
16
|
requirements:
|
16
|
-
- - "
|
17
|
+
- - "~>"
|
17
18
|
- !ruby/object:Gem::Version
|
18
|
-
version: '
|
19
|
-
name: bundler
|
20
|
-
prerelease: false
|
19
|
+
version: '1.9'
|
21
20
|
type: :development
|
21
|
+
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - "
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '
|
26
|
+
version: '1.9'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
28
29
|
requirement: !ruby/object:Gem::Requirement
|
29
30
|
requirements:
|
30
31
|
- - "~>"
|
31
32
|
- !ruby/object:Gem::Version
|
32
33
|
version: '10.0'
|
33
|
-
name: rake
|
34
|
-
prerelease: false
|
35
34
|
type: :development
|
35
|
+
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '10.0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
+
name: rspec
|
42
43
|
requirement: !ruby/object:Gem::Requirement
|
43
44
|
requirements:
|
44
45
|
- - ">="
|
45
46
|
- !ruby/object:Gem::Version
|
46
47
|
version: '0'
|
47
|
-
name: rspec
|
48
|
-
prerelease: false
|
49
48
|
type: :development
|
49
|
+
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - ">="
|
@@ -77,7 +77,7 @@ homepage: https://github.com/sugi/wareki
|
|
77
77
|
licenses:
|
78
78
|
- BSD
|
79
79
|
metadata: {}
|
80
|
-
post_install_message:
|
80
|
+
post_install_message:
|
81
81
|
rdoc_options: []
|
82
82
|
require_paths:
|
83
83
|
- lib
|
@@ -92,9 +92,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
92
92
|
- !ruby/object:Gem::Version
|
93
93
|
version: '0'
|
94
94
|
requirements: []
|
95
|
-
rubyforge_project:
|
96
|
-
rubygems_version: 2.
|
97
|
-
signing_key:
|
95
|
+
rubyforge_project:
|
96
|
+
rubygems_version: 2.5.2.2
|
97
|
+
signing_key:
|
98
98
|
specification_version: 4
|
99
99
|
summary: Pure ruby library of Wareki (Japanese calendar date)
|
100
100
|
test_files: []
|