when_exe 0.4.2 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (144) hide show
  1. checksums.yaml +5 -5
  2. data/LICENSE.ja.txt +8 -21
  3. data/LICENSE.txt +5 -27
  4. data/README.md +25 -79
  5. data/bin/.pryrc +9 -0
  6. data/bin/make_ttl.rb +3 -2
  7. data/bin/make_ttl.rb.config +3 -3
  8. data/lib/when_exe.rb +101 -5
  9. data/lib/when_exe/basictypes.rb +47 -16
  10. data/lib/when_exe/calendarnote.rb +27 -18
  11. data/lib/when_exe/calendartypes.rb +12 -50
  12. data/lib/when_exe/coordinates.rb +37 -391
  13. data/lib/when_exe/ephemeris.rb +53 -14
  14. data/lib/when_exe/ephemeris/eclipse.rb +8 -8
  15. data/lib/when_exe/ephemeris/moon.rb +333 -333
  16. data/lib/when_exe/ephemeris/notes.rb +29 -17
  17. data/lib/when_exe/ephemeris/phase_table.rb +825 -0
  18. data/lib/when_exe/ephemeris/term_table.rb +603 -0
  19. data/lib/when_exe/events.rb +1888 -0
  20. data/lib/when_exe/google_api.rb +26 -31
  21. data/lib/when_exe/icalendar.rb +129 -12
  22. data/lib/when_exe/inspect.rb +5 -5
  23. data/lib/when_exe/linkeddata.rb +43 -23
  24. data/lib/when_exe/locales/akt.rb +63 -0
  25. data/lib/when_exe/locales/encoding_conversion.rb +134 -134
  26. data/lib/when_exe/locales/iast.rb +90 -90
  27. data/lib/when_exe/locales/locale.rb +88 -18
  28. data/lib/when_exe/locales/transliteration_table.rb +62 -62
  29. data/lib/when_exe/mini_application.rb +14 -8
  30. data/lib/when_exe/namespace.rb +42 -0
  31. data/lib/when_exe/parts/enumerator.rb +16 -5
  32. data/lib/when_exe/parts/geometric_complex.rb +52 -2
  33. data/lib/when_exe/parts/method_cash.rb +229 -224
  34. data/lib/when_exe/parts/resource.rb +65 -35
  35. data/lib/when_exe/parts/timezone.rb +25 -34
  36. data/lib/when_exe/region/balinese.rb +5 -3
  37. data/lib/when_exe/region/chinese.rb +39 -11
  38. data/lib/when_exe/region/chinese/calendars.rb +1016 -1016
  39. data/lib/when_exe/region/chinese/epochs.rb +7 -7
  40. data/lib/when_exe/region/chinese/notes.rb +3 -3
  41. data/lib/when_exe/region/chinese/twins.rb +134 -11
  42. data/lib/when_exe/region/dee.rb +4 -4
  43. data/lib/when_exe/region/discordian.rb +1 -1
  44. data/lib/when_exe/region/geologicalage.rb +139 -128
  45. data/lib/when_exe/region/hanke_henry.rb +4 -4
  46. data/lib/when_exe/region/indian.rb +77 -8
  47. data/lib/when_exe/region/international_fixed.rb +3 -3
  48. data/lib/when_exe/region/islamic.rb +1 -1
  49. data/lib/when_exe/region/japanese.rb +12 -8
  50. data/lib/when_exe/region/japanese/calendars.rb +397 -397
  51. data/lib/when_exe/region/japanese/eclipses.rb +1194 -1194
  52. data/lib/when_exe/region/japanese/epochs.rb +8 -4
  53. data/lib/when_exe/region/japanese/location.rb +93 -0
  54. data/lib/when_exe/region/japanese/nihon_shoki.rb +70 -70
  55. data/lib/when_exe/region/japanese/notes.rb +57 -18
  56. data/lib/when_exe/region/japanese/residues.rb +33 -11
  57. data/lib/when_exe/region/japanese/twins.rb +27 -14
  58. data/lib/when_exe/region/japanese/weeks.rb +7 -7
  59. data/lib/when_exe/region/korean.rb +384 -384
  60. data/lib/when_exe/region/location.rb +40 -0
  61. data/lib/when_exe/region/martian.rb +1 -1
  62. data/lib/when_exe/region/mayan.rb +2 -2
  63. data/lib/when_exe/region/roman.rb +2 -2
  64. data/lib/when_exe/region/ryukyu.rb +101 -101
  65. data/lib/when_exe/region/saudi_arabian.rb +57 -0
  66. data/lib/when_exe/region/shire.rb +1 -1
  67. data/lib/when_exe/region/world.rb +3 -3
  68. data/lib/when_exe/region/zoroastrian.rb +1 -1
  69. data/lib/when_exe/spatial.rb +611 -0
  70. data/lib/when_exe/timestandard.rb +9 -7
  71. data/lib/when_exe/tmobjects.rb +34 -2
  72. data/lib/when_exe/tmposition.rb +225 -1322
  73. data/lib/when_exe/tmptypes.rb +1279 -0
  74. data/lib/when_exe/tmreference.rb +42 -7
  75. data/lib/when_exe/version.rb +3 -3
  76. data/test/events/example-datasets +6 -0
  77. data/test/events/history-dataset.csv +22 -0
  78. data/test/events/japanese-holiday-index.csv +28 -0
  79. data/test/events/japanese-holiday.csv +94 -0
  80. data/test/events/japanese-holiday.ttl +948 -0
  81. data/test/events/make_events_ttl.rb +18 -0
  82. data/test/events/mori_wikichoshi.csv +14 -0
  83. data/test/events/ndl_koyomi.csv +220 -0
  84. data/test/events/ndl_koyomi_index.csv +44 -0
  85. data/test/events/primeminister-dataset.csv +19 -0
  86. data/test/events/shogun-dataset.csv +22 -0
  87. data/test/events/test-history-dataset-edge-sparql.csv +26 -0
  88. data/test/events/test-history-dataset-edge.csv +27 -0
  89. data/test/events/test-history-dataset-sparql.csv +22 -0
  90. data/test/events/test-history-dataset.csv +23 -0
  91. data/test/events/test-history-events-edge.ttl +89 -0
  92. data/test/events/test-history-events.csv +6 -0
  93. data/test/examples/JapanHolidays.ics +2 -2
  94. data/test/examples/JapanHolidaysRFC6350.ics +3 -3
  95. data/test/examples/Residue.m17n +2 -2
  96. data/test/examples/Spatial.m17n +3 -3
  97. data/test/examples/Terms.m17n +3 -3
  98. data/test/scripts/8.ext.rb +6 -6
  99. data/test/scripts/8.rb +6 -6
  100. data/test/scripts/geometric_complex.rb +41 -41
  101. data/test/scripts/korea.rb +59 -59
  102. data/test/scripts/thai.rb +36 -36
  103. data/test/test.rb +6 -0
  104. data/test/test/basictypes.rb +431 -431
  105. data/test/test/calendarnote.rb +86 -86
  106. data/test/test/calendartypes.rb +97 -97
  107. data/test/test/coordinates.rb +399 -397
  108. data/test/test/ephemeris.rb +115 -115
  109. data/test/test/ephemeris/moon.rb +14 -14
  110. data/test/test/ephemeris/planets.rb +14 -14
  111. data/test/test/ephemeris/sun.rb +14 -14
  112. data/test/test/events.rb +32 -0
  113. data/test/test/google_api.rb +45 -32
  114. data/test/test/inspect.rb +153 -153
  115. data/test/test/parts.rb +488 -488
  116. data/test/test/region/armenian.rb +20 -20
  117. data/test/test/region/bahai.rb +58 -58
  118. data/test/test/region/balinese.rb +34 -34
  119. data/test/test/region/chinese.rb +229 -229
  120. data/test/test/region/christian.rb +226 -226
  121. data/test/test/region/coptic.rb +27 -27
  122. data/test/test/region/discordian.rb +20 -20
  123. data/test/test/region/french.rb +33 -33
  124. data/test/test/region/geologicalage.rb +17 -17
  125. data/test/test/region/indian.rb +14 -1
  126. data/test/test/region/iran.rb +54 -54
  127. data/test/test/region/islamic.rb +64 -54
  128. data/test/test/region/japanese.rb +281 -261
  129. data/test/test/region/jewish.rb +63 -63
  130. data/test/test/region/m17n.rb +21 -21
  131. data/test/test/region/mayan.rb +17 -16
  132. data/test/test/region/reforms.rb +2 -2
  133. data/test/test/region/residue.rb +7 -7
  134. data/test/test/region/shire.rb +58 -58
  135. data/test/test/region/swedish.rb +45 -45
  136. data/test/test/region/thai.rb +116 -116
  137. data/test/test/region/tibetan.rb +30 -30
  138. data/test/test/region/vietnamese.rb +102 -102
  139. data/test/test/region/zoroastrian.rb +58 -58
  140. data/test/test/timestandard.rb +81 -81
  141. data/test/test/tmobjects.rb +402 -402
  142. data/test/test/tmposition.rb +66 -4
  143. data/test/test/tmreference.rb +157 -157
  144. metadata +36 -93
@@ -1,6 +1,6 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  =begin
3
- Copyright (C) 2011-2015 Takashi SUGA
3
+ Copyright (C) 2011-2021 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.
@@ -55,12 +55,20 @@ LIST
55
55
  assert_equal("2001-08-02..2001-09-10", When.when?("2001-08-02/09-10").to_s)
56
56
  assert_equal(364, When.when?('20130101/1230').count) if Enumerable.method_defined?(:count)
57
57
  assert_equal("1980-02-01", When.when?("800201", {:abbr=>1970}).to_s)
58
- # assert_equal(nil, When.TemporalPosition(2011,2,29))
58
+ # assert_nil(When.TemporalPosition(2011,2,29))
59
59
  assert_equal('2011-03-01', When.TemporalPosition(2011,2,29).to_s)
60
- assert_equal(nil, When.TemporalPosition(2011,2,29, {:invalid=>:check}))
60
+ assert_nil(When.TemporalPosition(2011,2,29, {:invalid=>:check}))
61
61
  assert_raises(ArgumentError) { When.TemporalPosition(2011,2,29, {:invalid=>:raise}) }
62
62
  end
63
63
 
64
+ def test__strptime
65
+ assert_equal('1950-08', When.strptime('1950 Aug', '%Y %B').to_s)
66
+ assert_equal('1950-08-31', When.strptime('1950 Aug 31', '%Y %B %d').to_s)
67
+ assert_equal('2015-01-06T09:18:24+09:00', When.strptime('Tue Jan 6 9:18:24 +09:00 2015', "%A %B %d %H:%M:%S %z %Y").to_s)
68
+ assert_equal('2021-01-07T09:18:24+09:00', When.strptime("木 1月 6 9:18:24 JST", "%A %B %d %H:%M:%S %z", {:locale=>'ja'}).to_s)
69
+ assert_raises(ArgumentError) {When.strptime("Thu Jan 6 9:18:24 +09:00 2015", "%A %B %d %H:%M:%S %z %Y", {:invalid=>:raise})}
70
+ end
71
+
64
72
  def test__to_date
