when_exe 0.4.2 → 0.5.0

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 (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: []