when_exe 0.3.4 → 0.3.5

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 (168) hide show
  1. data/bin/locales.rb +2 -2
  2. data/bin/when.rb +2 -2
  3. data/lib/when_exe.rb +161 -55
  4. data/lib/when_exe/basictypes.rb +34 -26
  5. data/lib/when_exe/calendarnote.rb +654 -0
  6. data/lib/when_exe/calendartypes.rb +49 -474
  7. data/lib/when_exe/coordinates.rb +141 -34
  8. data/lib/when_exe/core/compatibility.rb +22 -2
  9. data/lib/when_exe/core/extension.rb +47 -3
  10. data/lib/when_exe/ephemeris.rb +82 -109
  11. data/lib/when_exe/googlecalendar.rb +1 -1
  12. data/lib/when_exe/icalendar.rb +26 -14
  13. data/lib/when_exe/inspect.rb +82 -68
  14. data/lib/when_exe/locales/af.rb +1 -1
  15. data/lib/when_exe/locales/ar.rb +1 -1
  16. data/lib/when_exe/locales/az.rb +1 -1
  17. data/lib/when_exe/locales/bg.rb +1 -1
  18. data/lib/when_exe/locales/bn.rb +1 -1
  19. data/lib/when_exe/locales/bs.rb +1 -1
  20. data/lib/when_exe/locales/ca.rb +1 -1
  21. data/lib/when_exe/locales/cs.rb +1 -1
  22. data/lib/when_exe/locales/cy.rb +1 -1
  23. data/lib/when_exe/locales/da.rb +1 -1
  24. data/lib/when_exe/locales/de.rb +1 -1
  25. data/lib/when_exe/locales/de_AT.rb +1 -1
  26. data/lib/when_exe/locales/de_CH.rb +1 -1
  27. data/lib/when_exe/locales/el.rb +1 -1
  28. data/lib/when_exe/locales/en.rb +1 -1
  29. data/lib/when_exe/locales/en_AU.rb +1 -1
  30. data/lib/when_exe/locales/en_CA.rb +1 -1
  31. data/lib/when_exe/locales/en_GB.rb +1 -1
  32. data/lib/when_exe/locales/en_IE.rb +1 -1
  33. data/lib/when_exe/locales/en_IN.rb +1 -1
  34. data/lib/when_exe/locales/en_NZ.rb +1 -1
  35. data/lib/when_exe/locales/en_US.rb +1 -1
  36. data/lib/when_exe/locales/eo.rb +1 -1
  37. data/lib/when_exe/locales/es.rb +1 -1
  38. data/lib/when_exe/locales/es_419.rb +1 -1
  39. data/lib/when_exe/locales/es_AR.rb +1 -1
  40. data/lib/when_exe/locales/es_CL.rb +1 -1
  41. data/lib/when_exe/locales/es_CO.rb +1 -1
  42. data/lib/when_exe/locales/es_CR.rb +1 -1
  43. data/lib/when_exe/locales/es_EC.rb +1 -1
  44. data/lib/when_exe/locales/es_MX.rb +1 -1
  45. data/lib/when_exe/locales/es_PA.rb +1 -1
  46. data/lib/when_exe/locales/es_PE.rb +1 -1
  47. data/lib/when_exe/locales/es_VE.rb +1 -1
  48. data/lib/when_exe/locales/et.rb +1 -1
  49. data/lib/when_exe/locales/eu.rb +1 -1
  50. data/lib/when_exe/locales/fa.rb +1 -1
  51. data/lib/when_exe/locales/fi.rb +1 -1
  52. data/lib/when_exe/locales/fr.rb +1 -1
  53. data/lib/when_exe/locales/fr_CA.rb +1 -1
  54. data/lib/when_exe/locales/fr_CH.rb +1 -1
  55. data/lib/when_exe/locales/gl.rb +1 -1
  56. data/lib/when_exe/locales/he.rb +1 -1
  57. data/lib/when_exe/locales/hi.rb +1 -1
  58. data/lib/when_exe/locales/hi_IN.rb +1 -1
  59. data/lib/when_exe/locales/hr.rb +1 -1
  60. data/lib/when_exe/locales/hu.rb +1 -1
  61. data/lib/when_exe/locales/id.rb +1 -1
  62. data/lib/when_exe/locales/is.rb +1 -1
  63. data/lib/when_exe/locales/it.rb +1 -1
  64. data/lib/when_exe/locales/it_CH.rb +1 -1
  65. data/lib/when_exe/locales/ja.rb +1 -1
  66. data/lib/when_exe/locales/kn.rb +1 -1
  67. data/lib/when_exe/locales/ko.rb +1 -1
  68. data/lib/when_exe/locales/lo.rb +1 -1
  69. data/lib/when_exe/locales/locales.rb +1 -1
  70. data/lib/when_exe/locales/lt.rb +1 -1
  71. data/lib/when_exe/locales/lv.rb +1 -1
  72. data/lib/when_exe/locales/mk.rb +1 -1
  73. data/lib/when_exe/locales/mn.rb +1 -1
  74. data/lib/when_exe/locales/ms.rb +1 -1
  75. data/lib/when_exe/locales/nb.rb +1 -1
  76. data/lib/when_exe/locales/ne.rb +1 -1
  77. data/lib/when_exe/locales/nl.rb +1 -1
  78. data/lib/when_exe/locales/nn.rb +1 -1
  79. data/lib/when_exe/locales/or.rb +1 -1
  80. data/lib/when_exe/locales/pl.rb +1 -1
  81. data/lib/when_exe/locales/pt.rb +1 -1
  82. data/lib/when_exe/locales/pt_BR.rb +1 -1
  83. data/lib/when_exe/locales/rm.rb +1 -1
  84. data/lib/when_exe/locales/ro.rb +1 -1
  85. data/lib/when_exe/locales/ru.rb +1 -1
  86. data/lib/when_exe/locales/sk.rb +1 -1
  87. data/lib/when_exe/locales/sl.rb +1 -1
  88. data/lib/when_exe/locales/sr.rb +1 -1
  89. data/lib/when_exe/locales/sv.rb +1 -1
  90. data/lib/when_exe/locales/sw.rb +1 -1
  91. data/lib/when_exe/locales/th.rb +1 -1
  92. data/lib/when_exe/locales/tl.rb +1 -1
  93. data/lib/when_exe/locales/tr.rb +1 -1
  94. data/lib/when_exe/locales/uk.rb +1 -1
  95. data/lib/when_exe/locales/ur.rb +1 -1
  96. data/lib/when_exe/locales/uz.rb +1 -1
  97. data/lib/when_exe/locales/vi.rb +1 -1
  98. data/lib/when_exe/locales/wo.rb +1 -1
  99. data/lib/when_exe/locales/zh_CN.rb +1 -1
  100. data/lib/when_exe/locales/zh_HK.rb +1 -1
  101. data/lib/when_exe/locales/zh_TW.rb +1 -1
  102. data/lib/when_exe/mini_application.rb +6 -2
  103. data/lib/when_exe/parts/enumerator.rb +13 -8
  104. data/lib/when_exe/parts/geometric_complex.rb +3 -5
  105. data/lib/when_exe/parts/locale.rb +185 -28
  106. data/lib/when_exe/parts/method_cash.rb +20 -10
  107. data/lib/when_exe/parts/resource.rb +154 -76
  108. data/lib/when_exe/parts/timezone.rb +11 -6
  109. data/lib/when_exe/region/bahai.rb +2 -2
  110. data/lib/when_exe/region/balinese.rb +296 -296
  111. data/lib/when_exe/region/chinese.rb +564 -564
  112. data/lib/when_exe/region/chinese_calendar.rb +5 -1
  113. data/lib/when_exe/region/chinese_epoch.rb +47 -102
  114. data/lib/when_exe/region/chinese_twin.rb +798 -0
  115. data/lib/when_exe/region/christian.rb +314 -338
  116. data/lib/when_exe/region/coptic.rb +88 -0
  117. data/lib/when_exe/region/ephemeric_notes.rb +322 -307
  118. data/lib/when_exe/region/french.rb +2 -2
  119. data/lib/when_exe/region/indian.rb +361 -272
  120. data/lib/when_exe/region/iranian.rb +2 -2
  121. data/lib/when_exe/region/islamic.rb +3 -3
  122. data/lib/when_exe/region/japanese.rb +1 -1
  123. data/lib/when_exe/region/japanese_notes.rb +165 -103
  124. data/lib/when_exe/region/japanese_residues.rb +56 -55
  125. data/lib/when_exe/region/japanese_twin.rb +228 -0
  126. data/lib/when_exe/region/javanese.rb +2 -2
  127. data/lib/when_exe/region/jewish.rb +2 -2
  128. data/lib/when_exe/region/korean.rb +4 -4
  129. data/lib/when_exe/region/m17n.rb +19 -19
  130. data/lib/when_exe/region/martian.rb +21 -9
  131. data/lib/when_exe/region/mayan.rb +19 -11
  132. data/lib/when_exe/region/moon.rb +7 -7
  133. data/lib/when_exe/region/nihon_shoki.rb +7 -7
  134. data/lib/when_exe/region/roman.rb +100 -100
  135. data/lib/when_exe/region/shire.rb +130 -147
  136. data/lib/when_exe/region/thai.rb +2 -2
  137. data/lib/when_exe/region/tibetan.rb +2 -2
  138. data/lib/when_exe/region/vietnamese.rb +383 -114
  139. data/lib/when_exe/region/world.rb +112 -129
  140. data/lib/when_exe/timestandard.rb +12 -1
  141. data/lib/when_exe/tmposition.rb +28 -14
  142. data/lib/when_exe/tmreference.rb +96 -93
  143. data/lib/when_exe/version.rb +1 -1
  144. data/test/examples/Terms.m17n +2 -2
  145. data/test/examples/sample.json +16 -0
  146. data/test/examples/sample.xml +1 -1
  147. data/test/test.rb +4 -0
  148. data/test/test/basictypes.rb +2 -2
  149. data/test/test/calendarnote.rb +69 -0
  150. data/test/test/calendartypes.rb +41 -1
  151. data/test/test/coordinates.rb +12 -1
  152. data/test/test/ephemeris.rb +13 -66
  153. data/test/test/icalendar.rb +3 -3
  154. data/test/test/inspect.rb +1 -1
  155. data/test/test/parts.rb +7 -4
  156. data/test/test/region/chinese.rb +45 -0
  157. data/test/test/region/coptic.rb +27 -0
  158. data/test/test/region/indian.rb +1 -1
  159. data/test/test/region/japanese.rb +4 -4
  160. data/test/test/region/jewish.rb +1 -1
  161. data/test/test/region/m17n.rb +7 -5
  162. data/test/test/region/residue.rb +2 -2
  163. data/test/test/region/vietnamese.rb +102 -0
  164. data/test/test/timestandard.rb +81 -0
  165. data/test/test/tmposition.rb +1 -1
  166. data/test/test/tmreference.rb +1 -1
  167. data/when_exe.gemspec +2 -2
  168. metadata +16 -7