65
73
  if ::Object.const_defined?(:Date) && Date.respond_to?(:civil)
66
74
  assert(/\ATue Jun 7 00:00:00 (\+00:00|Z) 2011\z/ =~ When.when?("2011-06-07").to_date.strftime('%+'))
@@ -148,10 +156,64 @@ LIST
148
156
  assert_equal('平成26(2014).08.21', When.tm_pos('平成', When.Residue('甲午'), 8, When.Residue('甲子')).to_s)
149
157
 
150
158
  assert_equal('2014-09-06', When.tm_pos(2014, 8, When.Residue('SA:6')).to_s)
151
- assert_equal(nil, When.tm_pos(2014, 8, When.Residue('SA:6'), :invalid=>:check))
159
+ assert_nil(When.tm_pos(2014, 8, When.Residue('SA:6'), :invalid=>:check))
152
160
  assert_raises(ArgumentError) {When.tm_pos(2014, 8, When.Residue('SA:6'), :invalid=>:raise)}
153
161
  end
154
162
 
163
+ def test__residue_and_repeat
164
+
165
+ assert_equal('1924-01-01', When.when?('1900{甲子}-01-01').to_s)
166
+ assert_equal('1924-01-01', When.when?('{甲子}-01-01', :abbr=>1900).to_s)
167
+ assert_equal('昭和59(1984).01.01', When.when?('昭和{甲子}-01-01').to_s)
168
+
169
+ assert_equal('2015-02-01', When.when?('2015-02-{SU}').to_s)
170
+ assert_equal('2015-02-22', When.when?('2015-02-{4SU}').to_s)
171
+ assert_equal('2015-09-23T17+09:00', When.when?('2015-09-01{SolarTerms#term180}T00+09:00').to_s)
172
+ assert_equal('2015-04-05', When.when?('2015-01-01{Christian#easter}').to_s)
173
+ assert_equal('2015-12-25', When.when?('2015-01-01{Christian#christmas}').to_s)
174
+ assert_equal('2015-09-22T00:00+09:00', When.when?('2015-09-01{SolarTerms#term180-1&TU}T00:00+09:00').to_s)
175
+ assert_equal('2015-05-06', When.when?('2015-05-{06&MO,TU,WE}').to_s)
176
+ assert_nil(When.when?('2016-05-{06&MO,TU,WE}'))
177
+
178
+ assert_equal('2015-03-01', When.when?('2015-02-01{5SU}').to_s)
179
+ assert_nil(When.when?('2015-02-{5SU}'))
180
+ assert_equal('2015-02-22', When.when?('2015-02-{-SU}').to_s)
181
+
182
+ it = When.when?('R/2015-09-01{SolarTerms#term180-1&TU}T00:00+09:00')
183
+ assert_equal('2015-09-22T00:00+09:00', it.succ.to_s)
184
+ assert_equal('2026-09-22T00:00+09:00', it.succ.to_s)
185
+ assert_equal('2032-09-21T00:00+09:00', it.succ.to_s)
186
+
187
+ assert_equal(
188
+ %w(2015-02-02 2015-02-09 2015-02-16 2015-02-23
189
+ 2016-02-01 2016-02-08 2016-02-15 2016-02-22
190
+ 2016-02-29 2017-02-06),
191
+ When.when?('R10/2015-02-{MO}').map {|d| d.to_s})
192
+
193
+ assert_equal(%w(2015-05-15 2017-05-15 2019-05-15),
194
+ When.when?('R3/2015-05-15/P2Y').map {|d| d.to_s})
195
+
196
+ assert_equal(%w(2015-09-22T00:00+09:00 2026-09-22T00:00+09:00 2032-09-21T00:00+09:00),
197
+ When.when?('R3/2015-09-01{SolarTerms#term180-1&TU}T00:00+09:00').map {|d| d.to_s})
198
+
199
+ assert_equal(%w(安政02(1855).02.10 慶応03(1867).02.07),
200
+ When.when?('R2/弘化{卯}-02-{1卯}').map {|d| d.to_s})
201
+
202
+ assert_equal(
203
+ %w(2016-01-06T07+09:00 2016-01-21T00+09:00 2016-02-04T18+09:00 2016-02-19T14+09:00
204
+ 2016-03-05T12+09:00 2016-03-20T13+09:00 2016-04-04T17+09:00 2016-04-20T00+09:00
205
+ 2016-05-05T10+09:00 2016-05-20T23+09:00 2016-06-05T14+09:00 2016-06-21T07+09:00
206
+ 2016-07-07T01+09:00 2016-07-22T18+09:00 2016-08-07T10+09:00 2016-08-23T01+09:00
207
+ 2016-09-07T13+09:00 2016-09-22T23+09:00 2016-10-08T05+09:00 2016-10-23T08+09:00
208
+ 2016-11-07T08+09:00 2016-11-22T06+09:00 2016-12-07T01+09:00 2016-12-21T19+09:00),
209
+ When.when?('R24/2016-01-01{SolarTerms#term0/15}T00+09:00').map {|d| d.to_s})
210
+
211
+ assert_equal(
212
+ %w(2011-03-05...2011-03-08 2012-02-18...2012-02-21
213
+ 2013-02-09...2013-02-12 2014-03-01...2014-03-04),
214
+ When.when?('R4P3D/2011-01-01{Christian#easter-50}').map {|d| d.to_s})
215
+ end
216
+
155
217
  def test__prefixed_calendar
