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
@@ -9,10 +9,9 @@ module When
9
9
 
10
10
  class BasicTypes::M17n
11
11
 
12
- CopticTerms = [self, [
13
- "namespace:[en=http://en.wikipedia.org/wiki/, ja=http://ja.wikipedia.org/wiki/]",
12
+ Coptic = [self, [
14
13
  "locale:[=en:, ja=ja:, alias]",
15
- "names:[CopticTerms=]",
14
+ "names:[Coptic=]",
16
15
  "[Coptic=en:Coptic_calendar, コプト暦 ]",
17
16
  "[Ethiopian=en:Ethiopian_calendar, エチオピア暦=en:Ethiopian_calendar]",
18
17
 
@@ -55,25 +54,25 @@ module When
55
54
  module CalendarTypes
56
55
 
57
56
  _egyptian_month_indices = [
58
- When::Coordinates::Index.new({:unit =>13, :trunk=>When::Parts::Resource._instance('_m:CopticTerms::EgyptianMonth::*')}),
59
- When::Coordinates::Index.new
57
+ When.Index('Coptic::EgyptianMonth', {:unit =>13}),
58
+ When::Coordinates::DefaultDayIndex
60
59
  ]
61
60
 
62
61
  _ethiopian_month_indices = [
63
- When::Coordinates::Index.new({:unit =>13, :trunk=>When::Parts::Resource._instance('_m:CopticTerms::EthiopianMonth::*')}),
64
- When::Coordinates::Index.new
62
+ When.Index('Coptic::EthiopianMonth', {:unit =>13}),
63
+ When::Coordinates::DefaultDayIndex
65
64
  ]
66
65
 
67
66
  #
68
67
  # Coptic Calendar in Egypt and Ethiopia
69
68
  #
70
69
  Coptic = [{'Epoch'=>{'284Y'=>{'origin_of_MSC' => 1,
71
- 'label' => Parts::Resource._instance('_m:CopticTerms::Coptic'),
70
+ 'label' => 'Coptic::Coptic',
72
71
  'indices' => _egyptian_month_indices},
73
72
  '8Y'=>{'origin_of_MSC' => 277,
74
- 'label' => Parts::Resource._instance('_m:CopticTerms::Ethiopian'),
73
+ 'label' => 'Coptic::Ethiopian',
75
74
  'indices' => _ethiopian_month_indices}}}, CyclicTableBased, {
76
- 'label' => Parts::Resource._instance('_m:CopticTerms::Coptic'),
75
+ 'label' => 'Coptic::Coptic',
77
76
  'origin_of_LSC' => 1825030,
78
77
  'origin_of_MSC' => 1,
79
78
  'epoch_in_CE' => 285,
@@ -0,0 +1,48 @@
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
+ Dee = [self, [
13
+ "namespace:[en=http://www.hermetic.ch/cal_stud/]",
14
+ "locale:[=en:, ja]",
15
+ "names:[Dee=en:dee-cecil-calendar.htm, ディー暦=]",
16
+ "[DeeCecil=en:dee-cecil-calendar.htm, ディー-セシル暦=]"
17
+ ]]
18
+ end
19
+
20
+ module CalendarTypes
21
+
22
+ _rule_table = {
23
+ 'T' => {'Rule' =>(0...33).to_a.map {|year| (year % 33) % 4 == 3 ? 366 : 365}},
24
+ 365 => {'Length'=>[31,28] + [31,30,31,30,31] * 2},
25
+ 366 => {'Length'=>[31,29] + [31,30,31,30,31] * 2}
26
+ }
27
+
28
+ #
29
+ # Dee Calendar
30
+ #
31
+ Dee = [CyclicTableBased, {
32
+ 'label' => 'Dee',
33
+ 'origin_of_LSC' => 1721425,
34
+ 'origin_of_MSC' => 1,
35
+ 'rule_table' => _rule_table
36
+ }]
37
+
38
+ #
39
+ # DeeCecil Calendar
40
+ #
41
+ DeeCecil = [CyclicTableBased, {
42
+ 'label' => 'Dee::DeeCecil',
43
+ 'origin_of_LSC' => 1721426,
44
+ 'origin_of_MSC' => 1,
45
+ 'rule_table' => _rule_table
46
+ }]
47
+ end
48
+ end
@@ -0,0 +1,225 @@
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
+ Discordian = [self, [
13
+ "locale:[=en:, ja]",
14
+ "names:[Discordian=en:Discordian_calendar, ディスコーディアン暦=]",
15
+ [self,
16
+ "names:[IntercalaryDay=en:Intercalation, 閏日=ja:%%<閏>]",
17
+ "[%0sSt. Tib's Day=, %0s閏日=]"
18
+ ]
19
+ ]]
20
+ end
21
+
22
+ #
23
+ # Discordian Note
24
+ #
25
+ class CalendarNote::DiscordianWeek < CalendarNote::Week
26
+
27
+ Notes = [When::BasicTypes::M17n, [
28
+ "namespace:[en=http://en.wiktionary.org/wiki/]",
29
+ "locale:[=en:]",
30
+ "names:[Discordian]",
31
+
32
+ # Notes for year ----------------------------
33
+ [When::BasicTypes::M17n,
34
+ "names:[year]"
35
+ ],
36
+
37
+ # Notes for month ----------------------------
38
+ [When::BasicTypes::M17n,
39
+ "names:[month]",
40
+ [When::BasicTypes::M17n,
41
+ "names:[Month]",
42
+ "[Chaos=en:chaos ]",
43
+ "[Discord=en:discord ]",
44
+ "[Confusion=en:confusion ]",
45
+ "[Bureaucracy ]",
46
+ "[The Aftermath=en:aftermath]"
47
+ ]
48
+ ],
49
+
50
+ # Notes for day ----------------------------
51
+ [When::BasicTypes::M17n,
52
+ "names:[day]",
53
+ [When::BasicTypes::M17n,
54
+ "names:[Week]",
55
+ [DayOfWeek, "label:[Sweetmorn= ]", {'delta'=>5}],
56
+ [DayOfWeek, "label:[Boomtime= ]", {'delta'=>5}],
57
+ [DayOfWeek, "label:[Pungenday= ]", {'delta'=>5}],
58
+ [DayOfWeek, "label:[Prickle-Prickle=]", {'delta'=>5}],
59
+ [DayOfWeek, "label:[Setting Orange= ]", {'delta'=>5}],
60
+ [DayOfWeek, "label:[Out of Week= ]", {'delta'=>1461}]
61
+ ],
62
+
63
+ [When::BasicTypes::M17n,
64
+ "names:[Holyday=]",
65
+ "[St. Tib's Day=]", # 02-29 St. Tib's Day
66
+ "[Mungday= ]", # 01-05 Chaos 5
67
+ "[Chaoflux= ]", # 02-19 Chaos 50
68
+ "[Mojoday= ]", # 03-19 Discord 5
69
+ "[Discoflux= ]", # 05-03 Discord 50
70
+ "[Syaday= ]", # 05-31 Confusion 5
71
+ "[Confuflux= ]", # 07-15 Confusion 50
72
+ "[Zaraday= ]", # 08-12 Bureaucracy 5
73
+ "[Bureflux= ]", # 09-26 Bureaucracy 50
74
+ "[Maladay= ]", # 10-24 The Aftermath 5
75
+ "[Afflux= ]" # 12-08 The Aftermath 50
76
+ ],
77
+
78
+ "[Standard_Week]"
79
+ ]
80
+ ]]
81
+
82
+ # @private
83
+ IndexOfWeek = [0, 1, 2, 3, 5, 4]
84
+
85
+ # Just or last sweetmorn
86
+ #
87
+ # @param [When::TM::TemporalPosition] date
88
+ # @param [nil] parameter (not used)
89
+ #
90
+ # @return [When::TM::TemporalPosition]
91
+ #
92
+ def sweetmorn(date, parameter=nil)
93
+ date = _to_date_for_note(date)
94
+ y,m,d = date.cal_date
95
+ date -= When::P1D if date.length(When::MONTH) == 74 && +d == 60
96
+ dow = ((m-1)*73+d*1-1) % 5
97
+ date -= When::P1D * dow unless dow == 0
98
+ date.events = [@days_of_week[0]]
99
+ date
100
+ end
101
+
102
+ # Erisian week
103
+ #
104
+ # @param [When::TM::CalDate] date
105
+ # @param [When::TM::CalDate] base
106
+ #
107
+ # @return [String]
108
+ #
109
+ def week(date, base=nil)
110
+ date = _to_date_for_note(date)
111
+ y,m,d = date.cal_date
112
+ dow = d*0 == 0 ? ((m-1)*73+d*1-1) % 5 : 5
113
+ length = (base || date).length(When::MONTH) == 73 ? 5 : 6
114
+ index = length == 5 ? dow : IndexOfWeek[dow]
115
+ {:value=>@days_of_week[dow], :position=>[index,length]}
116
+ end
117
+
118
+ #
119
+ # Week labels
120
+ #
121
+ # @param [When::TM::TemporalPosition] date
122
+ #
123
+ # @return [Array<When::CalendarNote::Week::DayOfWeek>]
124
+ #
125
+ def week_labels(date)
126
+ date = _to_date_for_note(date)
127
+ date.length(When::MONTH) == 73 ?
128
+ @days_of_week.child[0...5] :
129
+ @days_of_week.child[0...4] + [@days_of_week.child[5]] + [@days_of_week.child[4]]
130
+ end
131
+
132
+ # Holyday
133
+ #
134
+ # @param [When::TM::CalDate] date
135
+ #
136
+ # @return [String]
137
+ #
138
+ def holyday(date)
139
+ date = _to_date_for_note(date)
140
+ y, m, d = date.cal_date
141
+ index =
142
+ case +d
143
+ when 5 ; 1
144
+ when 50 ; 2
145
+ else ; d * 0 - 1
146
+ end
147
+ return nil if index == -1
148
+ When.CalendarNote('DiscordianWeek/Notes::day::Holyday::*')[(m-1)*2+index]
149
+ end
150
+
151
+ #
152
+ # convert date to Discordian date
153
+ #
154
+ # @private
155
+ def _to_date_for_note(date)
156
+ date = When::Discordian ^ date unless date.frame.label.to_s == 'Discordian'
157
+ date
158
+ end
159
+
160
+ private
161
+
162
+ # object normalization
163
+ #
164
+ # @private
165
+ def _normalize(args=[], options={})
166
+ @event ||= 'sweetmorn'
167
+ super
168
+ end
169
+ end
170
+
171
+ module CalendarTypes
172
+
173
+ #
174
+ # Discordian Calendar
175
+ #
176
+ class Discordian < TableBased
177
+
178
+ # @private
179
+ Normal_IDS = (1..73).to_a
180
+
181
+ # @private
182
+ Long_IDS = (1..59).to_a + [When.Pair(59,1)] + (60..73).to_a
183
+
184
+ private
185
+
186
+ #
187
+ # Object Normalization
188
+ #
189
+ def _normalize(args=[], options={})
190
+ @label ||= 'Discordian'
191
+ @epoch_in_CE ||= -1166
192
+ @note ||= 'DiscordianWeek'
193
+ @engine ||= 'Gregorian'
194
+ @engine = When.Calendar(@engine)
195
+ @indices ||= [
196
+ When.Index('DiscordianWeekNotes::month::Month', {:unit =>5}),
197
+ When.Index({:branch=>{1=>When.M17n('Discordian::IntercalaryDay')[0]}})
198
+ ]
199
+ @rule_table ||= {
200
+ 365 => {'Length'=> [73]*5},
201
+ 366 => {'Length'=> [74] + [73]*4}
202
+ }
203
+ super
204
+ end
205
+
206
+ # first day of year
207
+ #
208
+ def _sdn_(date)
209
+ year = +date[0] + @epoch_in_CE
210
+ @engine._coordinates_to_number(year, 0, 0)
211
+ end
212
+
213
+ #
214
+ # day arrangement pattern
215
+ #
216
+ def _ids_(date)
217
+ y, m = date
218
+ return super unless m
219
+ return Normal_IDS unless m == 0
220
+ year = +y + @epoch_in_CE
221
+ @engine._length([year,1]) == 28 ? Normal_IDS : Long_IDS
222
+ end
223
+ end
224
+ end
225
+ end
@@ -6,7 +6,7 @@
6
6
  =end
7
7
 
8
8
  require 'when_exe/region/chinese'
9
- require 'when_exe/region/chinese_calendar'
9
+ require 'when_exe/region/chinese/calendars'
10
10
 
11
11
  #
12
12
  # 王位年号一覧表
@@ -24,7 +24,6 @@ module When
24
24
  # 満洲
25
25
  #
26
26
  Manchurian = [self, [
27
- "namespace:[ja=http://ja.wikipedia.org/wiki/, en=http://en.wikipedia.org/wiki/]",
28
27
  "locale:[=ja:, en=en:, alias]",
29
28
  "area:[満洲,Manchurian=en:Manchuria]",
30
29
  [self,
@@ -52,7 +51,7 @@ module When
52
51
  ],
53
52
  [self,
54
53
  "period:[満洲国]",
55
- ["[大同]1", "@F", "name=[溥儀];1932-03-01^Gregorian?note=ChineseNotes"],
54
+ ["[大同]1", "@F", "name=[溥儀];1932-03-01^Gregorian?note=Chinese"],
56
55
  ["[康徳]1.03.01","", "1934-03-01", "1945-08-18="]
57
56
  ],
58
57
  ]]
@@ -61,7 +60,6 @@ module When
61
60
  # 柔然
62
61
  #
63
62
  Rouran = [self, [
64
- "namespace:[ja=http://ja.wikipedia.org/wiki/, en=http://en.wikipedia.org/wiki/]",
65
63
  "locale:[=ja:, en=en:, alias]",
66
64
  "area:[柔然,Rouran]",
67
65
  ["[永康]1", "@A", "name=[予成];464^Chinese0445"],
@@ -75,7 +73,6 @@ module When
75
73
  # 高昌
76
74
  #
77
75
  Gaochang = [self, [
78
- "namespace:[ja=http://ja.wikipedia.org/wiki/, en=http://en.wikipedia.org/wiki/]",
79
76
  "locale:[=ja:, en=en:, alias]",
80
77
  "area:[高昌,Gaochang]",
81
78
  ["[章和]1", "@A", "name=[麹堅];531^Chinese0523"],
@@ -93,7 +90,6 @@ module When
93
90
  # 雲南
94
91
  #
95
92
  Yunnan = [self, [
96
- "namespace:[ja=http://ja.wikipedia.org/wiki/, en=http://en.wikipedia.org/wiki/]",
97
93
  "locale:[=ja:, en=en:, alias]",
98
94
  "area:[雲南,Yunnan]",
99
95
  [self,
@@ -8,10 +8,10 @@
8
8
  module When
9
9
  class BasicTypes::M17n
10
10
 
11
- FrenchTerms = [self, [
12
- "namespace:[en=http://en.wikipedia.org/wiki/, ja=http://ja.wikipedia.org/wiki/]",
11
+ French = [self, [
13
12
  "locale:[=en:, ja=ja:, alias]",
14
- "names:[FrenchTerms=]",
13
+ "names:[French=]",
14
+ "[FrenchRepublican=en:French_Republican_Calendar, フランス共和暦=ja:%%<フランス革命暦>]",
15
15
 
16
16
  [self,
17
17
  "names:[Month, 月=ja:%%<月_(暦)>]",
@@ -32,29 +32,19 @@ module When
32
32
  ]]
33
33
  end
34
34
 
35
- class TM::CalendarEra
36
-
37
- # フランス共和暦
38
- French = [self, [
39
- "namespace:[en=http://en.wikipedia.org/wiki/, ja=http://ja.wikipedia.org/wiki/]",
40
- "locale:[=en:, ja=ja:, alias]",
41
- "period:[FrenchRepublican=en:French_Republican_Calendar, フランス共和暦=ja:%%<フランス革命暦>]",
42
- ["[FRE=en:French_Republican_Calendar, 共和暦=ja:%%<フランス革命暦>, alias:Republican_Era]1.1.1",
43
- "Calendar Epoch", "1793-01-01^FrenchRepublican", "1806-04-11"],
44
- ]]
45
- end
46
-
47
35
  module CalendarTypes
48
36
 
49
37
  #
50
38
  # French Calendar
51
39
  #
52
40
  FrenchRepublican = [YearLengthTableBased, {
41
+ 'label' => 'French::FrenchRepublican',
53
42
  'indices' => [
54
- When::Coordinates::Index.new({:unit =>13, :trunk=>When.Resource('_m:FrenchTerms::Month::*')}),
43
+ When.Index('French::Month', {:unit =>13}),
55
44
  When::Coordinates::DefaultDayIndex
56
45
  ],
57
- 'origin_of_MSC' => +1,
46
+ 'origin_of_MSC' => -1791,
47
+ 'epoch_in_CE' => +1,
58
48
  'cycle_offset' => Rational(1,2),
59
49
  'time_basis' => '+00:09:20',
60
50
  'rule_table' => {
@@ -11,7 +11,6 @@ class When::TM::OrdinalReferenceSystem
11
11
  # Geological Ages
12
12
  #
13
13
  GeologicalAge = [self, [
14
- "namespace:[ja=http://ja.wikipedia.org/wiki/, en=http://en.wikipedia.org/wiki/]",
15
14
  "locale:[=ja:, en=en:]",
16
15
  "*area:[地球,Earth]",
17
16
 
@@ -0,0 +1,58 @@
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
+ =begin
9
+
10
+ References
11
+
12
+ (1) http://calendars.wikia.com/wiki/Goddess_Lunar_Calendar
13
+ (2) http://www.fractal-timewave.com/mmgc/mmgc.htm
14
+
15
+ =end
16
+
17
+ module When
18
+
19
+ class BasicTypes::M17n
20
+
21
+ Goddess = [self, [
22
+ "locale:[=en:, ja]",
23
+ "names:[Goddess=]",
24
+ "[Goddess(MMG)=http://calendars.wikia.com/wiki/Goddess_Lunar_Calendar, ゴッデス暦, *alias:Goddess]",
25
+
26
+ [self,
27
+ "names:[Month]",
28
+ "[Athena]", "[Brigid]", "[Cerridwen]", "[Diana ]",
29
+ "[Epona ]", "[Freya ]", "[Gaea ]", "[Hathor]",
30
+ "[Inanna]", "[Juno ]", "[Kore ]", "[Lilith]",
31
+ "[Maria ]"
32
+ ]
33
+ ]]
34
+ end
35
+
36
+ module CalendarTypes
37
+
38
+ #
39
+ # Goddess Calendar
40
+ #
41
+ Goddess = [CyclicTableBased, {
42
+ 'label' => 'Goddess::Goddess',
43
+ 'origin_of_LSC' => 2415611 - 180432, # 1901-08-14 Base Cycle = No.1
44
+ 'indices' => [
45
+ When.Index({:unit=>470}),
46
+ When.Index('Goddess::Month'),
47
+ When::Coordinates::DefaultDayIndex,
48
+ ],
49
+ 'rule_table' => {
50
+ 'T' => {'Rule' =>(['L'] * 9 + ['S']) * 23 +
51
+ (['L'] * 4 + ['S']) * 2 +
52
+ (['L'] * 9 + ['S']) * 23},
53
+ 'L' => {'Length'=>[30, 29] * 6 + [30]},
54
+ 'S' => {'Length'=>[30, 29] * 6 + [29]}
55
+ }
56
+ }]
57
+ end
58
+ end