@@ -0,0 +1,27 @@
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
6
+ described in the LICENSE.txt file included in this archive.
7
+ =end
8
+
9
+ module Test
10
+
11
+ class Coptic < Test::Unit::TestCase
12
+ def test__coptic
13
+ julian = When.Calendar('Julian')
14
+ gregorian = When.Calendar('Gregorian')
15
+ ethiopian = When.Calendar('Coptic?Epoch=8Y')
16
+ egyptian = When.Calendar('Coptic?Epoch=284Y')
17
+
18
+ [['2010-8-29', %w(2010-08-29 2010-09-11 2003-01-01 1727-01-01)],
19
+ ['2011-8-30', %w(2011-08-30 2011-09-12 2004-01-01 1728-01-01)],
20
+ ['2012-8-29', %w(2012-08-29 2012-09-11 2005-01-01 1729-01-01)],
21
+ ['2013-8-29', %w(2013-08-29 2013-09-11 2006-01-01 1730-01-01)]].each do |sample|
22
+ date = When.when?(sample[0], :frame=>julian)
23
+ assert_equal(sample[1], [date.to_s, (gregorian ^ date).to_s, (ethiopian ^ date).to_s, (egyptian ^ date).to_s])
24
+ end
25
+ end
26
+ end
27
+ end
@@ -50,7 +50,7 @@ module Test
50
50
  cc = When.Calendar('HinduSolar?type=SBS')