156
218
  [['平成27(2015).1.15', '平成27(2015).01.15'],
157
219
  ['HinduLuniSolar?note=HinduNote&location=(_co:Indian::Ujjain)&type=SBSA&start_month=5(1936-10<10)', '1936-10<10-'],
@@ -1,157 +1,157 @@
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 MiniTest::TM
10
-
11
- #
12
- # (5.3) Temporal Reference System Package
13
- #
14
- #
15
-
16
- class ReferenceSystem < MiniTest::TestCase
17
- def test_nothing
18
- end
19
- end
20
-
21
- class OrdinalReferenceSystem < MiniTest::TestCase
22
- def test_nothing
23
- end
24
- end
25
-
26
- class Calendar < MiniTest::TestCase
27
- def test__jul_trans
28
- gc = When.Calendar('Gregorian')
29
- assert_equal("1858-11-16", (gc ^ 2400000).to_s)
30
- assert_equal("1858-11-16T12:00:00.00Z", (gc ^ 2400000.0).to_s)
31
- assert_equal("1858-11-16T21:00:00.00+09:00", (gc.jul_trans(2400000.0, {:clock=>'+0900'})).to_s)
32
- assert_equal("1970-01-01T12:00:00.00Z", (gc ^ Time.utc(1970,1,1,12)).to_s)
33
- assert_equal("1970-01-01T12:00:00.00Z", When.when?(Time.utc(1970,1,1,12)).to_s)
34
- if ::Object.const_defined?(:Date) && Date.respond_to?(:civil)
35
- assert_equal("1858-11-16T12:00:00.00Z", (gc ^ DateTime.new(1858,11,16,12,0,0,0)).to_s)
36
- assert_equal("1858-11-16T12:00:00.00Z", When.when?(DateTime.new(1858,11,16,12,0,0,0)).to_s)
37
- end
38
- end
39
- end
40
-
41
- class Clock < MiniTest::TestCase
42
- def test__clock_trans
43
- obj1 = When.when?("20100928T234512.33-0600^^Gregorian")
44
- assert_equal("2010-09-29T14:45:12.33+09:00", (When.Clock("+0900") ^ obj1).to_s)
45
- assert_equal("2010-09-29T14:45:12.33+09:00", (When.Clock("+0900") ^ Time.utc(2010,9,29,5,45,12,330000)).to_s)
46
- if ::Object.const_defined?(:Date) && Date.respond_to?(:civil)
47
- assert_equal("2010-09-29T14:45:12.00+09:00", (When.Clock("+0900") ^ DateTime.new(2010,9,29,5,45,12)).to_s)
48
- end
49
- end
50
- end
51
-
52
- class CoordinateSystem < MiniTest::TestCase
53
- def test_nothing
54
- end
55
- end
56
-
57
- class OrdinalEra < MiniTest::TestCase
58
- def test_nothing
59
- end
60
- end
61
-
62
- class CalendarEra < MiniTest::TestCase
63
- def test__pool
64
- era = When.Resource('_e:ModernJapanese')
65
- assert_equal([true, false, true, false],
66
- [era.registered?, era.dup.registered?, era['M'].registered?, era['M'].dup.registered?])
67
- assert_equal("M", era['M'].label)
68
- assert_equal("http://hosi.org/When/TM/CalendarEra/ModernJapanese::M", era['M'].iri)
69
- assert_equal("http://hosi.org/When/TM/CalendarEra/ModernJapanese::M", When::Parts::Resource[era['M'].iri].iri)
70
- end
71
-
72
- def test__ce_bce
73
- [['BCE11.2.21', 'BCE11(-010).02.21', 1717457],
74
- ['CE-10.2.21', 'BCE11(-010).02.21', 1717457],
75
- ['-10.2.21', '-00010-02-21', 1717459],
76
- ['CE1.1.1', 'Common::CE01.01.01', 1721424]
77
- ].each do |sample|
78
- date = When::when?(sample.shift)
79
- assert_equal(sample, [date.to_s, date.to_i])
80
- end
81
-
82
- assert_equal('BCE11(-010).02.21', When::TemporalPosition('BCE', 11, 2, 21).to_s)
83
- end
84
-
85
- def test__era_trans
86
- common =When.Resource('_e:Common::CE')
87
- obj1 = When.when?("20100929T144512.33+0900^^Gregorian")
88
- assert_equal("Common::CE2010.09.29T14:45:12.33+09:00", (common ^ obj1).to_s)
89
- assert_equal("Common::CE2010.09.29T14:45:12.33Z", (common ^ Time.utc(2010,9,29,14,45,12,330000)).to_s)
90
- if ::Object.const_defined?(:Date) && Date.respond_to?(:civil)
91
- assert_equal("Common::CE2010.09.29T14:45:12.00Z", (common ^ DateTime.new(2010,9,29,14,45,12)).to_s)
92
- end
93
- end
94
-
95
- def test__julian_gregorian_change
96
- epoch = When.when?('CE1582.10.03') ^ When.Duration('1D')
97
- sample = [
98
- "Common::CE1582.10.03",
99
- "Common::CE1582.10.04",
100
- "Common::CE1582.10.15",
101
- "Common::CE1582.10.16"
102
- ]
103
- 4.times do
104
- assert_equal(sample.shift, epoch.next.to_s)
105
- end
106
-
107
- sample = [
108
- "Common::CE1582.10.16",
109
- "Common::CE1582.10.15",
110
- "Common::CE1582.10.04",
111
- "Common::CE1582.10.03"
112
- ]
113
- epoch = When.when?('CE1582.10.16') ^ -When.Duration('P1D')
114
- 4.times do
115
- assert_equal(sample.shift, epoch.next.to_s)
116
- end
117
-
118
- assert_equal(
119
- [["October 1582",
120
- ["-", 1, 2, 3, 4, 15, 16],
121
- [17, 18, 19, 20, 21, 22, 23],
122
- [24, 25, 26, 27, 28, 29, 30],
123
- [31, "-", "-", "-", "-", "-", "-"]]],
124
- When.when?('CE1582.10').month_included('SU') {|date, type|
125
- case type
126
- when When::YEAR,
127
- When::MONTH ; date.strftime("%B %Y")
128
- when When::WEEK ; nil
129
- when When::DAY ; date[0]
130
- else ; '-'
131
- end
132
- })
133
-
134
- epoch = When.when?('Common?Reform=1752.09.14::CE1752.09.01') ^ When.Duration('1D')
135
- sample = [
136
- "Common?Reform=1752.09.14::CE1752.09.01",
137
- "Common?Reform=1752.09.14::CE1752.09.02",
138
- "Common?Reform=1752.09.14::CE1752.09.14",
139
- "Common?Reform=1752.09.14::CE1752.09.15"
140
- ]
141
- 4.times do
142
- assert_equal(sample.shift, epoch.next.to_s)
143
- end
144
-
145
- sample = [
146
- "Common?Reform=1752.09.14::CE1752.09.15",
147
- "Common?Reform=1752.09.14::CE1752.09.14",
148
- "Common?Reform=1752.09.14::CE1752.09.02",
149
- "Common?Reform=1752.09.14::CE1752.09.01"
150
- ]
151
- epoch = When.when?('Common?Reform=1752.09.14::CE1752.09.15') ^ -When.Duration('1D')
152
- 4.times do
153
- assert_equal(sample.shift, epoch.next.to_s)
154
- end
155
- end
156
- end
157
- end
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 MiniTest::TM
10
+
11
+ #
12
+ # (5.3) Temporal Reference System Package
13
+ #
14
+ #
15
+
16
+ class ReferenceSystem < MiniTest::TestCase
17
+ def test_nothing
18
+ end
19
+ end
20
+
21
+ class OrdinalReferenceSystem < MiniTest::TestCase
22
+ def test_nothing
23
+ end
24
+ end
25
+
26
+ class Calendar < MiniTest::TestCase
27
+ def test__jul_trans
28
+ gc = When.Calendar('Gregorian')
29
+ assert_equal("1858-11-16", (gc ^ 2400000).to_s)
30
+ assert_equal("1858-11-16T12:00:00.00Z", (gc ^ 2400000.0).to_s)
31
+ assert_equal("1858-11-16T21:00:00.00+09:00", (gc.jul_trans(2400000.0, {:clock=>'+0900'})).to_s)
32
+ assert_equal("1970-01-01T12:00:00.00Z", (gc ^ Time.utc(1970,1,1,12)).to_s)
33
+ assert_equal("1970-01-01T12:00:00.00Z", When.when?(Time.utc(1970,1,1,12)).to_s)
34
+ if ::Object.const_defined?(:Date) && Date.respond_to?(:civil)
35
+ assert_equal("1858-11-16T12:00:00.00Z", (gc ^ DateTime.new(1858,11,16,12,0,0,0)).to_s)
36
+ assert_equal("1858-11-16T12:00:00.00Z", When.when?(DateTime.new(1858,11,16,12,0,0,0)).to_s)
37
+ end
38
+ end
39
+ end
40
+
41
+ class Clock < MiniTest::TestCase
42
+ def test__clock_trans
43
+ obj1 = When.when?("20100928T234512.33-0600^^Gregorian")
44
+ assert_equal("2010-09-29T14:45:12.33+09:00", (When.Clock("+0900") ^ obj1).to_s)
45
+ assert_equal("2010-09-29T14:45:12.33+09:00", (When.Clock("+0900") ^ Time.utc(2010,9,29,5,45,12,330000)).to_s)
46
+ if ::Object.const_defined?(:Date) && Date.respond_to?(:civil)
47
+ assert_equal("2010-09-29T14:45:12.00+09:00", (When.Clock("+0900") ^ DateTime.new(2010,9,29,5,45,12)).to_s)
48
+ end
49
+ end
50
+ end
51
+
52
+ class CoordinateSystem < MiniTest::TestCase
53
+ def test_nothing
54
+ end
55
+ end
56
+
57
+ class OrdinalEra < MiniTest::TestCase
58
+ def test_nothing
59
+ end
60
+ end
61
+
62
+ class CalendarEra < MiniTest::TestCase
63
+ def test__pool
64
+ era = When.Resource('_e:ModernJapanese')
65
+ assert_equal([true, false, true, false],
66
+ [era.registered?, era.dup.registered?, era['M'].registered?, era['M'].dup.registered?])
67
+ assert_equal("M", era['M'].label)
68
+ assert_equal("http://hosi.org/When/TM/CalendarEra/ModernJapanese::M", era['M'].iri)
69
+ assert_equal("http://hosi.org/When/TM/CalendarEra/ModernJapanese::M", When::Parts::Resource[era['M'].iri].iri)
70
+ end
71
+
72
+ def test__ce_bce
73
+ [['BCE11.2.21', 'BCE11(-010).02.21', 1717457],
74
+ ['CE-10.2.21', 'BCE11(-010).02.21', 1717457],
75
+ ['-10.2.21', '-00010-02-21', 1717459],
76
+ ['CE1.1.1', 'Common::CE01.01.01', 1721424]
77
+ ].each do |sample|
78
+ date = When::when?(sample.shift)
79
+ assert_equal(sample, [date.to_s, date.to_i])
80
+ end
81
+
82
+ assert_equal('BCE11(-010).02.21', When::TemporalPosition('BCE', 11, 2, 21).to_s)
83
+ end
84
+
85
+ def test__era_trans
86
+ common =When.Resource('_e:Common::CE')
87
+ obj1 = When.when?("20100929T144512.33+0900^^Gregorian")
88
+ assert_equal("Common::CE2010.09.29T14:45:12.33+09:00", (common ^ obj1).to_s)
89
+ assert_equal("Common::CE2010.09.29T14:45:12.33Z", (common ^ Time.utc(2010,9,29,14,45,12,330000)).to_s)
90
+ if ::Object.const_defined?(:Date) && Date.respond_to?(:civil)
91
+ assert_equal("Common::CE2010.09.29T14:45:12.00Z", (common ^ DateTime.new(2010,9,29,14,45,12)).to_s)
92
+ end
93
+ end
94
+
95
+ def test__julian_gregorian_change
96
+ epoch = When.when?('CE1582.10.03') ^ When.Duration('1D')
97
+ sample = [
98
+ "Common::CE1582.10.03",
99
+ "Common::CE1582.10.04",
100
+ "Common::CE1582.10.15",
101
+ "Common::CE1582.10.16"
102
+ ]
103
+ 4.times do
104
+ assert_equal(sample.shift, epoch.next.to_s)
105
+ end
106
+
107
+ sample = [
108
+ "Common::CE1582.10.16",
109
+ "Common::CE1582.10.15",
110
+ "Common::CE1582.10.04",
111
+ "Common::CE1582.10.03"
112
+ ]
113
+ epoch = When.when?('CE1582.10.16') ^ -When.Duration('P1D')
114
+ 4.times do
115
+ assert_equal(sample.shift, epoch.next.to_s)
116
+ end
117
+
118
+ assert_equal(
119
+ [["October 1582",
120
+ ["-", 1, 2, 3, 4, 15, 16],
121
+ [17, 18, 19, 20, 21, 22, 23],
122
+ [24, 25, 26, 27, 28, 29, 30],
123
+ [31, "-", "-", "-", "-", "-", "-"]]],
124
+ When.when?('CE1582.10').month_included('SU') {|date, type|
125
+ case type
126
+ when When::YEAR,
127
+ When::MONTH ; date.strftime("%B %Y")
128
+ when When::WEEK ; nil
129
+ when When::DAY ; date[0]
130
+ else ; '-'
131
+ end
132
+ })
133
+
134
+ epoch = When.when?('Common?Reform=1752.09.14::CE1752.09.01') ^ When.Duration('1D')
135
+ sample = [
136
+ "Common?Reform=1752.09.14::CE1752.09.01",
137
+ "Common?Reform=1752.09.14::CE1752.09.02",
138
+ "Common?Reform=1752.09.14::CE1752.09.14",
139
+ "Common?Reform=1752.09.14::CE1752.09.15"
140
+ ]
141
+ 4.times do
142
+ assert_equal(sample.shift, epoch.next.to_s)
143
+ end
144
+
145
+ sample = [
146
+ "Common?Reform=1752.09.14::CE1752.09.15",
147
+ "Common?Reform=1752.09.14::CE1752.09.14",
148
+ "Common?Reform=1752.09.14::CE1752.09.02",
149
+ "Common?Reform=1752.09.14::CE1752.09.01"
150
+ ]
151
+ epoch = When.when?('Common?Reform=1752.09.14::CE1752.09.15') ^ -When.Duration('1D')
152
+ 4.times do
153
+ assert_equal(sample.shift, epoch.next.to_s)
154
+ end
155
+ end
156
+ end
157
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: when_exe
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.2
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Takashi SUGA
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-05-22 00:00:00.000000000 Z
11
+ date: 2021-05-06 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: A multicultural and multilingualized calendar library based on ISO 8601,
14
14
  ISO 19108, RFC 5545(iCalendar) and RFC6350. JSON-LD formats for TemporalPosition
@@ -18,6 +18,7 @@ description: A multicultural and multilingualized calendar library based on ISO
18
18
  email:
19
19
  - suchowan@box.email.ne.jp
20
20
  executables:
21
+ - ".pryrc"
21
22
  - irb.rc
22
23
  - locales.rb
23
24
  - make_ttl.rb
@@ -33,6 +34,7 @@ files:
33
34
  - LICENSE.txt
34
35
  - README.md
35
36
  - Rakefile
37
+ - bin/.pryrc
36
38
  - bin/irb.rc
37
39
  - bin/locales.rb
38
40
  - bin/make_ttl.rb
@@ -51,9 +53,12 @@ files:
51
53
  - lib/when_exe/ephemeris/eclipse.rb
52
54
  - lib/when_exe/ephemeris/moon.rb
53
55
  - lib/when_exe/ephemeris/notes.rb
56
+ - lib/when_exe/ephemeris/phase_table.rb
54
57
  - lib/when_exe/ephemeris/planets.rb
55
58
  - lib/when_exe/ephemeris/sun.rb
59
+ - lib/when_exe/ephemeris/term_table.rb
56
60
  - lib/when_exe/ephemeris/v50.rb
61
+ - lib/when_exe/events.rb
57
62
  - lib/when_exe/google_api.rb
58
63
  - lib/when_exe/icalendar.rb
59
64
  - lib/when_exe/inspect.rb
@@ -158,6 +163,7 @@ files:
158
163
  - lib/when_exe/locales/zh_TW.rb
159
164
  - lib/when_exe/locales/zh_YUE.rb
160
165
  - lib/when_exe/mini_application.rb
166
+ - lib/when_exe/namespace.rb
161
167
  - lib/when_exe/obsolete/googlecalendar.rb
162
168
  - lib/when_exe/parts/enumerator.rb
163
169
  - lib/when_exe/parts/geometric_complex.rb
@@ -190,6 +196,7 @@ files:
190
196
  - lib/when_exe/region/japanese/calendars.rb
191
197
  - lib/when_exe/region/japanese/eclipses.rb
192
198
  - lib/when_exe/region/japanese/epochs.rb
199
+ - lib/when_exe/region/japanese/location.rb
193
200
  - lib/when_exe/region/japanese/nihon_shoki.rb
194
201
  - lib/when_exe/region/japanese/notes.rb
195
202
  - lib/when_exe/region/japanese/residues.rb
@@ -198,6 +205,7 @@ files:
198
205
  - lib/when_exe/region/javanese.rb
199
206
  - lib/when_exe/region/jewish.rb
200
207
  - lib/when_exe/region/korean.rb
208
+ - lib/when_exe/region/location.rb
201
209
  - lib/when_exe/region/m17n.rb
202
210
  - lib/when_exe/region/martian.rb
203
211
  - lib/when_exe/region/mayan.rb
@@ -208,6 +216,7 @@ files:
208
216
  - lib/when_exe/region/roman.rb
209
217
  - lib/when_exe/region/russian.rb
210
218
  - lib/when_exe/region/ryukyu.rb
219
+ - lib/when_exe/region/saudi_arabian.rb
211
220
  - lib/when_exe/region/shire.rb
212
221
  - lib/when_exe/region/symmetry.rb
213
222
  - lib/when_exe/region/thai.rb
@@ -220,13 +229,32 @@ files:
220
229
  - lib/when_exe/region/world_season.rb
221
230
  - lib/when_exe/region/yerm.rb
222
231
  - lib/when_exe/region/zoroastrian.rb
232
+ - lib/when_exe/spatial.rb
223
233
  - lib/when_exe/timestandard.rb
224
234
  - lib/when_exe/tmduration.rb
225
235
  - lib/when_exe/tmobjects.rb
226
236
  - lib/when_exe/tmposition.rb
237
+ - lib/when_exe/tmptypes.rb
227
238
  - lib/when_exe/tmreference.rb
228
239
  - lib/when_exe/version.rb
229
240
  - link_to_online_documents
241
+ - test/events/example-datasets
242
+ - test/events/history-dataset.csv
243
+ - test/events/japanese-holiday-index.csv
244
+ - test/events/japanese-holiday.csv
245
+ - test/events/japanese-holiday.ttl
246
+ - test/events/make_events_ttl.rb
247
+ - test/events/mori_wikichoshi.csv
248
+ - test/events/ndl_koyomi.csv
249
+ - test/events/ndl_koyomi_index.csv
250
+ - test/events/primeminister-dataset.csv
251
+ - test/events/shogun-dataset.csv
252
+ - test/events/test-history-dataset-edge-sparql.csv
253
+ - test/events/test-history-dataset-edge.csv
254
+ - test/events/test-history-dataset-sparql.csv
255
+ - test/events/test-history-dataset.csv
256
+ - test/events/test-history-events-edge.ttl
257
+ - test/events/test-history-events.csv
230
258
  - test/examples/JapanHolidays.ics
231
259
  - test/examples/JapanHolidaysRFC6350.ics
232
260
  - test/examples/Millennium.ics
@@ -276,6 +304,7 @@ files:
276
304
  - test/test/ephemeris/moon.rb
277
305
  - test/test/ephemeris/planets.rb
278
306
  - test/test/ephemeris/sun.rb
307
+ - test/test/events.rb
279
308
  - test/test/google_api.rb
280
309
  - test/test/icalendar.rb
281
310
  - test/test/inspect.rb
@@ -315,7 +344,7 @@ files:
315
344
  homepage: http://www.asahi-net.or.jp/~dd6t-sg/
316
345
  licenses: []
317
346
  metadata: {}
318
- post_install_message:
347
+ post_install_message:
319
348
  rdoc_options: []
320
349
  require_paths:
321
350
  - lib
@@ -330,95 +359,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
330
359
  - !ruby/object:Gem::Version
331
360
  version: '0'
332
361
  requirements: []
333
- rubyforge_project:
334
- rubygems_version: 2.4.4
335
- signing_key:
362
+ rubygems_version: 3.2.3
363
+ signing_key:
336
364
  specification_version: 4
337
365
  summary: A multicultural and multilingualized calendar library based on ISO 8601,
338
366
  ISO 19108, RFC 5545(iCalendar) and RFC6350
339
- test_files:
340
- - test/examples/JapanHolidays.ics
341
- - test/examples/JapanHolidaysRFC6350.ics
342
- - test/examples/Millennium.ics
343
- - test/examples/NewYork.ics
344
- - test/examples/Residue.m17n
345
- - test/examples/Spatial.m17n
346
- - test/examples/Terms.m17n
347
- - test/examples/Test.ics
348
- - test/examples/USA-DST.ics
349
- - test/examples/sample.json
350
- - test/examples/sample.xml
351
- - test/examples/today.rb
352
- - test/scripts.rb
353
- - test/scripts/2.ext.rb
354
- - test/scripts/2.rb
355
- - test/scripts/3.ext.rb
356
- - test/scripts/3.rb
357
- - test/scripts/4.ext.rb
358
- - test/scripts/4.min.rb
359
- - test/scripts/4.rb
360
- - test/scripts/5.ext.rb
361
- - test/scripts/5.rb
362
- - test/scripts/6.gcal.rb
363
- - test/scripts/6.rb
364
- - test/scripts/6.tz.rb
365
- - test/scripts/7.phase.rb
366
- - test/scripts/7.rb
367
- - test/scripts/7.term.rb
368
- - test/scripts/7.week.rb
369
- - test/scripts/8.ext.rb
370
- - test/scripts/8.rb
371
- - test/scripts/9.ext.rb
372
- - test/scripts/9.rb
373
- - test/scripts/chinese-luni-solar.rb
374
- - test/scripts/geometric_complex.rb
375
- - test/scripts/geometric_complex.txt
376
- - test/scripts/korea.rb
377
- - test/scripts/thai-reviewed.txt
378
- - test/scripts/thai.rb
379
- - test/scripts/thai.txt
380
- - test/test.rb
381
- - test/test/basictypes.rb
382
- - test/test/calendarnote.rb
383
- - test/test/calendartypes.rb
384
- - test/test/coordinates.rb
385
- - test/test/ephemeris.rb
386
- - test/test/ephemeris/moon.rb
387
- - test/test/ephemeris/planets.rb
388
- - test/test/ephemeris/sun.rb
389
- - test/test/google_api.rb
390
- - test/test/icalendar.rb
391
- - test/test/inspect.rb
392
- - test/test/linkeddata.rb
393
- - test/test/obsolete/googlecalendar.rb
394
- - test/test/parts.rb
395
- - test/test/region/armenian.rb
396
- - test/test/region/bahai.rb
397
- - test/test/region/balinese.rb
398
- - test/test/region/chinese.rb
399
- - test/test/region/christian.rb
400
- - test/test/region/coptic.rb
401
- - test/test/region/discordian.rb
402
- - test/test/region/french.rb
403
- - test/test/region/geologicalage.rb
404
- - test/test/region/indian.rb
405
- - test/test/region/iran.rb
406
- - test/test/region/islamic.rb
407
- - test/test/region/japanese.rb
408
- - test/test/region/jewish.rb
409
- - test/test/region/m17n.rb
410
- - test/test/region/mayan.rb
411
- - test/test/region/reforms.rb
412
- - test/test/region/residue.rb
413
- - test/test/region/shire.rb
414
- - test/test/region/swedish.rb
415
- - test/test/region/thai.rb
416
- - test/test/region/tibetan.rb
417
- - test/test/region/vietnamese.rb
418
- - test/test/region/yerm.rb
419
- - test/test/region/zoroastrian.rb
420
- - test/test/timestandard.rb
421
- - test/test/tmobjects.rb
422
- - test/test/tmposition.rb
423
- - test/test/tmreference.rb
424
- has_rdoc:
367
+ test_files: []