when_exe 0.3.5 → 0.3.6

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 (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
  }]