51
51
  date = When.when?('1913-01-01', {:frame=>cc})
52
52
  assert_equal([2448361, "1913-01-01", "1991-04-14"], [date.to_i, date.to_s, date.to_date.to_s])
53
- date = When::CalendarTypes::CalendarNote::HinduNote::Dates.new(date)
53
+ date = When::CalendarNote::HinduNote::Dates.new(date)
54
54
  assert_equal(2448361, date.to_i)
55
55
  end
56
56
  end
@@ -155,15 +155,15 @@ module Test
155
155
  long = dates.cal4note.s_terms.position(date)
156
156
  notes = date.notes(:indices => When::DAY,
157
157
  :notes => (13<<9|1<<48|1<<71),
158
- :locale => 'ja').map {|n| n[:value]}
158
+ :locale => 'ja').simplify[:value].compact
159
159
  result << [date.to_m17n/'ja', notes]
160
160
  end
161
161
  end
162
162
  end
163
163
  assert_equal(sample.shift, result)
164
- When::CalendarTypes::CalendarNote::JapaneseNote::SolarTerms.send(:patch=, {})
164
+ When::CalendarNote::JapaneseNote::SolarTerms.send(:patch=, {})
165
165
  end
166
- When::CalendarTypes::CalendarNote::JapaneseNote::SolarTerms.send(:patch=, nil)
166
+ When::CalendarNote::JapaneseNote::SolarTerms.send(:patch=, nil)
167
167
  end
