when_exe 0.3.5 → 0.3.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (194) hide show
  1. data/bin/irb.rc +1 -0
  2. data/bin/locales.rb +8 -6
  3. data/bin/when.rb +1 -1
  4. data/lib/when_exe.rb +231 -146
  5. data/lib/when_exe/basictypes.rb +108 -18
  6. data/lib/when_exe/calendarnote.rb +263 -116
  7. data/lib/when_exe/calendartypes.rb +413 -22
  8. data/lib/when_exe/coordinates.rb +58 -36
  9. data/lib/when_exe/core/compatibility.rb +8 -6
  10. data/lib/when_exe/core/extension.rb +40 -15
  11. data/lib/when_exe/ephemeris.rb +20 -19
  12. data/lib/when_exe/{region → ephemeris}/moon.rb +4 -4
  13. data/lib/when_exe/{region/ephemeric_notes.rb → ephemeris/notes.rb} +25 -6
  14. data/lib/when_exe/{region → ephemeris}/planets.rb +0 -0
  15. data/lib/when_exe/{region → ephemeris}/sun.rb +7 -3
  16. data/lib/when_exe/{region → ephemeris}/v50.rb +0 -0
  17. data/lib/when_exe/googlecalendar.rb +2 -2
  18. data/lib/when_exe/icalendar.rb +3 -3
  19. data/lib/when_exe/inspect.rb +130 -70
  20. data/lib/when_exe/locales/af.rb +2 -2
  21. data/lib/when_exe/locales/akt.rb +176 -0
  22. data/lib/when_exe/locales/ar.rb +2 -2
  23. data/lib/when_exe/locales/{locales.rb → autoload.rb} +6 -2
  24. data/lib/when_exe/locales/az.rb +2 -2
  25. data/lib/when_exe/locales/bg.rb +2 -2
  26. data/lib/when_exe/locales/bn.rb +2 -2
  27. data/lib/when_exe/locales/bs.rb +2 -2
  28. data/lib/when_exe/locales/ca.rb +2 -2
  29. data/lib/when_exe/locales/cs.rb +2 -2
  30. data/lib/when_exe/locales/cy.rb +2 -2
  31. data/lib/when_exe/locales/da.rb +2 -2
  32. data/lib/when_exe/locales/de.rb +2 -2
  33. data/lib/when_exe/locales/de_AT.rb +2 -2
  34. data/lib/when_exe/locales/de_CH.rb +2 -2
  35. data/lib/when_exe/locales/el.rb +2 -2
  36. data/lib/when_exe/locales/en.rb +2 -2
  37. data/lib/when_exe/locales/en_AU.rb +2 -2
  38. data/lib/when_exe/locales/en_CA.rb +2 -2
  39. data/lib/when_exe/locales/en_GB.rb +2 -2
  40. data/lib/when_exe/locales/en_IE.rb +2 -2
  41. data/lib/when_exe/locales/en_IN.rb +3 -3
  42. data/lib/when_exe/locales/en_NZ.rb +2 -2
  43. data/lib/when_exe/locales/en_US.rb +2 -2
  44. data/lib/when_exe/locales/en_ZA.rb +88 -0
  45. data/lib/when_exe/locales/encoding_conversion.rb +126 -0
  46. data/lib/when_exe/locales/eo.rb +2 -2
  47. data/lib/when_exe/locales/es.rb +2 -2
  48. data/lib/when_exe/locales/es_419.rb +2 -2
  49. data/lib/when_exe/locales/es_AR.rb +2 -2
  50. data/lib/when_exe/locales/es_CL.rb +2 -2
  51. data/lib/when_exe/locales/es_CO.rb +2 -2
  52. data/lib/when_exe/locales/es_CR.rb +2 -2
  53. data/lib/when_exe/locales/es_EC.rb +2 -2
  54. data/lib/when_exe/locales/es_MX.rb +2 -2
  55. data/lib/when_exe/locales/es_PA.rb +2 -2
  56. data/lib/when_exe/locales/es_PE.rb +2 -2
  57. data/lib/when_exe/locales/es_US.rb +84 -0
  58. data/lib/when_exe/locales/es_VE.rb +2 -2
  59. data/lib/when_exe/locales/et.rb +2 -2
  60. data/lib/when_exe/locales/eu.rb +2 -2
  61. data/lib/when_exe/locales/fa.rb +2 -2
  62. data/lib/when_exe/locales/fi.rb +3 -3
  63. data/lib/when_exe/locales/fr.rb +2 -2
  64. data/lib/when_exe/locales/fr_CA.rb +2 -2
  65. data/lib/when_exe/locales/fr_CH.rb +2 -2
  66. data/lib/when_exe/locales/gl.rb +2 -2
  67. data/lib/when_exe/locales/he.rb +3 -3
  68. data/lib/when_exe/locales/hi.rb +2 -2
  69. data/lib/when_exe/locales/hi_IN.rb +2 -2
  70. data/lib/when_exe/locales/hr.rb +2 -2
  71. data/lib/when_exe/locales/hu.rb +6 -5
  72. data/lib/when_exe/locales/iast.rb +90 -0
  73. data/lib/when_exe/locales/id.rb +2 -2
  74. data/lib/when_exe/locales/is.rb +2 -2
  75. data/lib/when_exe/locales/it.rb +2 -2
  76. data/lib/when_exe/locales/it_CH.rb +2 -2
  77. data/lib/when_exe/locales/ja.rb +2 -2
  78. data/lib/when_exe/locales/kn.rb +2 -2
  79. data/lib/when_exe/locales/ko.rb +2 -2
  80. data/lib/when_exe/locales/links.rb +3 -3
  81. data/lib/when_exe/locales/lo.rb +2 -2
  82. data/lib/when_exe/{parts → locales}/locale.rb +77 -49
  83. data/lib/when_exe/locales/lt.rb +6 -2
  84. data/lib/when_exe/locales/lv.rb +2 -2
  85. data/lib/when_exe/locales/mk.rb +2 -2
  86. data/lib/when_exe/locales/mn.rb +2 -2
  87. data/lib/when_exe/locales/ms.rb +2 -2
  88. data/lib/when_exe/locales/nb.rb +2 -2
  89. data/lib/when_exe/locales/ne.rb +2 -2
  90. data/lib/when_exe/locales/nl.rb +2 -2
  91. data/lib/when_exe/locales/nn.rb +2 -2
  92. data/lib/when_exe/locales/or.rb +2 -2
  93. data/lib/when_exe/locales/pl.rb +2 -2
  94. data/lib/when_exe/locales/pt.rb +2 -2
  95. data/lib/when_exe/locales/pt_BR.rb +2 -2
  96. data/lib/when_exe/locales/rm.rb +2 -2
  97. data/lib/when_exe/locales/ro.rb +2 -2
  98. data/lib/when_exe/locales/ru.rb +2 -2
  99. data/lib/when_exe/locales/sk.rb +2 -2
  100. data/lib/when_exe/locales/sl.rb +2 -2
  101. data/lib/when_exe/locales/sr.rb +2 -2
  102. data/lib/when_exe/locales/sv.rb +2 -2
  103. data/lib/when_exe/locales/sw.rb +2 -2
  104. data/lib/when_exe/locales/ta.rb +95 -0
  105. data/lib/when_exe/locales/th.rb +2 -2
  106. data/lib/when_exe/locales/tl.rb +3 -3
  107. data/lib/when_exe/locales/tr.rb +2 -2
  108. data/lib/when_exe/locales/transliteration_table.rb +62 -0
  109. data/lib/when_exe/locales/uk.rb +15 -15
  110. data/lib/when_exe/locales/ur.rb +2 -2
  111. data/lib/when_exe/locales/uz.rb +2 -2
  112. data/lib/when_exe/locales/vi.rb +2 -2
  113. data/lib/when_exe/locales/wo.rb +2 -2
  114. data/lib/when_exe/locales/zh_CN.rb +2 -2
  115. data/lib/when_exe/locales/zh_HK.rb +15 -15
  116. data/lib/when_exe/locales/zh_TW.rb +2 -2
  117. data/lib/when_exe/locales/zh_YUE.rb +77 -0
  118. data/lib/when_exe/mini_application.rb +22 -12
  119. data/lib/when_exe/parts/geometric_complex.rb +16 -1
  120. data/lib/when_exe/parts/method_cash.rb +184 -238
  121. data/lib/when_exe/parts/resource.rb +65 -16
  122. data/lib/when_exe/region/armenian.rb +56 -0
  123. data/lib/when_exe/region/bahai.rb +13 -13
  124. data/lib/when_exe/region/balinese.rb +33 -35
  125. data/lib/when_exe/region/chinese.rb +82 -78
  126. data/lib/when_exe/region/{chinese_calendar.rb → chinese/calendars.rb} +59 -40
  127. data/lib/when_exe/region/{chinese_epoch.rb → chinese/epochs.rb} +3 -4
  128. data/lib/when_exe/region/{chinese_twin.rb → chinese/twins.rb} +48 -51
  129. data/lib/when_exe/region/christian.rb +236 -127
  130. data/lib/when_exe/region/coptic.rb +9 -10
  131. data/lib/when_exe/region/dee.rb +48 -0
  132. data/lib/when_exe/region/discordian.rb +225 -0
  133. data/lib/when_exe/region/far_east.rb +2 -6
  134. data/lib/when_exe/region/french.rb +7 -17
  135. data/lib/when_exe/region/geologicalage.rb +0 -1
  136. data/lib/when_exe/region/goddess.rb +58 -0
  137. data/lib/when_exe/region/indian.rb +323 -231
  138. data/lib/when_exe/region/iranian.rb +159 -22
  139. data/lib/when_exe/region/islamic.rb +7 -9
  140. data/lib/when_exe/region/japanese.rb +14 -803
  141. data/lib/when_exe/region/japanese/calendars.rb +397 -0
  142. data/lib/when_exe/region/japanese/epochs.rb +426 -0
  143. data/lib/when_exe/region/{nihon_shoki.rb → japanese/nihon_shoki.rb} +0 -2
  144. data/lib/when_exe/region/{japanese_notes.rb → japanese/notes.rb} +179 -150
  145. data/lib/when_exe/region/japanese/residues.rb +1306 -0
  146. data/lib/when_exe/region/{japanese_twin.rb → japanese/twins.rb} +12 -15
  147. data/lib/when_exe/region/javanese.rb +16 -14
  148. data/lib/when_exe/region/jewish.rb +8 -9
  149. data/lib/when_exe/region/korean.rb +146 -35
  150. data/lib/when_exe/region/m17n.rb +8 -10
  151. data/lib/when_exe/region/martian.rb +44 -16
  152. data/lib/when_exe/region/mayan.rb +12 -10
  153. data/lib/when_exe/region/pope.rb +0 -1
  154. data/lib/when_exe/region/residue.rb +4 -5
  155. data/lib/when_exe/region/roman.rb +20 -24
  156. data/lib/when_exe/region/ryukyu.rb +3 -4
  157. data/lib/when_exe/region/shire.rb +97 -94
  158. data/lib/when_exe/region/symmetry.rb +50 -0
  159. data/lib/when_exe/region/thai.rb +164 -56
  160. data/lib/when_exe/region/tibetan.rb +86 -86
  161. data/lib/when_exe/region/vietnamese.rb +9 -12
  162. data/lib/when_exe/region/weekdate.rb +80 -0
  163. data/lib/when_exe/region/world.rb +65 -70
  164. data/lib/when_exe/region/yerm.rb +98 -0
  165. data/lib/when_exe/region/zoroastrian.rb +203 -0
  166. data/lib/when_exe/timestandard.rb +4 -4
  167. data/lib/when_exe/tmobjects.rb +1 -3
  168. data/lib/when_exe/tmposition.rb +13 -12
  169. data/lib/when_exe/tmreference.rb +11 -10
  170. data/lib/when_exe/version.rb +1 -1
  171. data/link_to_online_documents +3 -3
  172. data/test/examples/Residue.m17n +1 -1
  173. data/test/examples/Terms.m17n +1 -1
  174. data/test/test.rb +2 -1
  175. data/test/test/basictypes.rb +18 -2
  176. data/test/test/calendarnote.rb +1 -1
  177. data/test/test/calendartypes.rb +1 -1
  178. data/test/test/coordinates.rb +7 -7
  179. data/test/test/{region → ephemeris}/moon.rb +0 -0
  180. data/test/test/{region → ephemeris}/planets.rb +0 -0
  181. data/test/test/{region → ephemeris}/sun.rb +0 -0
  182. data/test/test/parts.rb +8 -13
  183. data/test/test/region/christian.rb +245 -0
  184. data/test/test/region/french.rb +16 -16
  185. data/test/test/region/iran.rb +34 -34
  186. data/test/test/region/japanese.rb +6 -4
  187. data/test/test/region/m17n.rb +8 -7
  188. data/test/test/region/mayan.rb +12 -12
  189. data/test/test/region/residue.rb +20 -4
  190. data/test/test/region/thai.rb +25 -3
  191. data/test/test/region/yerm.rb +146 -0
  192. metadata +39 -20
  193. data/lib/when_exe/region/japanese_residues.rb +0 -1212
  194. data/test/test/region/civil.rb +0 -124
@@ -18,6 +18,23 @@ module When::Parts
18
18
  # @private
19
19
  LabelProperty = nil
20
20
 
21
+ # @private
22
+ ConstTypes = {
23
+ 'Terms' => ['BasicTypes::M17n', '%s', '_m:%s%s' ],
24
+ 'Era' => ['TM::CalendarEra', '%s', '_e:%s%s' ],
25
+ 'Residue' => ['Coordinates', '%s', '_co:%s%s' ],
26
+ 'Week' => ['CalendarNote', '%sWeek', '_n:%sWeek%s' ],
27
+ 'Note' => ['CalendarNote', '%s', '_n:%s%s' ],
28
+ 'Notes' => ['CalendarNote', '%s', '_n:%s/Notes%s'],
29
+ nil => ['CalendarTypes', '%s', '_c:%s%s' ]
30
+ }
31
+
32
+ # @private
33
+ ConstList = []
34
+
35
+ # private
36
+ IRIHeader = /^[_a-z\d]+:[^:]/i
37
+
21
38
  # @private
22
39
  class ContentLine
23
40
 
@@ -155,6 +172,26 @@ module When::Parts
155
172
  @root_dir ||= When::RootDir
156
173
  end
157
174
 
175
+ #
176
+ # 略称を iri に変換する
177
+ #
178
+ # @param [String or Symbol] abbreviation 略称
179
+ #
180
+ # @return [String] iri or nil
181
+ #
182
+ # @private
183
+ def _abbreviation_to_iri(abbreviation, abbreviation_types=ConstTypes)
184
+ abbreviation_types[:pattern] ||= /^([A-Z].*?)(#{abbreviation_types.keys.compact.join('|')})?(\?.+|::.+)?$/
185
+ abbreviation =~ abbreviation_types[:pattern]
186
+ return nil unless $1
187
+ klass, name, iri = abbreviation_types[$2]
188
+ if klass.kind_of?(String)
189
+ klass = klass.split('::').inject(When) {|k,n| k.const_get(n)}
190
+ abbreviation_types[$2][0] = klass
191
+ end
192
+ klass.const_defined?(name % $1) ? iri % [$1,$3] : nil
193
+ end
194
+
158
195
  # @private
159
196
  attr_reader :_prefix, :_prefix_values, :_prefix_index
160
197
  private :_prefix, :_prefix_values, :_prefix_index
@@ -162,8 +199,9 @@ module When::Parts
162
199
  # 初期化
163
200
  #
164
201
  # @param [Hash] options 以下の通り
165
- # @option options [String] :base_uri Base URI for When_exe Resources (Default When::SourceURI)
166
- # @option options [String] :root_dir Root Directory for When_exe Resources Cash data (Default When::RootDir)
202
+ # @option options [String] :base_uri Base URI for When_exe Resources (Default When::SourceURI)
203
+ # @option options [String] :root_dir Root Directory for When_exe Resources Cash data (Default When::RootDir)
204
+ # @option options [Boolean] :leave_const If true, leave Constants of When module defined
167
205
  #
168
206
  # @return [void]
169
207
  #
@@ -196,6 +234,13 @@ module When::Parts
196
234
  @root_dir = options[:root_dir] || When::RootDir
197
235
  @_prefix_values = @_prefix.values.sort.reverse
198
236
  @_prefix_index = @_prefix.invert
237
+ unless options[:leave_const] || ConstList.empty?
238
+ ConstList.delete_if do |constant|
239
+ When.send(:remove_const, constant) if When.const_defined?(constant)
240
+ true
241
+ end
242
+ When._define_common_calendar_types
243
+ end
199
244
  end
200
245
 
201
246
  # 設定情報を取得する
@@ -219,16 +264,20 @@ module When::Parts
219
264
  def _instance(iri, namespace=nil)
220
265
  _setup_ unless @_pool
221
266
 
222
- # 配列は個別に処理
223
- return iri.map {|e| _instance(e, namespace)} if iri.kind_of?(Array)
267
+ case iri
268
+ when Array ; return iri.map {|e| _instance(e, namespace)} # 配列は個別に処理
269
+ when Resource ; return iri # 登録済みはそのまま
270
+ when String ; # 解析処理へ
271
+ else ; raise ArgumentError, "can't convert #{iri.class} to String" # 例外
272
+ end
224
273
 
225
- # 文字列以外はそのまま返す
226
- return iri unless iri.instance_of?(String)
274
+ # 内部文字列化
275
+ iri = When::EncodingConversion.to_internal_encoding(iri)
227
276
 
228
277
  # 階層がある場合は、階層をたどる
229
278
  iri = Resource._decode(iri)
230
279
  iri = $1 while iri =~ /^\((.*)\)$/
231
- iri = namespace + iri if namespace && iri !~ /^[_a-z\d]+:[^:]/i
280
+ iri = namespace + iri if namespace && iri !~ IRIHeader
232
281
  root, *leaves= Resource._encode(iri).split(/::/)
233
282
  if leaves.size > 0
234
283
  return leaves.inject(_instance(Resource._decode(root))) {|obj,leaf| obj[Resource._decode(leaf)]}
@@ -278,9 +327,9 @@ module When::Parts
278
327
  def _parse(line, type=nil)
279
328
  return line unless line.kind_of?(String)
280
329
  line.sub!(/\s#.*$/, '')
281
- return Locale._split($1) if type && /^#{type}:(.+)$/i =~ line
330
+ return When::Locale._split($1) if type && /^#{type}:(.+)$/i =~ line
282
331
  tokens = line.scan(/((?:[^\\:]|\\.)+)(?::(?!\z))?|:/).flatten
283
- return Locale._split(line) unless tokens.size > 1 && /^(\*)?([A-Z][-A-Z_]{0,255})(?:;(.+))?$/i =~ tokens[0]
332
+ return When::Locale._split(line) unless tokens.size > 1 && /^(\*)?([A-Z][-A-Z_]{0,255})(?:;(.+))?$/i =~ tokens[0]
284
333
  marked, key, property = $~[1..3]
285
334
  values = tokens[1..-1]
286
335
  value = values.join(':') unless values == [nil]
@@ -410,7 +459,7 @@ module When::Parts
410
459
 
411
460
  # external Resource
412
461
  begin
413
- object = When::Parts::Locale.send(:wikipedia_object, path, {:query=>query})
462
+ object = When::Locale.send(:wikipedia_object, path, {:query=>query})
414
463
  return object if object
415
464
  OpenURI
416
465
  args = [path, "1".respond_to?(:force_encoding) ? 'r:utf-8' : 'r']
@@ -442,10 +491,10 @@ module When::Parts
442
491
  def _class(path)
443
492
  list = [When]
444
493
  path[Resource.base_uri.length..-1].split(/\//).each do |mod|
445
- if list[0].const_defined?(mod)
494
+ if list[0].kind_of?(Module) && list[0].const_defined?(mod)
446
495
  list.unshift(list[0].const_get(mod))
447
496
  else
448
- return nil unless (list[0] == When::V)
497
+ return nil unless list[0] == When::V
449
498
  list.unshift(When::V::Root)
450
499
  return list
451
500
  end
@@ -866,8 +915,8 @@ module When::Parts
866
915
  options.each_pair do |key,value|
867
916
  unless (key =~ /^options$|^\.|^[A-Z]/)
868
917
  case "#{key}"
869
- when 'namespace' ; value = Locale._namespace(value)
870
- when 'locale' ; value = Locale._locale(value)
918
+ when 'namespace' ; value = When::Locale._namespace(value)
919
+ when 'locale' ; value = When::Locale._locale(value)
871
920
  end
872
921
  instance_variable_set("@#{key}", value)
873
922
  end
@@ -896,10 +945,10 @@ module When::Parts
896
945
  if content.attribute['altid']
897
946
  options[key][content.attribute['prefix'].object] = content.object
898
947
  else
899
- options[key] = options[key].update(Locale._namespace(value))
948
+ options[key] = options[key].update(When::Locale._namespace(value))
900
949
  end
901
950
  when 'locale'
902
- options[key] = Locale._locale(value)
951
+ options[key] = When::Locale._locale(value)
903
952
  else
904
953
  _parse_altid(properties, content)
905
954
  key_list << key unless key_list.include?(key)
@@ -0,0 +1,56 @@
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
+ class BasicTypes::M17n
11
+
12
+ Armenian = [self, [
13
+ "locale:[=en:, ja=ja:, alias]",
14
+ "names:[Armenian=]",
15
+ "[Armenian=en:Armenian_calendar, アルメニア暦=]",
16
+
17
+ [self,
18
+ "names:[Month=, 月=ja:%%<月_(暦)>]",
19
+ "[nawasard= ]",
20
+ "[hoṙi= ]",
21
+ "[sahmi= ]",
22
+ "[trē= ]",
23
+ "[kʿałocʿ= ]",
24
+ "[aracʿ= ]",
25
+ "[mehekan= ]",
26
+ "[areg= ]",
27
+ "[ahekan= ]",
28
+ "[mareri= ]",
29
+ "[margacʿ= ]",
30
+ "[hroticʿ= ]",
31
+ "[epagomenê=]"
32
+ ]
33
+ ]]
34
+ end
35
+
36
+ module CalendarTypes
37
+
38
+ #
39
+ # Armenian Calendar
40
+ #
41
+ Armenian = [CyclicTableBased, {
42
+ 'label' => 'Armenian::Armenian',
43
+ 'origin_of_LSC' => 1922868,
44
+ 'origin_of_MSC' => 1,
45
+ 'epoch_in_CE' => 552,
46
+ 'indices' => [
47
+ When.Index('Armenian::Month', {:unit =>13}),
48
+ When::Coordinates::DefaultDayIndex
49
+ ],
50
+ 'rule_table' => {
51
+ 'T' => {'Rule' =>[365]},
52
+ 365 => {'Length'=>[30]*12+[5]}
53
+ }
54
+ }]
55
+ end
56
+ end
@@ -8,10 +8,9 @@
8
8
  module When
9
9
  class BasicTypes::M17n
10
10
 
11
- BahaiTerms = [self, [
12
- "namespace:[en=http://en.wikipedia.org/wiki/, ja=http://ja.wikipedia.org/wiki/, ar=http://ar.wikipedia.org/wiki/]",
11
+ Bahai = [self, [
13
12
  "locale:[=en:, ar=ar:, alias=en:]",
14
- "names:[BahaiTerms=]",
13
+ "names:[Bahai=]",
15
14
  "[Bahai=en:Bah%C3%A1%27%C3%AD_calendar, ja:バハーイー暦=ja:%%<バハーイー教>]",
16
15
 
17
16
  # %0s は“閏”の表記を抑制する指定となっている
@@ -41,16 +40,19 @@ module When
41
40
  ]]
42
41
  end
43
42
 
43
+ class CalendarNote
44
+ Bahai = [['Bahai::YearName'], ['_m:Bahai::Month'], ['Common::Week']]
45
+ end
46
+
44
47
  module Coordinates
45
48
 
46
49
  # Bahai years
47
50
  Bahai = [When::BasicTypes::M17n, [
48
- "namespace:[en=http://en.wikipedia.org/wiki/, ja=http://ja.wikipedia.org/wiki/, ar=http://ar.wikipedia.org/wiki/]",
49
51
  "locale:[=en:, ar=ar:, alias=en:]",
50
52
  "names:[Bahai]",
51
53
 
52
54
  [Residue,
53
- "label:[YearName]", "divisor:19", "year:0", "format:[%1$s(%3$d)]",
55
+ "label:[YearName]", "divisor:19", "year:0", "format:[%1$s(%3$d)=]",
54
56
  [Residue, "label:[Alif=, ألف=, A= ]", "remainder: 0"],
55
57
  [Residue, "label:[Bá=, باء=, B= ]", "remainder: 1"],
56
58
  [Residue, "label:[Ab=, أب=, Father= ]", "remainder: 2"],
@@ -112,28 +114,26 @@ module When
112
114
  # オブジェクトの正規化
113
115
  #
114
116
  def _normalize(args=[], options={})
115
- @label ||= When.Resource('_m:BahaiTerms::Bahai')
117
+ @label ||= 'Bahai::Bahai'
116
118
 
117
119
  @indices ||= [
118
- When::Coordinates::Index.new({:unit =>19}),
119
- When::Coordinates::Index.new({:unit =>19}),
120
- When::Coordinates::Index.new({:trunk=>When.Resource('_m:BahaiTerms::Month::*'),
121
- :branch=>{+1=>When.Resource('_m:BahaiTerms::Month::*')[19]}}),
120
+ When.Index({:unit =>19}),
121
+ When.Index({:unit =>19}),
122
+ When.Index('Bahai::Month', {:branch=>{+1=>When.Resource('_m:Bahai::Month::*')[19]}}),
122
123
  When::Coordinates::DefaultDayIndex
123
124
  ]
124
- @index_of_MSC ||= 2
125
125
  @origin_of_MSC ||= -1844 + 19*19
126
126
  @rule_table ||= {
127
127
  365 => {'Length'=>[19] * 18 + [4, 19], 'IDs'=>ID},
128
128
  366 => {'Length'=>[19] * 18 + [5, 19], 'IDs'=>ID}
129
129
  }
130
- @note ||= 'BahaiNotes'
130
+ @note ||= 'Bahai'
131
131
 
132
132
  super
133
133
 
134
134
  @engine ||= @location ?
135
135
  When::Ephemeris::Formula.new({:formula=>'1S', :location=>@location}) :
136
- When.Calendar('Gregorian')
136
+ When::Gregorian
137
137
 
138
138
  case @engine
139
139
  when When::Ephemeris::Formula; instance_eval('class << self; alias :_sdn_ :ephemeris_equinox; end')
@@ -8,12 +8,11 @@
8
8
  module When
9
9
  class BasicTypes::M17n
10
10
 
11
- BalineseTerms = [self, [
12
- "namespace:[en=http://en.wikipedia.org/wiki/, ja=http://ja.wikipedia.org/wiki/]",
11
+ Balinese = [self, [
13
12
  "locale:[=en:, ja=ja:, alias]",
14
- "names:[BalineseTerms=]",
13
+ "names:[Balinese=]",
15
14
  "[BalineseLuniSolar=, バリ・サカ暦=]",
16
- "[Tenganan=, テンガナン暦=]",
15
+ "[Tenganan, テンガナン暦=]",
17
16
 
18
17
  [self,
19
18
  "names:[IntercalaryMonth=en:Intercalation, 閏月]",
@@ -90,40 +89,40 @@ module When
90
89
  # 2日週
91
90
  # @return [When::BasicTypes::M17n]
92
91
  def dwiwara
93
- When.CalendarNote('BalineseNote/NoteObjects')['day']['Dwiwara'][Dwiwara[@remainder % 35]]
92
+ When.CalendarNote('Balinese/Notes')['day']['Dwiwara'][Dwiwara[@remainder % 35]]
94
93
  end
95
94
 
96
95
  # 4日週
97
96
  # @return [When::BasicTypes::M17n]
98
97
  def tjaturwara
99
98
  index = (@remainder + 137) % 210
100
- When.CalendarNote('BalineseNote/NoteObjects')['day']['Tjaturwara'][index >= 208 ? 2 : (index-1) % 4]
99
+ When.CalendarNote('Balinese/Notes')['day']['Tjaturwara'][index >= 208 ? 2 : (index-1) % 4]
101
100
  end
102
101
 
103
102
  # 8日週
104
103
  # @return [When::BasicTypes::M17n]
105
104
  def astawara
106
105
  index = (@remainder + 137) % 210
107
- When.CalendarNote('BalineseNote/NoteObjects')['day']['Astawara'][index >= 208 ? 6 : (index-1) % 8]
106
+ When.CalendarNote('Balinese/Notes')['day']['Astawara'][index >= 208 ? 6 : (index-1) % 8]
108
107
  end
109
108
 
110
109
  # 9日週
111
110
  # @return [When::BasicTypes::M17n]
112
111
  def sangawara
113
112
  index = @remainder - 3
114
- When.CalendarNote('BalineseNote/NoteObjects')['day']['Sangawara'][index < 0 ? 0 : index % 9]
113
+ When.CalendarNote('Balinese/Notes')['day']['Sangawara'][index < 0 ? 0 : index % 9]
115
114
  end
116
115
 
117
116
  # 10日週
118
117
  # @return [When::BasicTypes::M17n]
119
118
  def dasawara
120
- When.CalendarNote('BalineseNote/NoteObjects')['day']['Dasawara'][Dasawara[@remainder % 35]]
119
+ When.CalendarNote('Balinese/Notes')['day']['Dasawara'][Dasawara[@remainder % 35]]
121
120
  end
122
121
 
123
122
  # Watek
124
123
  # @return [When::BasicTypes::M17n]
125
124
  def watek
126
- When.CalendarNote('BalineseNote/NoteObjects')['day']['Watek'][Watek[@remainder % 35]]
125
+ When.CalendarNote('Balinese/Notes')['day']['Watek'][Watek[@remainder % 35]]
127
126
  end
128
127
  end
129
128
  end
@@ -134,13 +133,12 @@ module When
134
133
  # バリのサカ暦
135
134
  #
136
135
  BalineseLuniSolar = [self, [
137
- "namespace:[en=http://en.wikipedia.org/wiki/, ja=http://ja.wikipedia.org/wiki/]",
138
136
  "locale:[=en:, ja=ja:, alias]",
139
137
  "period:[BalineseLuniSolar=, バリ・サカ暦=]",
140
138
  ["[SE=, サカ暦=, alias:Balinese_Saka_Era]1887-07<13", "Calendar Epoch", "1965-07<13^BalineseLuniSolar1965",
141
139
  "1971-07-04^BalineseLuniSolar1971",
142
140
  "1993-07-08^BalineseLuniSolar1993",
143
- "2000-06<10^BalineseLuniSolar2000",
141
+ "1999-06<10^BalineseLuniSolar2000",
144
142
  "2003-07<14^BalineseLuniSolar2003", '+Infinity']
145
143
  ]]
146
144
  end
@@ -192,19 +190,18 @@ module When
192
190
  #
193
191
  def _normalize(args=[], options={})
194
192
 
195
- intercalary_month = When.Resource('_m:BalineseTerms::IntercalaryMonth::*')
196
- intercalary_day = When.Resource('_m:BalineseTerms::IntercalaryDay::*')
197
- month_index = Coordinates::Index.new({:branch=>{ 0 => intercalary_month[0], # 白分
198
- +0.5 => intercalary_month[1], # 黒分
199
- +1 => intercalary_month[2], # 閏白分
200
- +1.5 => intercalary_month[3]}, # 閏黒分
201
- :trunk=>When.Resource('_m:BalineseTerms::HinduMonth::*'),
202
- :shift=>+8})
193
+ intercalary_month = When.Resource('_m:Balinese::IntercalaryMonth::*')
194
+ intercalary_day = When.Resource('_m:Balinese::IntercalaryDay::*')
195
+ month_index = When.Index('Balinese::HinduMonth', {:branch=>{ 0 => intercalary_month[0], # 白分
196
+ +0.5 => intercalary_month[1], # 黒分
197
+ +1 => intercalary_month[2], # 閏白分
198
+ +1.5 => intercalary_month[3]}, # 閏黒分
199
+ :shift=>+8})
203
200
 
204
201
  @origin_of_MSC = 0
205
202
 
206
203
  @tabular = CyclicTableBased.new({
207
- 'indices' => [month_index, Coordinates::Index.new],
204
+ 'indices' => [month_index, When::Coordinates::DefaultDayIndex],
208
205
  'rule_table' => @rule_table
209
206
  })
210
207
 
@@ -218,9 +215,9 @@ module When
218
215
  'lunation_length' => '945/32'
219
216
  })]
220
217
 
221
- @indices = [month_index, Coordinates::Index.new({:branch=>{-2=>intercalary_day[0]}})]
218
+ @indices = [month_index, When.Index({:branch=>{-2=>intercalary_day[0]}})]
222
219
 
223
- @note = When.CalendarNote(@note || 'BalineseNote')
220
+ @note = When.CalendarNote(@note || 'Balinese')
224
221
  super
225
222
  end
226
223
  end
@@ -277,18 +274,20 @@ module When
277
274
  # Tenganan Calendar
278
275
  #
279
276
  Tenganan = [CyclicTableBased, {
280
- 'label' => When.Resource('_m:BalineseTerms::Tenganan'),
277
+ 'label' => 'Balinese::Tenganan',
281
278
  'origin_of_LSC' => 1095 * 1573 - 381,
282
279
  'origin_of_MSC' => 1,
280
+ 'note' => [['_m:Calendar::Month'],
281
+ ['_n:Balinese/Notes::day::Triwara', '_n:Balinese/Notes::day::Pantjawara']],
283
282
  'indices' => [
284
- When::Coordinates::Index.new({:trunk=>When.Resource('_m:BalineseTerms::TengananMonth::*')}),
283
+ When.Index('Balinese::TengananMonth'),
285
284
  When::Coordinates::DefaultDayIndex
286
285
  ],
287
286
  'rule_table' => {
288
- 'T' => {'Rule' =>[360, 379, 356]},
287
+ 'T' => {'Rule' =>[360, 383, 352]},
289
288
  360 => {'Length'=>[30] * 12},
290
- 379 => {'Length'=>[30] * 6 + [26] * 2 + [30] * 4 + [27]},
291
- 356 => {'Length'=>[30] * 6 + [28] * 2 + [30] * 4 }
289
+ 383 => {'Length'=>[30] * 6 + [26] * 2 + [30] * 4 + [27]},
290
+ 352 => {'Length'=>[30] * 6 + [28] * 2 + [30] * 4 }
292
291
  }
293
292
  }]
294
293
  end
@@ -296,10 +295,9 @@ module When
296
295
  #
297
296
  # バリ暦の暦注
298
297
  #
299
- class CalendarNote::BalineseNote < CalendarNote
298
+ class CalendarNote::Balinese < CalendarNote
300
299
 
301
- NoteObjects = [When::BasicTypes::M17n, [
302
- "namespace:[en=http://en.wikipedia.org/wiki/, ja=http://ja.wikipedia.org/wiki/]",
300
+ Notes = [When::BasicTypes::M17n, [
303
301
  "locale:[=en:, ja=ja:, alias]",
304
302
  "names:[Balinese]",
305
303
 
@@ -567,18 +565,18 @@ module When
567
565
  # When::Coordinates::Residue へ処理を委譲する暦注
568
566
  #
569
567
  # @private
570
- When.CalendarNote('BalineseNote/NoteObjects')['day::*'].each do |cood|
568
+ When.CalendarNote('Balinese/Notes')['day::*'].each do |cood|
571
569
  case cood
572
570
  when Coordinates::Residue
573
571
  module_eval %Q{
574
572
  def #{cood.label.to_s.downcase}(date, parameter=nil)
575
- When.CalendarNote('BalineseNote/NoteObjects')['day']['#{cood.label.to_s}'] % date
573
+ When.CalendarNote('Balinese/Notes')['day']['#{cood.label.to_s}'] % date
576
574
  end
577
575
  }
578
576
  when BasicTypes::M17n
579
577
  module_eval %Q{
580
578
  def #{cood.to_s.downcase}(date, parameter=nil)
581
- (When.CalendarNote('BalineseNote/NoteObjects')['day']['Wuku'] % date).#{cood.to_s.downcase}
579
+ (When.CalendarNote('Balinese/Notes')['day']['Wuku'] % date).#{cood.to_s.downcase}
582
580
  end
583
581
  }
584
582
  end
@@ -608,7 +606,7 @@ module When
608
606
  thiti = [d * 1 - 1]
609
607
  thiti[0] += 15 unless [0,1,nil].include?(m * 0)
610
608
  thiti << (thiti[0] + 1) % 30 if d * 0 == -2
611
- table = When.CalendarNote('BalineseNote/NoteObjects')['day']['Hari']
609
+ table = When.CalendarNote('Balinese/Notes')['day']['Hari']
612
610
  thiti.map {|t| table[t / 15][t % 15]}.join('/')
613
611
  end
614
612