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
@@ -21,10 +21,11 @@ module When
21
21
  def self.month_name(name)
22
22
  return name if name.kind_of?(self)
23
23
 
24
- months = When.Resource('_m:CalendarTerms::Month').child
25
- abbrs = When.Resource('_m:CalendarTerms::Abbr_Month').child
24
+ months = When.Resource('_m:Calendar::Month').child
25
+ abbrs = When.Resource('_m:Calendar::Abbr_Month').child
26
26
  return name > 0 ? months[name-1] : abbrs[-name-1] if name.kind_of?(Numeric)
27
27
 
28
+ name = When::EncodingConversion.to_internal_encoding(name)
28
29
  match = name[/^...|^..$/]
29
30
  if match
30
31
  (months+abbrs).each do |month|
@@ -39,14 +40,12 @@ module When
39
40
  return nil
40
41
  end
41
42
 
42
- Namespace = "[ja=http://ja.wikipedia.org/wiki/, en=http://en.wikipedia.org/wiki/]"
43
- Locale = "[=ja:, en=en:]"
44
-
45
- # Terms
46
- CalendarTerms = [M17n, [
47
- "namespace:[en=http://en.wikipedia.org/wiki/, ja=http://ja.wikipedia.org/wiki/]",
43
+ #
44
+ # 共通的な暦用語
45
+ #
46
+ Calendar = [M17n, [
48
47
  "locale:[=en:, ja=ja:, alias]",
49
- "names:[CalendarTerms=]",
48
+ "names:[Calendar=]",
50
49
 
51
50
  "[Intercalary %s=, *閏]",
52
51
 
@@ -85,7 +84,6 @@ module When
85
84
 
86
85
  # Events
87
86
  EpochEvents = [M17n, [
88
- "namespace:[en=http://en.wikipedia.org/wiki/, ja=http://ja.wikipedia.org/wiki/]",
89
87
  "locale:[=en:, ja=ja:, alias]",
90
88
  "names:[EpochEvents=]",
91
89
  "[Accession=, 代始]",
@@ -9,10 +9,9 @@ module When
9
9
 
10
10
  class BasicTypes::M17n
11
11
 
12
- MartianTerms = [self, [
13
- "namespace:[en=http://en.wikipedia.org/wiki/, ja=http://ja.wikipedia.org/wiki/]",
12
+ Martian = [self, [
14
13
  "locale:[=en:, ja=ja:, alias]",
15
- "names:[MartianTerms=]",
14
+ "names:[Martian=]",
16
15
  "[Darian=en:Darian_calendar, ダリアン暦]",
17
16
 
18
17
  [self,
@@ -118,8 +117,7 @@ module When
118
117
  #
119
118
  class DarianWeek < WorldWeek
120
119
 
121
- NoteObjects = [When::BasicTypes::M17n, [
122
- "namespace:[en=http://en.wikipedia.org/wiki/, ja=http://ja.wikipedia.org/wiki/]",
120
+ Notes = [When::BasicTypes::M17n, [
123
121
  "locale:[=en:, ja=ja:, alias]",
124
122
  "names:[Darian]",
125
123
 
@@ -141,13 +139,13 @@ module When
141
139
  "names:[day]",
142
140
  [When::BasicTypes::M17n,
143
141
  "names:[Week]",
144
- "[Solis, 日曜日]",
145
- "[Lunae, 月曜日]",
146
- "[Martis, 火曜日]",
147
- "[Mercurii, 水曜日]",
148
- "[Jovis, 木曜日]",
149
- "[Veneris, 金曜日]",
150
- "[Saturni, 土曜日]"
142
+ [DayOfWeek, "label:[Solis=, 日曜日]", {'delta'=>7}],
143
+ [DayOfWeek, "label:[Lunae=, 月曜日]", {'delta'=>7}],
144
+ [DayOfWeek, "label:[Martis=, 火曜日]", {'delta'=>7}],
145
+ [DayOfWeek, "label:[Mercurii=, 水曜日]", {'delta'=>7}],
146
+ [DayOfWeek, "label:[Jovis=, 木曜日]", {'delta'=>7}],
147
+ [DayOfWeek, "label:[Veneris=, 金曜日]", {'delta'=>7}],
148
+ [DayOfWeek, "label:[Saturni=, 土曜日]", {'delta'=>7}]
151
149
  ]
152
150
  ]
153
151
  ]]
@@ -169,10 +167,40 @@ module When
169
167
  date.events = ['from_solis']
170
168
  date
171
169
  end
172
- alias :week :solis
173
170
 
171
+ #
172
+ # この日は何曜?
173
+ #
174
+ # @param [When::TM::TemporalPosition] date
175
+ # @param [When::TM::CalDate] base (not used)
176
+ #
177
+ # @return [Array<When::CalendarNote::Week::DayOfWeek, Array<Integer,Integer>>]
178
+ #
179
+ def week(date, base=nil)
180
+ date = _to_date_for_note(date)
181
+ index = (date.cal_date.last - 1) % 7
182
+ [@days_of_week[index], [index, 7]]
183
+ end
184
+
185
+ #
186
+ # 曜日の名前の一覧
187
+ #
188
+ # @param [When::TM::TemporalPosition] date (ダミー)
189
+ #
190
+ # @return [Array<When::CalendarNote::Week::DayOfWeek>]
191
+ #
192
+ def week_labels(date)
193
+ @days_of_week.child
194
+ end
195
+
196
+ #
197
+ # 暦日を当該暦注計算用クラスに変換
198
+ #
174
199
  # @private
175
- alias :solis_delta :_delta
200
+ def _to_date_for_note(date)
201
+ date = When::Darian ^ date unless date.frame.label.to_s == 'Darian'
202
+ date
203
+ end
176
204
 
177
205
  private
178
206
 
@@ -205,11 +233,11 @@ module When
205
233
  # Darian Calendar
206
234
  #
207
235
  Darian = [CyclicTableBased, {
208
- 'label' => When.Resource('_m:MartianTerms::Darian'),
236
+ 'label' => 'Martian::Darian',
209
237
  'time_basis' => 'MTC',
210
238
  'origin_of_LSC' => -94798,
211
239
  'indices' => [
212
- When::Coordinates::Index.new({:unit =>24, :trunk=>When.Resource('_m:MartianTerms::DarianMonth::*')}),
240
+ When.Index('Martian::DarianMonth', {:unit =>24}),
213
241
  When::Coordinates::DefaultDayIndex
214
242
  ],
215
243
  'rule_table' => {
@@ -19,12 +19,11 @@ module When
19
19
  'LoN' => (( 3 + epoch) % 9).to_s
20
20
  } : nil
21
21
  }}, BasicTypes::M17n, [
22
- "namespace:[en=http://en.wikipedia.org/wiki/, ja=http://ja.wikipedia.org/wiki/]",
23
22
  "locale:[=en:, ja=ja:, alias]",
24
23
  "names:[Mayan]",
25
24
 
26
25
  [Residue,
27
- "label:[Haab', ハアブ, Haab]", "divisor:365", 'day:#{Haab:300}', "format:[%2$d%1$s/365]",
26
+ "label:[Haab', ハアブ, Haab]", "divisor:365", 'day:#{Haab:300}', "format:[%2$d%1$s/365=]",
28
27
  "namespace:[glyph=http://en.wikipedia.org/wiki/File:Maya-]",
29
28
  [Residue, "label:[Pop =glyph:Pop.jpg, ポプ, Pop ]", "remainder: 0"],
30
29
  [Residue, "label:[Wo' =glyph:Dresden-wo.jpg, ウオ, Wo ]", "remainder: 20"],
@@ -48,12 +47,12 @@ module When
48
47
  ],
49
48
 
50
49
  [Residue,
51
- "label:[Trecena, トレセナ=, Trecena]", "divisor:13", 'day:#{Trecena:8}', "format:[%1$s(%3$d/13)]"
50
+ "label:[Trecena, トレセナ=, Trecena]", "divisor:13", 'day:#{Trecena:8}', "format:[%1$s(%3$d/13)=]"
52
51
  ],
53
52
 
54
53
  [Residue,
55
54
  "namespace:[glyph=http://en.wikipedia.org/wiki/File:MAYA-g-log-cal-]",
56
- "label:[Tzolk'in, ツォルキン, Tzolkin]", "divisor:20", 'day:#{Tzolkin:4}', "format:[%s(%d/20)]",
55
+ "label:[Tzolk'in, ツォルキン, Tzolkin]", "divisor:20", 'day:#{Tzolkin:4}', "format:[%s(%d/20)=]",
57
56
  [Residue, "label:[Imix' =glyph:D01-Imix.png, イミシュ, Imix =glyph:D01-Imix-cdxW.png ]", "remainder: 0"],
58
57
  [Residue, "label:[Ik' =glyph:D02-Ik.png, イック, Ik =glyph:D02-Ik-cdxW.png ]", "remainder: 1"],
59
58
  [Residue, "label:[Ak'b'al =glyph:D03-Akbal.png, アクバル, Akbal =glyph:D03-Akbal-cdxW.png ]", "remainder: 2"],
@@ -78,7 +77,7 @@ module When
78
77
 
79
78
  [Residue,
80
79
  "namespace:[glyph=http://www.pauahtun.org/G/G]",
81
- "label:[Lords_of_the_Night, 夜の九王]", "divisor:9", 'day:#{LoN:3}', "format:[%s(%d/9)]",
80
+ "label:[Lords_of_the_Night, 夜の九王]", "divisor:9", 'day:#{LoN:3}', "format:[%s(%d/9)=]",
82
81
  [Residue, "label:[G9=glyph:9_m.png]", "remainder: 0"],
83
82
  [Residue, "label:[G1=glyph:1_m.png]", "remainder: 1"],
84
83
  [Residue, "label:[G2=glyph:2_m.png]", "remainder: 2"],
@@ -92,13 +91,17 @@ module When
92
91
  ]]
93
92
  end
94
93
 
94
+ class CalendarNote
95
+ Mayan = [{},['Mayan#{?Epoch=Epoch}::Trecena', 'Mayan#{?Epoch=Epoch}::Tzolk\'in',
96
+ 'Mayan#{?Epoch=Epoch}::Lords_of_the_Night', 'Mayan#{?Epoch=Epoch}::Haab\'']]
97
+ end
98
+
95
99
  class TM::CalendarEra
96
100
 
97
101
  #
98
102
  # Mayan Long Count
99
103
  #
100
104
  LongCount = [{}, self, [
101
- "namespace:[en=http://en.wikipedia.org/wiki/, ja=http://ja.wikipedia.org/wiki/]",
102
105
  "locale:[=en:, ja=ja:, alias]",
103
106
  'area:[LongCount#{?Epoch=Epoch}=en:Mesoamerican_Long_Count_calendar, マヤ長期暦=ja:%%<長期暦>]',
104
107
  ["[PHLC=, 先史時代=, PreHistoricLongCount=]0.0.0.0.0", "[Pre Historic=]", '-13.0.0.0.0^LongCount#{?Epoch=Epoch}'],
@@ -109,8 +112,8 @@ module When
109
112
 
110
113
  module CalendarTypes
111
114
 
112
- _c20 = Coordinates::Index.new({:base=>0, :unit=>20})
113
- _c18 = Coordinates::Index.new({:base=>0, :unit=>18})
115
+ _c20 = When.Index({:base=>0, :unit=>20})
116
+ _c18 = When.Index({:base=>0, :unit=>18})
114
117
 
115
118
  #
116
119
  # Mayan Long Count
@@ -124,9 +127,8 @@ module When
124
127
  'T' => {'Rule' =>[360]},
125
128
  360 => {'Length'=>[20] * 18}
126
129
  },
127
- 'index_of_MSC' => 2,
128
130
  'indices'=> [_c20, _c20, _c18, _c20],
129
- 'note' => 'MayanNotes#{?Epoch=Epoch}'
131
+ 'note' => 'Mayan#{?Epoch=Epoch}'
130
132
  }]
131
133
  end
132
134
  end
@@ -19,7 +19,6 @@ module When
19
19
 
20
20
  # ローマ教皇
21
21
  Pope = [self, [
22
- "namespace:[ja=http://ja.wikipedia.org/wiki/, en=http://en.wikipedia.org/wiki/]",
23
22
  "locale:[=en:, ja=ja:, alias]",
24
23
  "area:[Pope,ローマ教皇]",
25
24
  ["StPetros1", "@A", "0042^Julian"], # <- (Gk.) Petrus <- (L.)
@@ -20,11 +20,10 @@ module When::Coordinates
20
20
  class Kyusei < Residue; end
21
21
 
22
22
  # Common Residue
23
- CommonResidue = [{'V'=>{'0618'=>{'A'=>'awakening_of_insects=,*啓蟄',
23
+ Common = [{'V'=>{'0618'=>{'A'=>'awakening_of_insects=,*啓蟄',
24
24
  'B'=>'rain_water=,*雨水'}}}, When::BasicTypes::M17n, [
25
- "namespace:[en=http://en.wikipedia.org/wiki/, ja=http://ja.wikipedia.org/wiki/]",
26
25
  "locale:[=en:, ja=ja:, tenreki, tibetan, yi, alias]",
27
- "names:[CommonResidue]",
26
+ "names:[Common]",
28
27
 
29
28
  [Residue,
30
29
  "label:[Week, 週]", "divisor:7", "day:0",
@@ -50,7 +49,7 @@ module When::Coordinates
50
49
 
51
50
  [Residue,
52
51
  "locale:[=en:, ja=ja:, alias]",
53
- "label:[StarMansion, *宿]", "divisor:28", "day:17", "format:[%s(%02d)]",
52
+ "label:[StarMansion, *宿]", "divisor:28", "day:17", "format:[%s(%02d)=]",
54
53
  [Residue, "label:[Horn=, *角宿, Jiăo= ]", "remainder:0"], # 1 α Vir
55
54
  [Residue, "label:[Neck=, *亢宿, Kàng= ]", "remainder:1"], # 2 κ Vir
56
55
  [Residue, "label:[Root=, *氐宿, Dĭ= ]", "remainder:2"], # 3 α Lib
@@ -112,7 +111,7 @@ module When::Coordinates
112
111
  ],
113
112
 
114
113
  [StemBranch,
115
- "label:[Stem-Branch, *干支]", "divisor:60", "day:11", "year:4", "format:[%s(%02d)]",
114
+ "label:[Stem-Branch, *干支]", "divisor:60", "day:11", "year:4", "format:[%s(%02d)=]",
116
115
  [StemBranch, "label:[kinoe-ne=, *甲子, 甲子, 木男鼠, 木公鼠]", "remainder: 0"],
117
116
  [StemBranch, "label:[kinoto-ushi=, *乙丑, 乙好, 木女牛, 木母牛]", "remainder: 1"],
118
117
  [StemBranch, "label:[hinoe-tora=, *丙寅, 丙寅, 火男虎, 火公虎]", "remainder: 2"],
@@ -9,10 +9,9 @@ module When
9
9
 
10
10
  class BasicTypes::M17n
11
11
 
12
- RomanTerms = [self, [
13
- "namespace:[en=http://en.wikipedia.org/wiki/, ja=http://ja.wikipedia.org/wiki/]",
12
+ Roman = [self, [
14
13
  "locale:[=en:, ja=ja:, alias]",
15
- "names:[RomanTerms=]",
14
+ "names:[Roman=]",
16
15
 
17
16
  [self, # ..CE-44 / ..BCE45
18
17
  "names:[MonthA, 月=ja:%%<月_(暦)>]",
@@ -95,7 +94,6 @@ module When
95
94
 
96
95
  # From http://en.wikipedia.org/wiki/Julian_calendar#Sacrobosco.27s_theory_on_month_lengths
97
96
  Julian = [self, [
98
- "namespace:[en=http://en.wikipedia.org/wiki/, ja=http://ja.wikipedia.org/wiki/]",
99
97
  "locale:[=en:, ja=ja:, alias]",
100
98
  "period:[Roman=en:Roman_calendar, ローマ暦]",
101
99
  ["[AUC=en:Ab_urbe_condita, 建国紀元=ja:%%<ローマ建国紀元>, alias:Ab_urbe_condita]709.1.1",
@@ -106,7 +104,6 @@ module When
106
104
 
107
105
  # From http://www.tyndalehouse.com/Egypt/ptolemies/chron/roman/chron_rom_intro_fr.htm
108
106
  Roman = [self, [
109
- "namespace:[en=http://en.wikipedia.org/wiki/, ja=http://ja.wikipedia.org/wiki/]",
110
107
  "locale:[=en:, ja=ja:, alias]",
111
108
  "period:[Roman=en:Roman_calendar, ローマ暦]",
112
109
  ["[AUC=en:Ab_urbe_condita, 建国紀元=ja:%%<ローマ建国紀元>, alias:Ab_urbe_condita]492.5.1",
@@ -124,9 +121,9 @@ module When
124
121
  module CalendarTypes
125
122
 
126
123
  # From http://en.wikipedia.org/wiki/Julian_calendar#Sacrobosco.27s_theory_on_month_lengths
127
- _Index0 = Coordinates::DefaultDayIndex
128
- _IndicesB12 = [Coordinates::Index.new({:unit=>12, :trunk=>When.Resource('_m:RomanTerms::MonthB::*')}), _Index0]
129
- _Indices12 = [Coordinates::Index.new({:unit=>12, :trunk=>When.Resource('_m:RomanTerms::Month::*')}), _Index0]
124
+ _Index0 = When::Coordinates::DefaultDayIndex
125
+ _IndicesB12 = [When.Index('Roman::MonthB', {:unit=>12}), _Index0]
126
+ _Indices12 = [When.Index('Roman::Month', {:unit=>12}), _Index0]
130
127
 
131
128
  #
132
129
  # Julian Calendar A : BCE45-BCE8
@@ -140,7 +137,7 @@ module When
140
137
  365 => {'Length'=>[31,29] + [31,30]*5},
141
138
  366 => {'Length'=>[31,30] + [31,30]*5}
142
139
  },
143
- 'note' => 'RomanNote'
140
+ 'note' => 'Roman'
144
141
  }]
145
142
 
146
143
  #
@@ -154,7 +151,7 @@ module When
154
151
  'T' => {'Rule' =>[365]},
155
152
  365 => {'Length'=>[31,28] + [31,30,31,30,31]*2}
156
153
  },
157
- 'note' => 'RomanNote'
154
+ 'note' => 'Roman'
158
155
  }]
159
156
 
160
157
  #
@@ -162,10 +159,10 @@ module When
162
159
  #
163
160
  JulianC = [Julian, {
164
161
  'indices' => _Indices12,
165
- 'note' => 'RomanNote'
162
+ 'note' => 'Roman'
166
163
  }]
167
164
 
168
- # From http://www.tyndalehouse.com/Egypt/ptolemies/chron/roman/chron_rom_intro_fr.htm
165
+ # From Chris Bennett, http://www.tyndalehouse.com/Egypt/ptolemies/chron/roman/chron_rom_intro_fr.htm
169
166
  #
170
167
  # Roman Calendar BCE262-(CE60)-CE480
171
168
  #
@@ -173,14 +170,14 @@ module When
173
170
  _ID_L = '1,2,2=,3,4,5,6,7,8,9,10,11,12'
174
171
  _ID_J = '1,2,2=,3,4,5,6,7,8,9,10,11,11<,11>,12'
175
172
  _Branch = {
176
- 1=>When.Resource('_m:RomanTerms::IntercalaryMonth::*')[0],
177
- 0.5=>When.Resource('_m:RomanTerms::IntercalaryMonth::*')[1],
178
- 1.5=>When.Resource('_m:RomanTerms::IntercalaryMonth::*')[2]
173
+ 1=>When.Resource('_m:Roman::IntercalaryMonth::*')[0],
174
+ 0.5=>When.Resource('_m:Roman::IntercalaryMonth::*')[1],
175
+ 1.5=>When.Resource('_m:Roman::IntercalaryMonth::*')[2]
179
176
  }
180
- _IndicesA = [Coordinates::Index.new({:branch=>_Branch, :trunk=>When.Resource('_m:RomanTerms::MonthA::*')}), _Index0]
181
- _IndicesB = [Coordinates::Index.new({:branch=>_Branch, :trunk=>When.Resource('_m:RomanTerms::MonthB::*')}), _Index0]
182
- _Indices = [Coordinates::Index.new({:branch=>_Branch, :trunk=>When.Resource('_m:RomanTerms::Month::*')}), _Index0]
183
- _IndicesC = [Coordinates::Index.new({:branch=>_Branch, :trunk=>When.Resource('_m:RomanTerms::MonthC::*')}), _Index0]
177
+ _IndicesA = [When.Index('Roman::MonthA', {:branch=>_Branch}), _Index0]
178
+ _IndicesB = [When.Index('Roman::MonthB', {:branch=>_Branch}), _Index0]
179
+ _Indices = [When.Index('Roman::Month', {:branch=>_Branch}), _Index0]
180
+ _IndicesC = [When.Index('Roman::MonthC', {:branch=>_Branch}), _Index0]
184
181
  Options = {
185
182
  'origin_of_LSC' => 1625698,
186
183
  'origin_of_MSC' => -261,
@@ -201,7 +198,7 @@ module When
201
198
  'N' => {'Length'=>[31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]},
202
199
  'L' => {'Length'=>[31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]},
203
200
  },
204
- 'note' => 'RomanNote'
201
+ 'note' => 'Roman'
205
202
  }
206
203
  RomanA = [CyclicTableBased, Options.merge({'indices' => _IndicesA})]
207
204
  RomanB = [CyclicTableBased, Options.merge({'indices' => _IndicesB})]
@@ -212,10 +209,9 @@ module When
212
209
  #
213
210
  # 古代ローマの暦注
214
211
  #
215
- class CalendarNote::RomanNote < CalendarNote
212
+ class CalendarNote::Roman < CalendarNote
216
213
 
217
- NoteObjects = [When::BasicTypes::M17n, [
218
- "namespace:[en=http://en.wikipedia.org/wiki/, ja=http://ja.wikipedia.org/wiki/]",
214
+ Notes = [When::BasicTypes::M17n, [
219
215
  "locale:[=en:, ja=ja:, alias]",
220
216
  "names:[Roman]",
221
217
 
@@ -232,7 +228,7 @@ module When
232
228
  ],
233
229
 
234
230
  [When::Coordinates::Residue,
235
- "label:[Indiction, インディクション]", "divisor:15", "year:-2",
231
+ "label:[Indiction, インディクション]", "divisor:15", "year:-2", "format:[%s=]",
236
232
  [When::Coordinates::Residue, "label:[I= ]", "remainder: 0"],
237
233
  [When::Coordinates::Residue, "label:[II= ]", "remainder: 1"],
238
234
  [When::Coordinates::Residue, "label:[III= ]", "remainder: 2"],
@@ -5,8 +5,8 @@
5
5
  You may use and/or modify this file according to the license described in the LICENSE.txt file included in this archive.
6
6
  =end
7
7
 
8
- require 'when_exe/region/japanese'
9
- require 'when_exe/region/chinese_calendar'
8
+ require 'when_exe/region/japanese/calendars'
9
+ require 'when_exe/region/chinese/calendars'
10
10
 
11
11
  #
12
12
  # 琉球王位一覧表
@@ -23,7 +23,6 @@ module When
23
23
  # 琉球王朝
24
24
  #
25
25
  Ryukyu = [self, [
26
- "namespace:[ja=http://ja.wikipedia.org/wiki/, en=http://en.wikipedia.org/wiki/]",
27
26
  "locale:[=ja:, en=en:, alias]",
28
27
  "area:[琉球,Ryukyu]",
29
28
  [self,
@@ -77,7 +76,7 @@ module When
77
76
  ["[尚元王]0", "@A", "name=[尚元王];1555-06-25"], # 弘治 2~元亀 3(1572) 4 1 45歳
78
77
  ["[尚永王]0", "@A", "name=[尚永王];1572-04-01"], # 天正 元~天正 16(1588) 11 25 30歳
79
78
  ["[尚寧王]0", "@A", "name=[尚寧王];1588-11-25", # 天正 17~元和 6(1620) 9 19 57歳
80
- "1609-04-05^Japanese?note=ChineseNotes", ""], # 慶長 14(1609) 4 5 尚寧、島津と和議
79
+ "1609-04-05^Japanese?note=Chinese", ""], # 慶長 14(1609) 4 5 尚寧、島津と和議
81
80
  ["[尚豊王]0", "@A", "name=[尚豊王];1620-09-19"], # 元和 7~寛永 17(1640) 5 4 51歳
82
81
  ["[尚賢王]0", "@A", "name=[尚賢王];1640-05-04"], # 寛永 18~正保 4(1647) 9 22 23歳
83
82
  ["[尚質王]0", "@A", "name=[尚質王];1647-09-22"], # 慶安 元~寛文 8(1668) 11 17 40歳
@@ -8,30 +8,33 @@
8
8
  module When
9
9
  class BasicTypes::M17n
10
10
 
11
- ShireTerms = [self, [
12
- "namespace:[en=http://en.wikipedia.org/wiki/, " +
13
- "ja=http://ja.wikipedia.org/wiki/, " +
14
- "cal=http://en.wikipedia.org/wiki/Middle-earth_calendar]",
11
+ Shire = [self, [
12
+ "namespace:[cal=http://en.wikipedia.org/wiki/Middle-earth_calendar#]",
15
13
  "locale:[=en:, ja=ja:, alias]",
16
- "names:[ShireTerms=]",
14
+ "names:[Shire=]",
17
15
  "[Shire=en:The_Lord_of_the_Rings, ホビット庄暦=ja:%%<指輪物語>]",
18
16
 
17
+ [self,
18
+ "names:[Festival=, 祭= ]",
19
+ "[%0sYule=en:Yule, %0sユール祭= ]",
20
+ "[%0sLithe=cal:Hobbit_calendar, %0sライズ祭= ]",
21
+ ],
22
+
19
23
  [self,
20
24
  "names:[Month, 月=ja:%%<月_(暦)>]",
21
- "[Yule=en:Yule, ユール祭= ]",
22
- "[Afteryule=en:Yule, ユール後月= ]",
23
- "[Solmath=cal, ソマス= ]",
24
- "[Rethe=cal, レセ= ]",
25
- "[Astron=cal, アストロン= ]",
26
- "[Thrimidge=cal, スリミッジ= ]",
27
- "[Forelithe=cal, ライズ前月= ]",
28
- "[Lithe=cal, ライズ祭= ]",
29
- "[Afterlithe=cal, ライズ後月= ]",
30
- "[Wedmath=cal, ウェドマス= ]",
31
- "[Halimath=cal, ハリマス= ]",
32
- "[Winterfilth=cal, ウィンターフィルス=]",
33
- "[Blotmath=cal, ブロドマス= ]",
34
- "[Foreyule=en:Yule, ユール前月= ]"
25
+ "[Yule=en:Yule, ユール祭= ]",
26
+ "[Afteryule=en:Yule, ユール後月= ]",
27
+ "[Solmath=cal:Hobbit_calendar, ソマス= ]",
28
+ "[Rethe=cal:Hobbit_calendar, レセ= ]",
29
+ "[Astron=cal:Hobbit_calendar, アストロン= ]",
30
+ "[Thrimidge=cal:Hobbit_calendar, スリミッジ= ]",
31
+ "[Forelithe=cal:Hobbit_calendar, ライズ前月= ]",
32
+ "[Afterlithe=cal:Hobbit_calendar, ライズ後月= ]",
33
+ "[Wedmath=cal:Hobbit_calendar, ウェドマス= ]",
34
+ "[Halimath=cal:Hobbit_calendar, ハリマス= ]",
35
+ "[Winterfilth=cal:Hobbit_calendar, ウィンターフィルス=]",
36
+ "[Blotmath=cal:Hobbit_calendar, ブロドマス= ]",
37
+ "[Foreyule=en:Yule, ユール前月= ]"
35
38
  ]
36
39
  ]]
37
40
  end
@@ -39,10 +42,9 @@ module When
39
42
  #
40
43
  # ホビット庄暦の暦週
41
44
  #
42
- class CalendarNote::ShireWeek < CalendarNote
45
+ class CalendarNote::ShireWeek < CalendarNote::Week
43
46
 
44
- NoteObjects = [When::BasicTypes::M17n, [
45
- "namespace:[en=http://en.wikipedia.org/wiki/, ja=http://ja.wikipedia.org/wiki/]",
47
+ Notes = [When::BasicTypes::M17n, [
46
48
  "locale:[=en:, ja=ja:, alias]",
47
49
  "names:[Shire]",
48
50
 
@@ -64,29 +66,35 @@ module When
64
66
  "names:[day]",
65
67
  [When::BasicTypes::M17n,
66
68
  "names:[Week]",
67
- "[Saturday, 土曜日]",
68
- "[Sunday, 日曜日]",
69
- "[Monday, 月曜日]",
70
- "[Tuesday, 火曜日]",
71
- "[Wednesday, 水曜日]",
72
- "[Thursday, 木曜日]",
73
- "[Friday, 金曜日]",
74
- "[lithe, 中日= ]",
75
- "[double, 重日= ]"
76
- ]
69
+ [DayOfWeek, "label:[Saturday, 土曜日]", {'delta'=>7}],
70
+ [DayOfWeek, "label:[Sunday, 日曜日]", {'delta'=>7}],
71
+ [DayOfWeek, "label:[Monday, 月曜日]", {'delta'=>7}],
72
+ [DayOfWeek, "label:[Tuesday, 火曜日]", {'delta'=>7}],
73
+ [DayOfWeek, "label:[Wednesday, 水曜日]", {'delta'=>7}],
74
+ [DayOfWeek, "label:[Thursday, 木曜日]", {'delta'=>7}],
75
+ [DayOfWeek, "label:[Friday, 金曜日]", {'delta'=>7}],
76
+ [DayOfWeek, "label:[lithe, 中日= ]", {'delta'=> 365}],
77
+ [DayOfWeek, "label:[double, 重日= ]", {'delta'=>1827}]
78
+ ],
79
+
80
+ "[Standard_Week]"
77
81
  ]
78
82
  ]]
79
83
 
80
- # イベントの標準的な間隔を返す
81
84
  # @private
82
- def _delta(parameter=nil)
83
- return When::DurationP1W
84
- end
85
+ FirstDayOfWeek = [6, 1, 3, 5, 0, 2, 4] * 2
85
86
 
86
87
  # @private
87
- def lithe_delta(parameter=nil)
88
- return When::TM::PeriodDuration.new([0,0,7*52+1])
89
- end
88
+ ExtraDayInYear = {
89
+ [ 8, 2] => 7,
90
+ [ 8, 4] => 0
91
+ }
92
+
93
+ # @private
94
+ WeekLength = {
95
+ [ 8, 3] => 8,
96
+ [ 8, 4] => 9
97
+ }
90
98
 
91
99
  # 当日または直前の lithe の日
92
100
  # @param date [When::TM::TemporalPosition]
@@ -97,6 +105,7 @@ module When
97
105
  event_name = 'lithe'
98
106
  date = date.frame.jul_trans(date, {:events=>[event_name]})
99
107
  y,m,d = date.cal_date
108
+ m = date.frame.send(:_to_index,[y,m]) + 1
100
109
  h,n = (m+5).divmod(7)
101
110
  dow = 182 * h[0] + 30 * n + d + 1
102
111
  if m==8
@@ -114,19 +123,20 @@ module When
114
123
 
115
124
  # 当日または直前の week_day の日
116
125
  # @method week_day(date, parameter=nil)
117
- # @param date [When::TM::TemporalPosition]
118
- # @param parameter [nil] 未使用
126
+ # @param [When::TM::TemporalPosition] date
127
+ # @param [nil] parameter 未使用
119
128
  # @return [When::TM::TemporalPosition]
120
129
  # @note week_day は saturday, sunday, monday, tuesday, wednesday, thursday, friday に読み替えてください。
121
130
 
122
131
  # @private
123
132
  7.times do |k|
124
- name = When.CalendarNote('ShireWeek/NoteObjects::day::Week')[k].to_s.downcase
133
+ name = When.CalendarNote('ShireWeek/Notes::day::Week')[k].to_s.downcase
125
134
  module_eval %Q{
126
135
  def #{name}(date, parameter=nil)
127
136
  event_name = 'from_#{name}'
128
137
  date = date.frame.jul_trans(date, {:events=>[event_name], :precision=>When::DAY})
129
138
  y,m,d = date.cal_date
139
+ m = date.frame.send(:_to_index, [y,m]) + 1
130
140
  h,n = (m+5).divmod(7)
131
141
  dow = (182 * h[0] + 30 * n + d - #{k}) % 7
132
142
  case m
@@ -144,12 +154,35 @@ module When
144
154
  date.events = [event_name]
145
155
  date
146
156
  end
147
-
148
- alias :#{name}_delta :_delta
149
157
  }
150
158
  end
151
159
 
152
- alias :week :saturday
160
+ #
161
+ # この日は何曜?
162
+ #
163
+ # @param [When::TM::TemporalPosition] date
164
+ # @param [When::TM::CalDate] base (not used)
165
+ #
166
+ # @return [Hash<:value=>When::CalendarNote::Week::DayOfWeek, :position=>Array<Integer>>]
167
+ #
168
+ def week(date, base=nil)
169
+ date = _to_date_for_note(date)
170
+ y, m, d = date.cal_date
171
+ m = date.frame.send(:_to_index, [y,m]) + 1
172
+ length = WeekLength[[m, date.length(When::MONTH)]] || 7
173
+ index = length == 8 ? 0 : 8 if [m,d] == [8,3]
174
+ index ||= ExtraDayInYear[[m,d]] || (FirstDayOfWeek[m-1] + d - 1) % 7
175
+ {:value=>@days_of_week[index], :position=>[index, length]}
176
+ end
177
+
178
+ #
179
+ # 暦日を当該暦注計算用クラスに変換
180
+ #
181
+ # @private
182
+ def _to_date_for_note(date)
183
+ date = When::ShireG ^ date unless date.frame.label.to_s == 'Shire'
184
+ date
185
+ end
153
186
 
154
187
  # オブジェクトの正規化
155
188
  # @private
@@ -157,58 +190,31 @@ module When
157
190
  @event ||= 'saturday'
158
191
  super
159
192
  end
160
-
161
- #
162
- # イベントを取得する Enumerator
163
- #
164
- class Enumerator < When::CalendarNote::Enumerator
165
-
166
- #
167
- # 次のイベントを得る
168
- #
169
- # @return [When::TM::TemporalPosition]
170
- #
171
- def succ
172
- value = @current
173
- plus = @delta.sign > 0
174
- if @current==:first
175
- @first = event_eval(@first) unless plus
176
- @current = @first
177
- else
178
- if plus
179
- @current = event_eval(@current + @delta)
180
- else
181
- @last = event_eval(@current - When.Duration('P1D'))
182
- @current = event_eval(@current + @delta)
183
- unless [@current.to_i, value.to_i].include?(@last.to_i)
184
- @current = @last
185
- return value
186
- end
187
- end
188
- @current = event_eval(@current + @delta * 2) if @current.to_i == value.to_i
189
- end
190
- return value
191
- end
192
- end
193
193
  end
194
194
 
195
195
  module CalendarTypes
196
+
197
+ _shire_indices = [
198
+ When.Index('Shire::Month', {:base => 0,
199
+ :branch=>{1=>When.Resource('_m:Shire::Festival::*')[1]}}),
200
+ When::Coordinates::DefaultDayIndex
201
+ ]
202
+
203
+ _IDs = '0,1,2,3,4,5,6,6=,7,8,9,10,11,12'
204
+
196
205
  #
197
206
  # Shire Calendar based on summer solstice date
198
207
  #
199
208
  Shire = [YearLengthTableBased, {
200
- 'label' => When.Resource('_m:ShireTerms::Shire'),
201
- 'indices' => [
202
- Coordinates::Index.new({:unit=>14, :trunk=>When.Resource('_m:ShireTerms::Month::*')}),
203
- Coordinates::DefaultDayIndex
204
- ],
205
- 'border' => '00-01-02',
209
+ 'label' => 'Shire::Shire',
210
+ 'indices' => _shire_indices,
211
+ 'border' => '00-00-02',
206
212
  'day_offset' => -183, # the day 183 days before summer solstice
207
213
  'cycle_offset' => Rational(1,4), # summer solstice
208
214
  'time_basis' => '+09:00', # JST
209
215
  'rule_table' => {
210
- 365 => {'Length'=>[2]+[30]*6+[3]+[30]*6},
211
- 366 => {'Length'=>[2]+[30]*6+[4]+[30]*6}
216
+ 365 => {'Length'=>[2]+[30]*6+[3]+[30]*6, 'IDs'=>_IDs},
217
+ 366 => {'Length'=>[2]+[30]*6+[4]+[30]*6, 'IDs'=>_IDs}
212
218
  },
213
219
  'note' => 'ShireWeek'
214
220
  }]
@@ -217,19 +223,16 @@ module When
217
223
  # Shire Calendar based on Gregorian Date
218
224
  #
219
225
  ShireG = [CyclicTableBased, {
220
- 'label' => When.Resource('_m:ShireTerms::Shire'),
226
+ 'label' => 'Shire::Shire',
221
227
  'origin_of_LSC' => 1721060-10,
222
- 'indices' => [
223
- Coordinates::Index.new({:unit=>14, :trunk=>When.Resource('_m:ShireTerms::Month::*')}),
224
- Coordinates::DefaultDayIndex
225
- ],
226
- 'border' => '00-01-02',
228
+ 'indices' => _shire_indices,
229
+ 'border' => '00-00-02',
227
230
  'rule_table' => {
228
231
  'T' => {'Rule' =>['LC', 'SC', 'SC', 'SC']},
229
232
  'SC' => {'Rule' =>[365]*4 + [366, 365, 365, 365]*24},
230
233
  'LC' => {'Rule' =>[366, 365, 365, 365]*25},
231
- 365 => {'Length'=>[2]+[30]*6+[3]+[30]*6},
232
- 366 => {'Length'=>[2]+[30]*6+[4]+[30]*6}
234
+ 365 => {'Length'=>[2]+[30]*6+[3]+[30]*6, 'IDs'=>_IDs},
235
+ 366 => {'Length'=>[2]+[30]*6+[4]+[30]*6, 'IDs'=>_IDs}
233
236
  },
234
237
  'note' => 'ShireWeek'
235
238
  }]