168
168
 
169
169
  def test__lunar_phases
@@ -194,7 +194,7 @@ module Test
194
194
  %w(平成26.11.22 平成26.11.29 平成26.12.06 平成26.12.14),
195
195
  %w(平成26.12.22 平成26.12.29)
196
196
  ].each do |month|
197
- assert_equal([true], month.map {|date| When.when?(date).notes('月相').kind_of?(Hash)}.uniq)
197
+ assert_equal([true], month.map {|date| When.when?(date).is?('月相')}.uniq)
198
198
  end
199
199
  end
200
200
  =begin
@@ -53,7 +53,7 @@ module Test
53
53
  date += When.Duration('P1Y')
54
54
  end
55
55
 
56
- assert_equal("Common::BCE3761(-3760).10.07",
56
+ assert_equal("BCE3761(-3760).10.07",
57
57
  (When.era('BCE')[0] ^ When.Calendar('Jewish').domain[''].first).to_s)
58
58
 
59
59
  end
@@ -11,7 +11,7 @@ module Test
11
11
  class M17n < Test::Unit::TestCase
12
12
 
13
13
  First = [
14
- ["CalendarTerms", "CalendarTerms", "http://en.wikipedia.org/wiki/CalendarTerms"],
14
+ ["CalendarTerms", "CalendarTerms", ""],
15
15
  ["Month", "月", "http://ja.wikipedia.org/wiki/%E6%9C%88_(%E6%9A%A6)"],
16
16
  ["Month", "月", "http://ja.wikipedia.org/wiki/%E6%9C%88_(%E6%9A%A6)"],
17
17
  ["January", "1月", "http://ja.wikipedia.org/wiki/1%E6%9C%88"]
@@ -132,20 +132,22 @@ module Test
132
132
 
133
133
  ['1985-1-1',
134
134
  {:calendar=>["_c:Gregorian"], :sdn=>2446067, :cal_date=>[1985, 1, 1],
135
- :notes=>[[{:note=>"Month", :value=>"January"}],[]]}],
135
+ :notes=>[[{:note=>"Month", :value=>"January"}],[{:note=>"Week", :value=>"Tuesday(1)"}]]}],
136
136
 
