when_exe 0.3.4 → 0.3.5

Sign up to get free protection for your applications and to get access to all the features.
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: