when_exe 0.4.2 → 0.5.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.
Files changed (144) hide show
  1. checksums.yaml +5 -5
  2. data/LICENSE.ja.txt +8 -21
  3. data/LICENSE.txt +5 -27
  4. data/README.md +25 -79
  5. data/bin/.pryrc +9 -0
  6. data/bin/make_ttl.rb +3 -2
  7. data/bin/make_ttl.rb.config +3 -3
  8. data/lib/when_exe.rb +101 -5
  9. data/lib/when_exe/basictypes.rb +47 -16
  10. data/lib/when_exe/calendarnote.rb +27 -18
  11. data/lib/when_exe/calendartypes.rb +12 -50
  12. data/lib/when_exe/coordinates.rb +37 -391
  13. data/lib/when_exe/ephemeris.rb +53 -14
  14. data/lib/when_exe/ephemeris/eclipse.rb +8 -8
  15. data/lib/when_exe/ephemeris/moon.rb +333 -333
  16. data/lib/when_exe/ephemeris/notes.rb +29 -17
  17. data/lib/when_exe/ephemeris/phase_table.rb +825 -0
  18. data/lib/when_exe/ephemeris/term_table.rb +603 -0
  19. data/lib/when_exe/events.rb +1888 -0
  20. data/lib/when_exe/google_api.rb +26 -31
  21. data/lib/when_exe/icalendar.rb +129 -12
  22. data/lib/when_exe/inspect.rb +5 -5
  23. data/lib/when_exe/linkeddata.rb +43 -23
  24. data/lib/when_exe/locales/akt.rb +63 -0
  25. data/lib/when_exe/locales/encoding_conversion.rb +134 -134
  26. data/lib/when_exe/locales/iast.rb +90 -90
  27. data/lib/when_exe/locales/locale.rb +88 -18
  28. data/lib/when_exe/locales/transliteration_table.rb +62 -62
  29. data/lib/when_exe/mini_application.rb +14 -8
  30. data/lib/when_exe/namespace.rb +42 -0
  31. data/lib/when_exe/parts/enumerator.rb +16 -5
  32. data/lib/when_exe/parts/geometric_complex.rb +52 -2
  33. data/lib/when_exe/parts/method_cash.rb +229 -224
  34. data/lib/when_exe/parts/resource.rb +65 -35
  35. data/lib/when_exe/parts/timezone.rb +25 -34
  36. data/lib/when_exe/region/balinese.rb +5 -3
  37. data/lib/when_exe/region/chinese.rb +39 -11
  38. data/lib/when_exe/region/chinese/calendars.rb +1016 -1016
  39. data/lib/when_exe/region/chinese/epochs.rb +7 -7
  40. data/lib/when_exe/region/chinese/notes.rb +3 -3
  41. data/lib/when_exe/region/chinese/twins.rb +134 -11
  42. data/lib/when_exe/region/dee.rb +4 -4
  43. data/lib/when_exe/region/discordian.rb +1 -1
  44. data/lib/when_exe/region/geologicalage.rb +139 -128
  45. data/lib/when_exe/region/hanke_henry.rb +4 -4
  46. data/lib/when_exe/region/indian.rb +77 -8
  47. data/lib/when_exe/region/international_fixed.rb +3 -3
  48. data/lib/when_exe/region/islamic.rb +1 -1
  49. data/lib/when_exe/region/japanese.rb +12 -8
  50. data/lib/when_exe/region/japanese/calendars.rb +397 -397
  51. data/lib/when_exe/region/japanese/eclipses.rb +1194 -1194
  52. data/lib/when_exe/region/japanese/epochs.rb +8 -4
  53. data/lib/when_exe/region/japanese/location.rb +93 -0
  54. data/lib/when_exe/region/japanese/nihon_shoki.rb +70 -70
  55. data/lib/when_exe/region/japanese/notes.rb +57 -18
  56. data/lib/when_exe/region/japanese/residues.rb +33 -11
  57. data/lib/when_exe/region/japanese/twins.rb +27 -14
  58. data/lib/when_exe/region/japanese/weeks.rb +7 -7
  59. data/lib/when_exe/region/korean.rb +384 -384
  60. data/lib/when_exe/region/location.rb +40 -0
  61. data/lib/when_exe/region/martian.rb +1 -1
  62. data/lib/when_exe/region/mayan.rb +2 -2
  63. data/lib/when_exe/region/roman.rb +2 -2
  64. data/lib/when_exe/region/ryukyu.rb +101 -101
  65. data/lib/when_exe/region/saudi_arabian.rb +57 -0
  66. data/lib/when_exe/region/shire.rb +1 -1
  67. data/lib/when_exe/region/world.rb +3 -3
  68. data/lib/when_exe/region/zoroastrian.rb +1 -1
  69. data/lib/when_exe/spatial.rb +611 -0
  70. data/lib/when_exe/timestandard.rb +9 -7
  71. data/lib/when_exe/tmobjects.rb +34 -2
  72. data/lib/when_exe/tmposition.rb +225 -1322
  73. data/lib/when_exe/tmptypes.rb +1279 -0
  74. data/lib/when_exe/tmreference.rb +42 -7
  75. data/lib/when_exe/version.rb +3 -3
  76. data/test/events/example-datasets +6 -0
  77. data/test/events/history-dataset.csv +22 -0
  78. data/test/events/japanese-holiday-index.csv +28 -0
  79. data/test/events/japanese-holiday.csv +94 -0
  80. data/test/events/japanese-holiday.ttl +948 -0
  81. data/test/events/make_events_ttl.rb +18 -0
  82. data/test/events/mori_wikichoshi.csv +14 -0
  83. data/test/events/ndl_koyomi.csv +220 -0
  84. data/test/events/ndl_koyomi_index.csv +44 -0
  85. data/test/events/primeminister-dataset.csv +19 -0
  86. data/test/events/shogun-dataset.csv +22 -0
  87. data/test/events/test-history-dataset-edge-sparql.csv +26 -0
  88. data/test/events/test-history-dataset-edge.csv +27 -0
  89. data/test/events/test-history-dataset-sparql.csv +22 -0
  90. data/test/events/test-history-dataset.csv +23 -0
  91. data/test/events/test-history-events-edge.ttl +89 -0
  92. data/test/events/test-history-events.csv +6 -0
  93. data/test/examples/JapanHolidays.ics +2 -2
  94. data/test/examples/JapanHolidaysRFC6350.ics +3 -3
  95. data/test/examples/Residue.m17n +2 -2
  96. data/test/examples/Spatial.m17n +3 -3
  97. data/test/examples/Terms.m17n +3 -3
  98. data/test/scripts/8.ext.rb +6 -6
  99. data/test/scripts/8.rb +6 -6
  100. data/test/scripts/geometric_complex.rb +41 -41
  101. data/test/scripts/korea.rb +59 -59
  102. data/test/scripts/thai.rb +36 -36
  103. data/test/test.rb +6 -0
  104. data/test/test/basictypes.rb +431 -431
  105. data/test/test/calendarnote.rb +86 -86
  106. data/test/test/calendartypes.rb +97 -97
  107. data/test/test/coordinates.rb +399 -397
  108. data/test/test/ephemeris.rb +115 -115
  109. data/test/test/ephemeris/moon.rb +14 -14
  110. data/test/test/ephemeris/planets.rb +14 -14
  111. data/test/test/ephemeris/sun.rb +14 -14
  112. data/test/test/events.rb +32 -0
  113. data/test/test/google_api.rb +45 -32
  114. data/test/test/inspect.rb +153 -153
  115. data/test/test/parts.rb +488 -488
  116. data/test/test/region/armenian.rb +20 -20
  117. data/test/test/region/bahai.rb +58 -58
  118. data/test/test/region/balinese.rb +34 -34
  119. data/test/test/region/chinese.rb +229 -229
  120. data/test/test/region/christian.rb +226 -226
  121. data/test/test/region/coptic.rb +27 -27
  122. data/test/test/region/discordian.rb +20 -20
  123. data/test/test/region/french.rb +33 -33
  124. data/test/test/region/geologicalage.rb +17 -17
  125. data/test/test/region/indian.rb +14 -1
  126. data/test/test/region/iran.rb +54 -54
  127. data/test/test/region/islamic.rb +64 -54
  128. data/test/test/region/japanese.rb +281 -261
  129. data/test/test/region/jewish.rb +63 -63
  130. data/test/test/region/m17n.rb +21 -21
  131. data/test/test/region/mayan.rb +17 -16
  132. data/test/test/region/reforms.rb +2 -2
  133. data/test/test/region/residue.rb +7 -7
  134. data/test/test/region/shire.rb +58 -58
  135. data/test/test/region/swedish.rb +45 -45
  136. data/test/test/region/thai.rb +116 -116
  137. data/test/test/region/tibetan.rb +30 -30
  138. data/test/test/region/vietnamese.rb +102 -102
  139. data/test/test/region/zoroastrian.rb +58 -58
  140. data/test/test/timestandard.rb +81 -81
  141. data/test/test/tmobjects.rb +402 -402
  142. data/test/test/tmposition.rb +66 -4
  143. data/test/test/tmreference.rb +157 -157
  144. metadata +36 -93
@@ -147,6 +147,35 @@ module When
147
147
  # @private
148
148
  IAST_K_keys = transliteration_keys(IAST_K)
149
149
 
150
+ # @private
151
+ NumAlter1 = [['〇','零'], [/[壱壹]/,'一'], [/[弐貳]/,'二'], [/[弎参參]/,'三'], ['肆','四'],
152
+ ['伍','五'], ['陸','六'], ['柒','七'], ['捌','八'], ['玖','九'], ['拾','十'],
153
+ ['廿', '二十'], [/[卅丗]/, '三十'], ['卌', '四十'],
154
+ ['佰', '百'], ['仟', '千'], ['萬', '万'], ['秭', '𥝱']]
155
+
156
+ # @private
157
+ NumAlter2 = [['零〇','0'], ['一壱壹','1'], ['二弐貳','2'], ['三弎参參','3'], ['四肆','4'],
158
+ ['五伍','5'], ['六陸','6'], ['七柒','7'], ['八捌','8'], ['九玖','9']]
159
+
160
+ # @private
161
+ Numbers = %w(零 一 二 三 四 五 六 七 八 九 十 百 千 万 億 兆 京 垓 𥝱
162
+ 穣 溝 澗 正 載 極 恒河沙 阿僧祇 那由他 不可思議 無量大数)
163
+
164
+ # @private
165
+ NumRExp1 = /#{Numbers[10..12].reverse.map {|num| "(?:(.*)#{num})"}.join('?')}?(.*)/
166
+
167
+ # public
168
+ NumRExp3 = /([#{Numbers[0..12].join('')}廿卅丗卌]+)/
169
+
170
+ # @private
171
+ NumRExp4 = /#{Numbers[13..-1].reverse.map {|num| "(?:(.*)#{num})"}.join('?')}?(.*)/
172
+
173
+ # @private
174
+ NumMap = Hash[*(Numbers[0..9].zip((0..9).to_a)).flatten]
175
+
176
+ # @private
177
+ DigitMap = [1,1,1,0]
178
+
150
179
  #
151
180
  # Convert AKT string to katakana scripts
152
181
  #
@@ -173,5 +202,39 @@ module When
173
202
  gsub(/([rm])y/, '\1uy'),
174
203
  locale)
175
204
  end
205
+
206
+ #
207
+ # Convert kanji scripts to numeric
208
+ #
209
+ def self.k2a_digits(figures, force_alter=false)
210
+ if force_alter
211
+ figures = figures.dup
212
+ NumAlter1.each {|alter| figures.gsub!(*alter)}
213
+ end
214
+ sum = 0
215
+ NumRExp4 =~ figures
216
+ $~.to_a[1..-1].each do |wide_match|
217
+ if NumRExp1 =~ wide_match
218
+ $~.to_a[1..-1].each_with_index do |match,digit|
219
+ sum *= 10
220
+ sum += (NumMap[match] || DigitMap[digit]) if match
221
+ end
222
+ else
223
+ sum *= 10000
224
+ end
225
+ end
226
+ sum
227
+ end
228
+
229
+ #
230
+ # Convert zenkaku figures to numeric
231
+ #
232
+ def self.z2h_digits(figures, force_alter=false)
233
+ if force_alter
234
+ figures = figures.dup
235
+ NumAlter2.each {|alter| figures.tr!(*alter)}
236
+ end
237
+ figures.tr('0123456789', '0123456789').to_i
238
+ end
176
239
  end
177
240
  end
@@ -1,134 +1,134 @@
1
- # -*- coding: utf-8 -*-
2
- =begin
3
- Copyright (C) 2014 Takashi SUGA
4
-
5
- You may use and/or modify this file according to the license described in the LICENSE.txt file included in this archive.
6
- =end
7
-
8
- module When
9
-
10
- #
11
- # エンコーディングの変換
12
- #
13
- module EncodingConversion
14
-
15
- class << self
16
- if String.method_defined?(:encode)
17
- #
18
- # 内部エンコーディング文字列化
19
- #
20
- # @param [Object] source もとにする Object
21
- #
22
- # @return [Object] 内部エンコーディング化した Object
23
- #
24
- # @private
25
- def to_internal_encoding(source)
26
- default_internal = Encoding.default_internal||'UTF-8'
27
- case source
28
- when Locale ; source.to_internal_encoding
29
- when String ; case source.encoding
30
- when default_internal ; source
31
- when Encoding::ASCII_8BIT ; source.dup.force_encoding(default_internal)
32
- else ; source.encode(default_internal)
33
- end
34
- when Regexp ; case source.encoding
35
- when default_internal ; source
36
- when Encoding::ASCII_8BIT ; Regexp.new(source.dup.force_encoding(default_internal))
37
- else ; Regexp.new(source.to_s.encode(default_internal))
38
- end
39
- when Array ; source.map {|e| to_internal_encoding(e)}
40
- when Hash
41
- hash = {}
42
- source.each_pair do |key, value|
43
- hash[to_internal_encoding(key)] = to_internal_encoding(value)
44
- end
45
- hash
46
- else ; source.respond_to?(:to_internal_encoding) ? source.to_internal_encoding : source
47
- end
48
- end
49
-
50
- #
51
- # 外部エンコーディング文字列化
52
- #
53
- # @param [Object] source もとにする Object
54
- #
55
- # @return [Object] 外部エンコーディング化した Object
56
- #
57
- # @private
58
- def to_external_encoding(source)
59
- default_external = Encoding.default_external
60
- case source
61
- when Locale ; source.to_external_encoding
62
- when String ; case source.encoding
63
- when default_external ; source
64
- when Encoding::ASCII_8BIT ; source.dup.force_encoding(default_external)
65
- else ; source.encode(default_external)
66
- end
67
- when Regexp ; case source.encoding
68
- when default_external ; source
69
- when Encoding::ASCII_8BIT ; Regexp.new(source.dup.force_encoding(default_external))
70
- else ; Regexp.new(source.to_s.encode(default_external))
71
- end
72
- when Array ; source.map {|e| to_external_encoding(e)}
73
- when Hash
74
- hash = {}
75
- source.each_pair do |key, value|
76
- hash[to_external_encoding(key)] = to_external_encoding(value)
77
- end
78
- hash
79
- else ; source.respond_to?(:to_external_encoding) ? source.to_external_encoding : source
80
- end
81
- end
82
-
83
- else
84
- # 内部エンコーディング文字列化(ダミー)
85
- #
86
- # @param [String] string もとにする String または M17n
87
- #
88
- # @return [String] そのまま返す
89
- #
90
- def to_internal_encoding(string)
91
- string
92
- end
93
- #
94
- # 外部エンコーディング文字列化(ダミー)
95
- #
96
- # @param [String] string もとにする String または M17n
97
- #
98
- # @return [String] そのまま返す
99
- #
100
- def to_external_encoding(string)
101
- string
102
- end
103
- end
104
- end
105
-
106
- #
107
- # 内部エンコーディング文字列化
108
- #
109
- def to_internal_encoding
110
- EncodingConversion.to_internal_encoding(self)
111
- end
112
-
113
- #
114
- # 外部エンコーディング文字列化
115
- #
116
- def to_external_encoding
117
- EncodingConversion.to_external_encoding(self)
118
- end
119
-
120
- #
121
- # 内部エンコーディング文字列化(単項)
122
- #
123
- def +@
124
- to_internal_encoding
125
- end
126
-
127
- #
128
- # 外部エンコーディング文字列化(単項)
129
- #
130
- def -@
131
- to_external_encoding
132
- end
133
- end
134
- end
1
+ # -*- coding: utf-8 -*-
2
+ =begin
3
+ Copyright (C) 2014 Takashi SUGA
4
+
5
+ You may use and/or modify this file according to the license described in the LICENSE.txt file included in this archive.
6
+ =end
7
+
8
+ module When
9
+
10
+ #
11
+ # エンコーディングの変換
12
+ #
13
+ module EncodingConversion
14
+
15
+ class << self
16
+ if String.method_defined?(:encode)
17
+ #
18
+ # 内部エンコーディング文字列化
19
+ #
20
+ # @param [Object] source もとにする Object
21
+ #
22
+ # @return [Object] 内部エンコーディング化した Object
23
+ #
24
+ # @private
25
+ def to_internal_encoding(source)
26
+ default_internal = Encoding.default_internal||'UTF-8'
27
+ case source
28
+ when Locale ; source.to_internal_encoding
29
+ when String ; case source.encoding
30
+ when default_internal ; source
31
+ when Encoding::ASCII_8BIT ; source.dup.force_encoding(default_internal)
32
+ else ; source.encode(default_internal)
33
+ end
34
+ when Regexp ; case source.encoding
35
+ when default_internal ; source
36
+ when Encoding::ASCII_8BIT ; Regexp.new(source.dup.force_encoding(default_internal))
37
+ else ; Regexp.new(source.to_s.encode(default_internal))
38
+ end
39
+ when Array ; source.map {|e| to_internal_encoding(e)}
40
+ when Hash
41
+ hash = {}
42
+ source.each_pair do |key, value|
43
+ hash[to_internal_encoding(key)] = to_internal_encoding(value)
44
+ end
45
+ hash
46
+ else ; source.respond_to?(:to_internal_encoding) ? source.to_internal_encoding : source
47
+ end
48
+ end
49
+
50
+ #
51
+ # 外部エンコーディング文字列化
52
+ #
53
+ # @param [Object] source もとにする Object
54
+ #
55
+ # @return [Object] 外部エンコーディング化した Object
56
+ #
57
+ # @private
58
+ def to_external_encoding(source)
59
+ default_external = Encoding.default_external
60
+ case source
61
+ when Locale ; source.to_external_encoding
62
+ when String ; case source.encoding
63
+ when default_external ; source
64
+ when Encoding::ASCII_8BIT ; source.dup.force_encoding(default_external)
65
+ else ; source.encode(default_external)
66
+ end
67
+ when Regexp ; case source.encoding
68
+ when default_external ; source
69
+ when Encoding::ASCII_8BIT ; Regexp.new(source.dup.force_encoding(default_external))
70
+ else ; Regexp.new(source.to_s.encode(default_external))
71
+ end
72
+ when Array ; source.map {|e| to_external_encoding(e)}
73
+ when Hash
74
+ hash = {}
75
+ source.each_pair do |key, value|
76
+ hash[to_external_encoding(key)] = to_external_encoding(value)
77
+ end
78
+ hash
79
+ else ; source.respond_to?(:to_external_encoding) ? source.to_external_encoding : source
80
+ end
81
+ end
82
+
83
+ else
84
+ # 内部エンコーディング文字列化(ダミー)
85
+ #
86
+ # @param [String] string もとにする String または M17n
87
+ #
88
+ # @return [String] そのまま返す
89
+ #
90
+ def to_internal_encoding(string)
91
+ string
92
+ end
93
+ #
94
+ # 外部エンコーディング文字列化(ダミー)
95
+ #
96
+ # @param [String] string もとにする String または M17n
97
+ #
98
+ # @return [String] そのまま返す
99
+ #
100
+ def to_external_encoding(string)
101
+ string
102
+ end
103
+ end
104
+ end
105
+
106
+ #
107
+ # 内部エンコーディング文字列化
108
+ #
109
+ def to_internal_encoding
110
+ EncodingConversion.to_internal_encoding(self)
111
+ end
112
+
113
+ #
114
+ # 外部エンコーディング文字列化
115
+ #
116
+ def to_external_encoding
117
+ EncodingConversion.to_external_encoding(self)
118
+ end
119
+
120
+ #
121
+ # 内部エンコーディング文字列化(単項)
122
+ #
123
+ def +@
124
+ to_internal_encoding
125
+ end
126
+
127
+ #
128
+ # 外部エンコーディング文字列化(単項)
129
+ #
130
+ def -@
131
+ to_external_encoding
132
+ end
133
+ end
134
+ end
@@ -1,90 +1,90 @@
1
- # -*- coding: utf-8 -*-
2
- =begin
3
- Copyright (C) 2014 Takashi SUGA
4
-
5
- You may use and/or modify this file according to the license described in the LICENSE.txt file included in this archive.
6
- =end
7
-
8
- require 'when_exe/locales/transliteration_table'
9
-
10
- module When
11
- module Locale
12
-
13
- _IAST_Part_I = {
14
- "A" => "अ", "a" => "अ",
15
- "Ā" => "आ", "ā" => "आ",
16
- "I" => "इ", "i" => "इ",
17
- "Ī" => "ई", "ī" => "ई",
18
- "U" => "उ", "u" => "उ",
19
- "Ū" => "ऊ", "ū" => "ऊ",
20
- "Ṛ" => "ऋ", "ṛ" => "ऋ",
21
- "Ṝ" => "ॠ", "ṝ" => "ॠ",
22
- "Ḷ" => "ऌ", "ḷ" => "ऌ",
23
- "Ḹ" => "ॡ", "ḹ" => "ॡ",
24
- "E" => "ए", "e" => "ए",
25
- "Ai" => "ऐ", "ai" => "ऐ",
26
- "O" => "ओ", "o" => "ओ",
27
- "Au" => "औ", "au" => "औ",
28
- "Ṃ" => "अं", "ṃ" => "अं",
29
- "Ḥ" => "अः", "ḥ" => "अः",
30
- "'" => "अऽ",
31
-
32
- "K" => "क", "k" => "क",
33
- "C" => "च", "c" => "च",
34
- "Ṭ" => "ट", "ṭ" => "ट",
35
- "T" => "त", "t" => "त",
36
- "P" => "प", "p" => "प",
37
- "Kh" => "ख", "kh" => "ख",
38
- "Ch" => "छ", "ch" => "छ",
39
- "Ṭh" => "ठ", "ṭh" => "ठ",
40
- "Th" => "थ", "th" => "थ",
41
- "Ph" => "फ", "ph" => "फ",
42
- "G" => "ग", "g" => "ग",
43
- "J" => "ज", "j" => "ज",
44
- "Ḍ" => "ड", "ḍ" => "ड",
45
- "D" => "द", "d" => "द",
46
- "B" => "ब", "b" => "ब",
47
- "Gh" => "घ", "gh" => "घ",
48
- "Jh" => "झ", "jh" => "झ",
49
- "Ḍh" => "ढ", "ḍh" => "ढ",
50
- "Dh" => "ध", "dh" => "ध",
51
- "Bh" => "भ", "bh" => "भ",
52
- "Ṅ" => "ङ", "ṅ" => "ङ",
53
- "Ñ" => "ञ", "ñ" => "ञ",
54
- "Ṇ" => "ण", "ṇ" => "ण",
55
- "N" => "न", "n" => "न",
56
- "M" => "म", "m" => "म",
57
- "H" => "ह", "h" => "ह",
58
- "Y" => "य", "y" => "य",
59
- "R" => "र", "r" => "र",
60
- "L" => "ल", "l" => "ल",
61
- "V" => "व", "v" => "व",
62
- "Ś" => "श", "ś" => "श",
63
- "Ṣ" => "ष", "ṣ" => "ष",
64
- "S" => "स", "s" => "स"
65
- }
66
-
67
- _IAST_Part_II = {
68
- "R̥" => "ऋ", "r̥" => "ऋ",
69
- "R̥̄" => "ॠ", "r̥̄" => "ॠ",
70
- "Ē" => "ए", "ē" => "ए",
71
- "Ō" => "ओ", "ō" => "ओ",
72
- "Ṁ" => "अं", "ṁ" => "अं"
73
- }
74
-
75
- #
76
- # IAST: International Alphabet of Sanskrit Transliteration
77
- #
78
- IAST = {
79
- 'hi' => _IAST_Part_I.merge(_IAST_Part_II)
80
- }
81
-
82
- #
83
- # IASTR: International Alphabet of Sanskrit Transliteration - Reverse
84
- #
85
- IASTR = {
86
- 'hi' => _IAST_Part_I.invert
87
- }
88
-
89
- end
90
- end
1
+ # -*- coding: utf-8 -*-
2
+ =begin
3
+ Copyright (C) 2014 Takashi SUGA
4
+
5
+ You may use and/or modify this file according to the license described in the LICENSE.txt file included in this archive.
6
+ =end
7
+
8
+ require 'when_exe/locales/transliteration_table'
9
+
10
+ module When
11
+ module Locale
12
+
13
+ _IAST_Part_I = {
14
+ "A" => "अ", "a" => "अ",
15
+ "Ā" => "आ", "ā" => "आ",
16
+ "I" => "इ", "i" => "इ",
17
+ "Ī" => "ई", "ī" => "ई",
18
+ "U" => "उ", "u" => "उ",
19
+ "Ū" => "ऊ", "ū" => "ऊ",
20
+ "Ṛ" => "ऋ", "ṛ" => "ऋ",
21
+ "Ṝ" => "ॠ", "ṝ" => "ॠ",
22
+ "Ḷ" => "ऌ", "ḷ" => "ऌ",
23
+ "Ḹ" => "ॡ", "ḹ" => "ॡ",
24
+ "E" => "ए", "e" => "ए",
25
+ "Ai" => "ऐ", "ai" => "ऐ",
26
+ "O" => "ओ", "o" => "ओ",
27
+ "Au" => "औ", "au" => "औ",
28
+ "Ṃ" => "अं", "ṃ" => "अं",
29
+ "Ḥ" => "अः", "ḥ" => "अः",
30
+ "'" => "अऽ",
31
+
32
+ "K" => "क", "k" => "क",
33
+ "C" => "च", "c" => "च",
34
+ "Ṭ" => "ट", "ṭ" => "ट",
35
+ "T" => "त", "t" => "त",
36
+ "P" => "प", "p" => "प",
37
+ "Kh" => "ख", "kh" => "ख",
38
+ "Ch" => "छ", "ch" => "छ",
39
+ "Ṭh" => "ठ", "ṭh" => "ठ",
40
+ "Th" => "थ", "th" => "थ",
41
+ "Ph" => "फ", "ph" => "फ",
42
+ "G" => "ग", "g" => "ग",
43
+ "J" => "ज", "j" => "ज",
44
+ "Ḍ" => "ड", "ḍ" => "ड",
45
+ "D" => "द", "d" => "द",
46
+ "B" => "ब", "b" => "ब",
47
+ "Gh" => "घ", "gh" => "घ",
48
+ "Jh" => "झ", "jh" => "झ",
49
+ "Ḍh" => "ढ", "ḍh" => "ढ",
50
+ "Dh" => "ध", "dh" => "ध",
51
+ "Bh" => "भ", "bh" => "भ",
52
+ "Ṅ" => "ङ", "ṅ" => "ङ",
53
+ "Ñ" => "ञ", "ñ" => "ञ",
54
+ "Ṇ" => "ण", "ṇ" => "ण",
55
+ "N" => "न", "n" => "न",
56
+ "M" => "म", "m" => "म",
57
+ "H" => "ह", "h" => "ह",
58
+ "Y" => "य", "y" => "य",
59
+ "R" => "र", "r" => "र",
60
+ "L" => "ल", "l" => "ल",
61
+ "V" => "व", "v" => "व",
62
+ "Ś" => "श", "ś" => "श",
63
+ "Ṣ" => "ष", "ṣ" => "ष",
64
+ "S" => "स", "s" => "स"
65
+ }
66
+
67
+ _IAST_Part_II = {
68
+ "R̥" => "ऋ", "r̥" => "ऋ",
69
+ "R̥̄" => "ॠ", "r̥̄" => "ॠ",
70
+ "Ē" => "ए", "ē" => "ए",
71
+ "Ō" => "ओ", "ō" => "ओ",
72
+ "Ṁ" => "अं", "ṁ" => "अं"
73
+ }
74
+
75
+ #
76
+ # IAST: International Alphabet of Sanskrit Transliteration
77
+ #
78
+ IAST = {
79
+ 'hi' => _IAST_Part_I.merge(_IAST_Part_II)
80
+ }
81
+
82
+ #
83
+ # IASTR: International Alphabet of Sanskrit Transliteration - Reverse
84
+ #
85
+ IASTR = {
86
+ 'hi' => _IAST_Part_I.invert
87
+ }
88
+
89
+ end
90
+ end