137
137
  ['明治7.5.7',
138
138
  {:calendar=>["_e:Japanese::明治",1867], :sdn=>2405651, :cal_date=>[7, 5, 7],
139
139
  :notes=>[[{:note=>"干支", :value=>"甲戌(10)", :position=>"共通"}],
140
140
  [{:note=>"月名", :value=>"May", :position=>"月建"}],
141
- [{:note=>"干支", :value=>"甲子(00)", :position=>"共通"},
141
+ [{:note=>"七曜", :value=>"Thursday(3)", :position=>"共通"},
142
+ {:note=>"干支", :value=>"甲子(00)", :position=>"共通"},
142
143
  {:note=>"六曜", :value=>"赤口", :position=>"民間"}]]}],
143
144
 
144
145
  ['明治17.5.7',
145
146
  {:calendar=>["_e:Japanese::明治",1867], :sdn=>2409304, :cal_date=>[17, 5, 7],
146
147
  :notes=>[[{:note=>"干支", :value=>"甲申(20)", :position=>"共通"}],
147
148
  [{:note=>"月名", :value=>"May", :position=>"月建"}],
148
- [{:note=>"干支", :value=>"丁巳(53)", :position=>"共通"},
149
+ [{:note=>"七曜", :value=>"Wednesday(2)", :position=>"共通"},
150
+ {:note=>"干支", :value=>"丁巳(53)", :position=>"共通"},
149
151
  {:note=>"六曜", :value=>"先負", :position=>"民間"}]]}],
150
152
 
151
153
  ['CE-2010.06.08T12:00:00+09:00',
@@ -166,7 +168,7 @@ module Test
166
168
 
167
169
  ].each do |sample|
168
170
  date, verify = sample
169
- list = When.when?(date).to_h({:simple=>true})
171
+ list = When.when?(date).to_h({:method=>:to_m17n, :prefix=>true})
170
172
  [:calendar, :cal_date, :sdn, :clk_time].each do |key|
171
173
  assert_equal(verify[key], list[key])
172
174
  end
@@ -92,8 +92,8 @@ module Test
92
92
  def test__epoch_in_CE
93
93
  cals = [
94
94
  'Gregorian',
95
- 'EgyptianCoptic',
96
- 'EthiopianCoptic',
95
+ 'Coptic?Epoch=284Y',
96
+ 'Coptic?Epoch=8Y',
97
97
  'IndianNationalSolar',
98
98
  'HinduSolar?type=SBV',
99
99
  'HinduSolar?type=SBVZ',
@@ -0,0 +1,102 @@
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
6
+ described in the LICENSE.txt file included in this archive.
7
+ =end
8
+
9
+ module Test
10
+
11
+ class Vietnamese < Test::Unit::TestCase
12
+
13
+ Sample1 = [%w(紹明2.1.1 1139-02-08 紹明02(1139).01.01),
14
+ %w(ベトナム?LY=VSL::李朝::紹明2.1.1 1138-02-19 ベトナム?LY=VSL::李朝::紹明02(1138).01.01),
15
+ %w(嗣徳2.8.1 1849-09-17 ベトナム::阮朝::嗣徳02(1849).08.01),
16
+ %w(ベトナム?LY=VSL&DN=LDNK::阮朝::嗣徳2.8.1 1849-09-16 ベトナム?LY=VSL&DN=LDNK::阮朝::嗣徳02(1849).08.01),
17
+ %w(ベトナム::後期黎朝::福泰2.7.1 1644-08-02 ベトナム::後期黎朝::福泰02(1644).07.01),
18
+ %w(ベトナム::広南::阮福瀾10.7.1 1644-08-03 ベトナム::広南::阮福瀾10(1644).07.01),
19
+ %w(ベトナム::後期黎朝::慶徳4.9.1 1652-10-02 ベトナム::後期黎朝::慶徳04(1652).09.01),
20
+ %w(ベトナム::広南::阮福瀕4.9.1 1652-10-03 ベトナム::広南::阮福瀕04(1652).09.01),
21
+ %w(ベトナム::阮朝::建福1.1.31 1884-02-26 ベトナム::阮朝::建福01(1884).01.31)]
22
+
23
+ Sample2 = [%w(1659-01- 1659-01-23),
24
+ %w(1659-01= 1659-02-21),
25
+ %w(1659-02- 1659-03-23),
26
+ %w(1659-03- 1659-04-21),
27
+ %w(1659-04- 1659-05-21),
28
+ %w(1659-05- 1659-06-20),
29
+ %w(1659-06- 1659-07-19),
30
+ %w(1659-07- 1659-08-18),
31
+ %w(1659-08- 1659-09-16),
32
+ %w(1659-09- 1659-10-16),
33
+ %w(1659-10- 1659-11-14),
34
+ %w(1659-11- 1659-12-14),
35
+ %w(1659-12- 1660-01-12),
36
+ %w(1660-01- 1660-02-11),
37
+ %w(1660-02- 1660-03-11),
38
+ %w(1660-03- 1660-04-10),
39
+ %w(1660-04- 1660-05-09),
40
+ %w(1660-05- 1660-06-08),
41
+ %w(1660-06- 1660-07-07),
42
+ %w(1660-07- 1660-08-06),
43
+ %w(1660-08- 1660-09-05),
44
+ %w(1660-09- 1660-10-04),
45
+ %w(1660-10- 1660-11-03),
46
+ %w(1660-11- 1660-12-02),
47
+ %w(1660-12- 1661-01-01),
48
+
49
+ %w(1659-01- 1659-01-23),
50
+ %w(1659-01= 1659-02-22),
51
+ %w(1659-02- 1659-03-23),
52
+ %w(1659-03- 1659-04-21),
53
+ %w(1659-04- 1659-05-21),
54
+ %w(1659-05- 1659-06-20),
55
+ %w(1659-06- 1659-07-19),
56
+ %w(1659-07- 1659-08-18),
57
+ %w(1659-08- 1659-09-16),
58
+ %w(1659-09- 1659-10-16),
59
+ %w(1659-10- 1659-11-15), # 1659-11-14 ではない
60
+ %w(1659-11- 1659-12-14),
61
+ %w(1659-12- 1660-01-12),
62
+ %w(1660-01- 1660-02-11),
63
+ %w(1660-02- 1660-03-11),
64
+ %w(1660-03- 1660-04-10),
65
+ %w(1660-04- 1660-05-09),
66
+ %w(1660-05- 1660-06-08),
67
+ %w(1660-06- 1660-07-07),
68
+ %w(1660-07- 1660-08-06),
69
+ %w(1660-08- 1660-09-05),
70
+ %w(1660-09- 1660-10-04),
71
+ %w(1660-10- 1660-11-03),
72
+ %w(1660-11- 1660-12-03), # 1660-12-02 ではない
73
+ %w(1660-12- 1661-01-01)]
74
+
75
+ def test_vietnamese_era
76
+
77
+ When.CalendarEra('Vietnamese')
78
+ When.CalendarEra('Vietnamese?LY=VSL')
79
+ When.CalendarEra('Vietnamese?LY=VSL&DN=LDNK')
80
+
81
+ Sample1.each do |sample|
82
+ date = When.when?(sample[0])
83
+ assert_equal(sample[1..2], [date.to_date.to_s, date.to_s])
84
+ end
85
+ end
86
+
87
+ def test_vietnamese_date
88
+
89
+ When.CalendarEra('Vietnamese')
90
+
91
+ sample = Sample2
92
+ [1544, 1631].each do |epoch|
93
+ calendar = When.Calendar('Vietnamese' + epoch.to_s)
94
+ date = When.TemporalPosition(1659, 1, :frame=>calendar)
95
+ 25.times do
96
+ assert_equal(sample.shift, [date.to_s, date.to_date.to_s])
97
+ date = date.next
98
+ end
99
+ end
100
+ end
101
+ end
102
+ end
@@ -0,0 +1,81 @@
1
+ # -*- coding: utf-8 -*-
2
+ =begin
3
+ Copyright (C) 2011-2014 Takashi SUGA
4
+
5
+ You may use and/or modify this file according to the license
6
+ described in the LICENSE.txt file included in this archive.
7
+ =end
8
+
9
+ module Test::TimeStandard
10
+
11
+ class UniversalTime < Test::Unit::TestCase
12
+ def view(time)
13
+ return time unless time.instance_of?(When::Coordinates::LeapSeconds)
14
+ return [time.trunk, time.branch, time.second]
15
+ end
16
+
17
+ def test__delta_t
18
+ date = When.when?('2009-01-01T00:00:00Z')
19
+ assert_equal("2008-12-31T23:59:01Z", (date - When::TM::IntervalLength.new(60, 'second')).to_s)
20
+ assert_equal("2008-12-31T23:59:00Z", (date - When::Duration('PT60S')).to_s)
21
+
22
+ date = When::TM::JulianDate.dynamical_time((2500000-(When::TM::JulianDate::JD19700101-0.5))*675)
23
+ assert_equal(2500000.0, +date)
24
+ assert_equal(true, +date > date.to_f)
25
+
26
+ date = When::TM::JulianDate.universal_time((2500000-(When::TM::JulianDate::JD19700101-0.5))*675)
27
+ assert_equal(2500000.0, date.to_f)
28
+ assert_equal(true, +date > date.to_f)
29
+
30
+ assert_equal((40 + 377.0/2048), When::TimeStandard.delta_t(When.when?('1970-01-01T').to_f))
31
+
32
+ date = When.when?('2008-10-31T23:59:60Z')
33
+ assert_equal([[2008, 11, 1], [0, 0, 0, 0]], [date.cal_date, date.clk_time.clk_time])
34
+
35
+ pair = When::Coordinates::Pair.new(1,1)
36
+ assert_equal([-1, -1, 1], [0.9, 1, 1.1].map {|v| v<=>pair})
37
+
38
+ time = When.Resource('_t:UniversalTime')
39
+ date0 = When.when?('2008-12-31T23:59:58Z') ^ When.Duration('1s') # Duration('PT1S')
40
+ [
41
+ "2008-12-31T23:59:58Z",
42
+ "2008-12-31T23:59:59Z",
43
+ "2008-12-31T23:59:60Z",
44
+ "2009-01-01T00:00:00Z",
45
+ "2009-01-01T00:00:01Z"
46
+ ].each do |sample|
47
+ date = date0.next
48
+ assert_equal([sample, true], [date.to_s, date.universal_time == time.from_dynamical_time(date.dynamical_time)])
49
+ end
50
+
51
+ it = When::V::Event.new({
52
+ 'rrule' => 'FREQ=MINUTELY;BYSECOND=59,60',
53
+ 'dtstart' => '2008-12-31T23:58:59Z'
54
+ }).each
55
+
56
+ [
57
+ "2008-12-31T23:58:59Z",
58
+ "2008-12-31T23:59:59Z",
59
+ "2009-01-01T00:00:59Z",
60
+ "2009-01-01T00:01:59Z"
61
+ ].each do |sample|
62
+ assert_equal(sample, it.next.to_s)
63
+ end
64
+
65
+ it = When::V::Event.new({
66
+ 'rrule' => 'FREQ=1s', #;BYSECOND=59,60',
67
+ 'dtstart' => '2008-12-31T23:59:58Z'
68
+ }).each
69
+
70
+ [
71
+ "2008-12-31T23:59:58Z",
72
+ "2008-12-31T23:59:59Z",
73
+ "2008-12-31T23:59:60Z",
74
+ "2009-01-01T00:00:00Z",
75
+ "2009-01-01T00:00:01Z"
76
+ ].each do |sample|
77
+ assert_equal(sample, it.next.to_s)
78
+ end
79
+ end
80
+ end
81
+ end
@@ -1,6 +1,6 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  =begin
3
- Copyright (C) 2011-2012 Takashi SUGA
3
+ Copyright (C) 2011-2014 Takashi SUGA
4
4
 
5
5
  You may use and/or modify this file according to the license
6
6
  described in the LICENSE.txt file included in this archive.
@@ -1,6 +1,6 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  =begin
3
- Copyright (C) 2011 Takashi SUGA
3
+ Copyright (C) 2011-2014 Takashi SUGA
4
4
 
5
5
  You may use and/or modify this file according to the license
6
6
  described in the LICENSE.txt file included in this archive.
data/when_exe.gemspec CHANGED
@@ -8,8 +8,8 @@ Gem::Specification.new do |s|
8
8
  s.authors = ["Takashi SUGA"]
9
9
  s.email = ["suchowan@box.email.ne.jp"]
10
10
  s.homepage = "http://www.asahi-net.or.jp/~dd6t-sg/"
11
- s.summary = %q{A multicultural and multilingualized calendar library based on ISO 8601, ISO 19108 and RFC 5545}
12
- s.description = %q{This library supports ISO 8601, ISO 19108, RFC 5545 and RFC6350. This version is a beta version and in the evaluation stage. So, its APIs may be changed in future. Please refer to http://suchowan.at.webry.info/theme/a543700674.html for the recent history (Sorry only in Japanese).}
11
+ s.summary = %q{A multicultural and multilingualized calendar library based on ISO 8601, ISO 19108, RFC 5545 and RFC6350}
12
+ s.description = %q{A multicultural and multilingualized calendar library based on ISO 8601, ISO 19108, RFC 5545 and RFC6350. This version is a beta version and in the evaluation stage. So, its APIs may be changed in future. Please refer to http://suchowan.at.webry.info/theme/a543700674.html for the recent history (Sorry only in Japanese).}
13
13
 
14
14
  s.rubyforge_project = "when_exe"
15
15
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: when_exe
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.4
4
+ version: 0.3.5
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,12 +9,12 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-02-10 00:00:00.000000000Z
12
+ date: 2014-04-23 00:00:00.000000000Z
13
13
  dependencies: []
14
- description: This library supports ISO 8601, ISO 19108, RFC 5545 and RFC6350. This
15
- version is a beta version and in the evaluation stage. So, its APIs may be changed
16
- in future. Please refer to http://suchowan.at.webry.info/theme/a543700674.html for
17
- the recent history (Sorry only in Japanese).
14
+ description: A multicultural and multilingualized calendar library based on ISO 8601,
15
+ ISO 19108, RFC 5545 and RFC6350. This version is a beta version and in the evaluation
16
+ stage. So, its APIs may be changed in future. Please refer to http://suchowan.at.webry.info/theme/a543700674.html
17
+ for the recent history (Sorry only in Japanese).
18
18
  email:
19
19
  - suchowan@box.email.ne.jp
20
20
  executables:
@@ -36,6 +36,7 @@ files:
36
36
  - bin/when.rb.config
37
37
  - lib/when_exe.rb
38
38
  - lib/when_exe/basictypes.rb
39
+ - lib/when_exe/calendarnote.rb
39
40
  - lib/when_exe/calendartypes.rb
40
41
  - lib/when_exe/coordinates.rb
41
42
  - lib/when_exe/core/compatibility.rb
@@ -146,7 +147,9 @@ files:
146
147
  - lib/when_exe/region/chinese.rb
147
148
  - lib/when_exe/region/chinese_calendar.rb
148
149
  - lib/when_exe/region/chinese_epoch.rb
150
+ - lib/when_exe/region/chinese_twin.rb
149
151
  - lib/when_exe/region/christian.rb
152
+ - lib/when_exe/region/coptic.rb
150
153
  - lib/when_exe/region/ephemeric_notes.rb
151
154
  - lib/when_exe/region/far_east.rb
152
155
  - lib/when_exe/region/french.rb
@@ -157,6 +160,7 @@ files:
157
160
  - lib/when_exe/region/japanese.rb
158
161
  - lib/when_exe/region/japanese_notes.rb
159
162
  - lib/when_exe/region/japanese_residues.rb
163
+ - lib/when_exe/region/japanese_twin.rb
160
164
  - lib/when_exe/region/javanese.rb
161
165
  - lib/when_exe/region/jewish.rb
162
166
  - lib/when_exe/region/korean.rb
@@ -194,11 +198,13 @@ files:
194
198
  - test/examples/Test.ics
195
199
  - test/examples/USA-DST.ics
196
200
  - test/examples/geometric_complex.rb
201
+ - test/examples/sample.json
197
202
  - test/examples/sample.xml
198
203
  - test/examples/today.rb
199
204
  - test/test.rb
200
205
  - test/test.rb.config
201
206
  - test/test/basictypes.rb
207
+ - test/test/calendarnote.rb
202
208
  - test/test/calendartypes.rb
203
209
  - test/test/coordinates.rb
204
210
  - test/test/ephemeris.rb
@@ -208,6 +214,7 @@ files:
208
214
  - test/test/parts.rb
209
215
  - test/test/region/chinese.rb
210
216
  - test/test/region/civil.rb
217
+ - test/test/region/coptic.rb
211
218
  - test/test/region/french.rb
212
219
  - test/test/region/geologicalage.rb
213
220
  - test/test/region/indian.rb
@@ -223,6 +230,8 @@ files:
223
230
  - test/test/region/sun.rb
224
231
  - test/test/region/thai.rb
225
232
  - test/test/region/tibetan.rb
233
+ - test/test/region/vietnamese.rb
234
+ - test/test/timestandard.rb
226
235
  - test/test/tmobjects.rb
227
236
  - test/test/tmposition.rb
228
237
  - test/test/tmreference.rb
@@ -251,6 +260,6 @@ rubygems_version: 1.7.2
251
260
  signing_key:
252
261
  specification_version: 3
253
262
  summary: A multicultural and multilingualized calendar library based on ISO 8601,
254
- ISO 19108 and RFC 5545
263
+ ISO 19108, RFC 5545 and RFC6350
255
264
  test_files: []
256
265
  has_rdoc: