when_exe 0.4.2 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
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