when_exe 0.4.4 → 0.4.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 (67) hide show
  1. checksums.yaml +4 -4
  2. data/lib/when_exe.rb +89 -3
  3. data/lib/when_exe/basictypes.rb +37 -7
  4. data/lib/when_exe/calendarnote.rb +18 -13
  5. data/lib/when_exe/calendartypes.rb +3 -9
  6. data/lib/when_exe/coordinates.rb +23 -373
  7. data/lib/when_exe/ephemeris.rb +7 -7
  8. data/lib/when_exe/ephemeris/notes.rb +0 -14
  9. data/lib/when_exe/events.rb +1851 -0
  10. data/lib/when_exe/icalendar.rb +121 -4
  11. data/lib/when_exe/linkeddata.rb +29 -18
  12. data/lib/when_exe/locales/akt.rb +63 -0
  13. data/lib/when_exe/locales/locale.rb +60 -11
  14. data/lib/when_exe/mini_application.rb +14 -8
  15. data/lib/when_exe/namespace.rb +42 -0
  16. data/lib/when_exe/parts/enumerator.rb +13 -2
  17. data/lib/when_exe/parts/geometric_complex.rb +51 -1
  18. data/lib/when_exe/parts/method_cash.rb +15 -10
  19. data/lib/when_exe/parts/resource.rb +47 -29
  20. data/lib/when_exe/region/chinese.rb +4 -3
  21. data/lib/when_exe/region/chinese/calendars.rb +4 -4
  22. data/lib/when_exe/region/chinese/epochs.rb +6 -6
  23. data/lib/when_exe/region/chinese/notes.rb +3 -3
  24. data/lib/when_exe/region/chinese/twins.rb +6 -6
  25. data/lib/when_exe/region/islamic.rb +1 -1
  26. data/lib/when_exe/region/japanese.rb +4 -4
  27. data/lib/when_exe/region/japanese/eclipses.rb +2 -2
  28. data/lib/when_exe/region/japanese/location.rb +93 -0
  29. data/lib/when_exe/region/japanese/notes.rb +29 -11
  30. data/lib/when_exe/region/japanese/residues.rb +1 -1
  31. data/lib/when_exe/region/japanese/twins.rb +18 -6
  32. data/lib/when_exe/region/location.rb +40 -0
  33. data/lib/when_exe/region/martian.rb +1 -1
  34. data/lib/when_exe/region/ryukyu.rb +1 -1
  35. data/lib/when_exe/spatial.rb +611 -0
  36. data/lib/when_exe/timestandard.rb +3 -3
  37. data/lib/when_exe/tmobjects.rb +32 -0
  38. data/lib/when_exe/tmposition.rb +211 -1318
  39. data/lib/when_exe/tmptypes.rb +1265 -0
  40. data/lib/when_exe/tmreference.rb +35 -0
  41. data/lib/when_exe/version.rb +3 -3
  42. data/test/events/example-datasets +7 -0
  43. data/test/events/history-dataset.csv +22 -0
  44. data/test/events/japanese-holiday-index.csv +28 -0
  45. data/test/events/japanese-holiday.csv +77 -0
  46. data/test/events/japanese-holiday.ttl +778 -0
  47. data/test/events/make_events_ttl.rb +18 -0
  48. data/test/events/mori_wikichoshi.csv +14 -0
  49. data/test/events/ndl_koyomi.csv +220 -0
  50. data/test/events/ndl_koyomi_index.csv +44 -0
  51. data/test/events/primeminister-dataset.csv +19 -0
  52. data/test/events/shogun-dataset.csv +22 -0
  53. data/test/events/test-history-dataset-edge-sparql.csv +26 -0
  54. data/test/events/test-history-dataset-edge.csv +27 -0
  55. data/test/events/test-history-dataset-sparql.csv +22 -0
  56. data/test/events/test-history-dataset.csv +23 -0
  57. data/test/events/test-history-events-edge.ttl +89 -0
  58. data/test/events/test-history-events.csv +6 -0
  59. data/test/examples/Terms.m17n +1 -1
  60. data/test/test.rb +6 -0
  61. data/test/test/coordinates.rb +2 -2
  62. data/test/test/events.rb +32 -0
  63. data/test/test/region/japanese.rb +20 -0
  64. data/test/test/region/m17n.rb +2 -2
  65. data/test/test/region/mayan.rb +6 -6
  66. data/test/test/tmposition.rb +63 -1
  67. metadata +26 -2
@@ -0,0 +1,89 @@
1
+ @prefix dc: <http://purl.org/dc/elements/1.1/> .
2
+ @prefix dcq: <http://purl.org/dc/terms/> .
3
+ @prefix ex: <http://example.com/> .
4
+ @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
5
+ @prefix ts: <http://hosi.org/ts#> .
6
+
7
+ ex:1 rdfs:label "{康元元}:{第5代}{執権}の{北条時頼}、{執権}{辞任}、{翌日}{出家}。";
8
+ ts:east 1.39581758e2;
9
+ ts:north 3.5361604e1;
10
+ ts:south 3.5304314e1;
11
+ ts:start 2180156;
12
+ ts:west 1.39490658e2;
13
+ dc:contributor "須賀隆";
14
+ dcq:abstract "{康元元}:{第5代}{執権}の{北条時頼}、{執権}{辞任}、{翌日}{出家}。";
15
+ dcq:hasPart "康元元",
16
+ "第5代",
17
+ "執権",
18
+ "北条時頼",
19
+ "辞任",
20
+ "翌日",
21
+ "出家";
22
+ dcq:spatial "神奈川県鎌倉市";
23
+ dcq:valid "1256-11-22^^Japanese" .
24
+
25
+ ex:2 rdfs:label "{康元元}:{前日}{執権}を{辞任}した{北条時頼}、{出家}。";
26
+ ts:east 1.39581758e2;
27
+ ts:north 3.5361604e1;
28
+ ts:south 3.5304314e1;
29
+ ts:start 2180157;
30
+ ts:west 1.39490658e2;
31
+ dc:contributor "須賀隆";
32
+ dcq:abstract "{康元元}:{前日}{執権}を{辞任}した{北条時頼}、{出家}。";
33
+ dcq:hasPart "康元元",
34
+ "前日",
35
+ "執権",
36
+ "辞任",
37
+ "北条時頼",
38
+ "出家";
39
+ dcq:spatial "神奈川県鎌倉市";
40
+ dcq:valid "1256-11-23^^Japanese" .
41
+
42
+ ex:3 rdfs:label "{天文24}:{厳島}の{合戦}で{毛利元就}が{陶晴賢}を滅ぼす。";
43
+ ts:east 1.3234682e2;
44
+ ts:north 3.4479038e1;
45
+ ts:south 3.4267624e1;
46
+ ts:start 2289310;
47
+ ts:west 1.32083881e2;
48
+ dc:contributor "須賀隆";
49
+ dcq:abstract "{天文24}:{厳島}の{合戦}で{毛利元就}が{陶晴賢}を滅ぼす。";
50
+ dcq:hasPart "天文24",
51
+ "厳島",
52
+ "合戦",
53
+ "毛利元就",
54
+ "陶晴賢";
55
+ dcq:spatial "広島県廿日市市";
56
+ dcq:valid "1555-10-01^^Japanese" .
57
+
58
+ ex:4 rdfs:label "{慶應2}:{将軍}{徳川家茂}が{大坂城}中で{病死}する。{21歳}。{毒殺説}もある。";
59
+ ts:east 1.35595982e2;
60
+ ts:north 3.4766764e1;
61
+ ts:south 3.458949e1;
62
+ ts:start 2402843;
63
+ ts:west 1.35391479e2;
64
+ dc:contributor "須賀隆";
65
+ dcq:abstract "{慶應2}:{将軍}{徳川家茂}が{大坂城}中で{病死}する。{21歳}。{毒殺説}もある。";
66
+ dcq:hasPart "慶應2",
67
+ "将軍",
68
+ "徳川家茂",
69
+ "大坂城",
70
+ "病死",
71
+ "21歳",
72
+ "毒殺説";
73
+ dcq:spatial "大阪市";
74
+ dcq:valid "1866-07-20^^Japanese" .
75
+
76
+ ex:5 rdfs:label "{大同元}:{空海}が用いたとされる{日曜日}の{起点}";
77
+ ts:east 1.35873329e2;
78
+ ts:north 3.528243e1;
79
+ ts:south 3.4886268e1;
80
+ ts:start 2015474;
81
+ ts:west 1.35577055e2;
82
+ dc:contributor "suchowan";
83
+ dcq:abstract "{大同元}:{空海}が用いたとされる{日曜日}の{起点}";
84
+ dcq:hasPart "大同元",
85
+ "空海",
86
+ "日曜日",
87
+ "起点";
88
+ dcq:spatial "京都市";
89
+ dcq:valid "0806-01-02^^Japanese" .
@@ -0,0 +1,6 @@
1
+ valid,abstarct,contributor,mbox,created,domain,remark,location
2
+ "1256-11-22^^Japanese","{康元元}:{第5代}{執権}の{北条時頼}、{執権}{辞任}、{翌日}{出家}。","須賀隆","suchowan@box.email.ne.jp","","","高柳光寿・竹内理三編『日本史辞典』","神奈川県鎌倉市"
3
+ "1256-11-23^^Japanese","{康元元}:{前日}{執権}を{辞任}した{北条時頼}、{出家}。","須賀隆","suchowan@box.email.ne.jp","","","高柳光寿・竹内理三編『日本史辞典』","神奈川県鎌倉市"
4
+ "1555-10-01^^Japanese","{天文24}:{厳島}の{合戦}で{毛利元就}が{陶晴賢}を滅ぼす。","須賀隆","suchowan@box.email.ne.jp","","","コンサイス世界年表","広島県廿日市市"
5
+ "1866-07-20^^Japanese","{慶應2}:{将軍}{徳川家茂}が{大坂城}中で{病死}する。{21歳}。{毒殺説}もある。","須賀隆","suchowan@box.email.ne.jp","","","","大阪市"
6
+ "0806-01-02^^Japanese","{大同元}:{空海}が用いたとされる{日曜日}の{起点}","suchowan","","Sat Jun 22 1:35:54 JST 2002 ","1","日本史小百科「暦」","京都市"
@@ -11,7 +11,7 @@ BEGIN:B:M17n
11
11
  [Calendars_and_Eras=, 暦法と紀元=]
12
12
 
13
13
  BEGIN:B:M17n
14
- NAMES:[month name, 月の名前=ja:%E6%9C%88_(%E6%9A%A6), *Month=]
14
+ NAMES:[month name, 月の名前=ja:%%<月_()>, *Month=]
15
15
  B:M17N:[January, 1月]
16
16
  B:M17N:[February, 2月]
17
17
  B:M17N:[March, 3月]
@@ -31,6 +31,11 @@ class MiniTest::TestCase
31
31
  end
32
32
  end
33
33
 
34
+ if self.class.const_defined?(:Encoding)
35
+ Encoding.default_external = 'UTF-8'
36
+ Encoding.default_internal = 'UTF-8'
37
+ end
38
+
34
39
  require 'when_exe'
35
40
  require 'when_exe/mini_application'
36
41
  #include When
@@ -49,6 +54,7 @@ require './test/calendarnote'
49
54
  require './test/inspect'
50
55
  require './test/linkeddata'
51
56
  require './test/google_api'
57
+ require './test/events'
52
58
  require './test/region/m17n'
53
59
  require './test/region/residue'
54
60
  require './test/region/christian'
@@ -377,8 +377,8 @@ module MiniTest::Coordinates
377
377
  [name.label,
378
378
  name.translate('ja'),
379
379
  name.reference('en'),
380
- obj.lat / When::Coordinates::Spatial::DEGREE,
381
- obj.long / When::Coordinates::Spatial::DEGREE,
380
+ obj.lat / obj.degree,
381
+ obj.long / obj.degree,
382
382
  obj.iri])
383
383
  end
384
384
  end
@@ -0,0 +1,32 @@
1
+ # -*- coding: utf-8 -*-
2
+ =begin
3
+ Copyright (C) 2015-2016 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::CalendarTypes
10
+
11
+ class DataSet < MiniTest::TestCase
12
+ if (RUBY_VERSION.split('.').map {|v| v.to_i} <=> [1,9]) >= 0
13
+ def test__dataset
14
+ datasets = When.Resource('events/test-history-dataset.csv')
15
+ dataset = datasets.dataset('en')
16
+ assert_equal([5], dataset.index[When::Events::WHAT_DAY][[false, 1, 2]])
17
+ assert_equal([5, 1], dataset.edge_included(When::Events::START, When.when?('-Infinity...1256-11-23^^Japanese')))
18
+ assert_equal([5, 1, 2], dataset.edge_included(When::Events::START, When.when?('-Infinity..1256-11-23^^Japanese')))
19
+ assert_equal([1], dataset.edge_included(When::Events::START, When.when?('1256-11-22...1256-11-23^^Japanese')))
20
+ assert_equal([1, 2], dataset.edge_included(When::Events::START, When.when?('1256-11-22/23^^Japanese')))
21
+ assert_equal([2], dataset.edge_included(When::Events::START, When.when?('1256-11-23...1555-10-01^^Japanese')))
22
+ assert_equal([2, 3], dataset.edge_included(When::Events::START, When.when?('1256-11-23..1555-10-01^^Japanese')))
23
+ assert_equal([2, 3, 4], dataset.edge_included(When::Events::START, When.when?('1256-11-23..+Infinity^^Japanese')))
24
+ end
25
+ else
26
+ def test__dataset
27
+ end
28
+ puts "Tests for event DataSet have been skipped at line #{__LINE__} of #{__FILE__.split(/\//)[-1]}."
29
+ end
30
+ end
31
+ end
32
+
@@ -241,6 +241,26 @@ module MiniTest
241
241
  assert_equal('日本?V=0764::奈良時代::神護景雲02(0768).09.01', (date ^ When.CalendarEra('Japanese?V=0764'))[0].to_s)
242
242
  assert_equal('日本::奈良時代::神護景雲02(0768).09.02', (date ^ When.CalendarEra('Japanese'))[0].to_s)
243
243
  end
244
+
245
+ def test__japanese_parser
246
+ assert_equal('1945-08-15', When.when?('1945 Aug 15', :parse=>'%Y %B %d').to_s)
247
+ assert_equal('2022-01-06T09:18:24+09:00', When.when?('Thu Jan 6 9:18:24 JST', {:abbr=>2015, :parse=>'%A %B %d %H:%M:%S %z'}).to_s)
248
+ assert_equal('2022-01-06T09:18:24+09:00', When.when?('木 1月 6 9:18:24 JST', {:abbr=>2015, :parse=>['%A %B %d %H:%M:%S %z', 'ja']}).to_s)
249
+ assert_equal('昭和15(1940).11.20', When.when?('昭和十五年十一月廿日', {:parse=>When::Locale::JapaneseParser}).to_s)
250
+ assert_equal('昭和59(1984).11.26', When.when?('昭和甲子年11月甲子', {:parse=>When::Locale::JapaneseParser}).to_s)
251
+ assert_equal('昭和59(1984).11.26', When.when?('昭和甲子歳11月甲子', {:parse=>When::Locale::JapaneseParser}).to_s)
252
+ assert_equal('明治01(1868).04=07T12:06:03+09:00', When.when?('明治元年閏4月甲寅12時6分3秒+09:00',
253
+ {:parse=>When::Locale::JapaneseParser}).to_s)
254
+ end
255
+
256
+ def test__japanese_digits
257
+ When::Locale::NumRExp3
258
+ assert_equal([512100060, 1200000000, 230000000, 34000000, 4500000, 560000, 67000, 7800, 890, 90, 0],
259
+ %w(伍億仟弐佰拾萬陸拾 十二億 二億三千万 三千四百万 四百五十万 五十六万 六万七千 七千八百 八百九十 九十零 零).map {|fig|
260
+ When::Locale.k2a_digits(fig, true)
261
+ })
262
+ end
263
+
244
264
  =begin
245
265
  def test_japanese_date
246
266
  jc = When.Resource('_c:Japanese')
@@ -12,8 +12,8 @@ module MiniTest
12
12
 
13
13
  First = [
14
14
  ["Calendar", "Calendar", nil],
15
- ["Month", "月の名前", "https://ja.wikipedia.org/wiki/%E6%9C%88_(%E6%9A%A6)"],
16
- ["Month", "月の名前", "https://ja.wikipedia.org/wiki/%E6%9C%88_(%E6%9A%A6)"],
15
+ ["Month", "月の名前", "https://ja.wikipedia.org/wiki/%E6%9C%88_%28%E6%9A%A6%29"],
16
+ ["Month", "月の名前", "https://ja.wikipedia.org/wiki/%E6%9C%88_%28%E6%9A%A6%29"],
17
17
  ["January", "1月", "https://ja.wikipedia.org/wiki/1%E6%9C%88"]
18
18
  ]
19
19
 
@@ -48,7 +48,7 @@ module MiniTest
48
48
  # No offset
49
49
  haab = When.Resource("_co:Mayan::Haab'")
50
50
  assert_equal("ハアブ", haab.label.translate('ja'))
51
- assert_equal("https://en.wikipedia.org/wiki/Haab'", haab.label.reference)
51
+ assert_equal("https://en.wikipedia.org/wiki/Haab%27", haab.label.reference)
52
52
  pop = When.Resource("_co:Mayan::Haab'::Pop")
53
53
  assert_equal("Pop", pop.label.translate('en'))
54
54
  assert_equal("https://en.wikipedia.org/wiki/File:Maya-Pop.jpg", pop.label.reference)
@@ -68,7 +68,7 @@ module MiniTest
68
68
  # offset 0B
69
69
  haab = When.Resource("_co:Mayan?Epoch=0D::Haab'")
70
70
  assert_equal("ハアブ", haab.label.translate('ja'))
71
- assert_equal("https://en.wikipedia.org/wiki/Haab'", haab.label.reference)
71
+ assert_equal("https://en.wikipedia.org/wiki/Haab%27", haab.label.reference)
72
72
  pop = When.Resource("_co:Mayan?Epoch=0D::Haab'::Pop")
73
73
  assert_equal("Pop", pop.label.translate('en'))
74
74
  assert_equal("https://en.wikipedia.org/wiki/File:Maya-Pop.jpg", pop.label.reference)
@@ -88,7 +88,7 @@ module MiniTest
88
88
  # offset 2B
89
89
  haab = When.Resource("_co:Mayan?Epoch=2D::Haab'")
90
90
  assert_equal("ハアブ", haab.label.translate('ja'))
91
- assert_equal("https://en.wikipedia.org/wiki/Haab'", haab.label.reference)
91
+ assert_equal("https://en.wikipedia.org/wiki/Haab%27", haab.label.reference)
92
92
  pop = When.Resource("_co:Mayan?Epoch=2D::Haab'::Pop")
93
93
  assert_equal("Pop", pop.label.translate('en'))
94
94
  assert_equal("https://en.wikipedia.org/wiki/File:Maya-Pop.jpg", pop.label.reference)
@@ -116,7 +116,7 @@ module MiniTest
116
116
 
117
117
  tzolkin = When.Resource("_co:Mayan::Tzolk'in")
118
118
  assert_equal("ツォルキン", tzolkin.label.translate('ja'))
119
- assert_equal("https://en.wikipedia.org/wiki/Tzolk'in", tzolkin.label.reference)
119
+ assert_equal("https://en.wikipedia.org/wiki/Tzolk%27in", tzolkin.label.reference)
120
120
  ajaw = When.Resource("_co:Mayan::Tzolk'in::Ajaw")
121
121
  assert_equal("Ajaw", ajaw.label.translate('en'))
122
122
  assert_equal("https://en.wikipedia.org/wiki/File:MAYA-g-log-cal-D20-Ajaw-cdxW.png", ajaw.label.reference('alias'))
@@ -144,7 +144,7 @@ module MiniTest
144
144
 
145
145
  tzolkin = When.Resource("_co:Mayan?Epoch=0D::Tzolk'in")
146
146
  assert_equal("ツォルキン", tzolkin.label.translate('ja'))
147
- assert_equal("https://en.wikipedia.org/wiki/Tzolk'in", tzolkin.label.reference)
147
+ assert_equal("https://en.wikipedia.org/wiki/Tzolk%27in", tzolkin.label.reference)
148
148
  ajaw = When.Resource("_co:Mayan?Epoch=0D::Tzolk'in::Ajaw")
149
149
  assert_equal("Ajaw", ajaw.label.translate('en'))
150
150
  assert_equal("https://en.wikipedia.org/wiki/File:MAYA-g-log-cal-D20-Ajaw-cdxW.png", ajaw.label.reference('alias'))
@@ -172,7 +172,7 @@ module MiniTest
172
172
 
173
173
  tzolkin = When.Resource("_co:Mayan?Epoch=2D::Tzolk'in")
174
174
  assert_equal("ツォルキン", tzolkin.label.translate('ja'))
175
- assert_equal("https://en.wikipedia.org/wiki/Tzolk'in", tzolkin.label.reference)
175
+ assert_equal("https://en.wikipedia.org/wiki/Tzolk%27in", tzolkin.label.reference)
176
176
  ajaw = When.Resource("_co:Mayan?Epoch=2D::Tzolk'in::Ajaw")
177
177
  assert_equal("Ajaw", ajaw.label.translate('en'))
178
178
  assert_equal("https://en.wikipedia.org/wiki/File:MAYA-g-log-cal-D20-Ajaw-cdxW.png", ajaw.label.reference('alias'))
@@ -1,6 +1,6 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  =begin
3
- Copyright (C) 2011-2015 Takashi SUGA
3
+ Copyright (C) 2011-2016 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.
@@ -61,6 +61,14 @@ LIST
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('2016-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('%+'))
@@ -152,6 +160,60 @@ LIST
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_equal(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_equal(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-'],
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.4
4
+ version: 0.4.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Takashi SUGA
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-10-13 00:00:00.000000000 Z
11
+ date: 2016-01-15 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
@@ -54,6 +54,7 @@ files:
54
54
  - lib/when_exe/ephemeris/planets.rb
55
55
  - lib/when_exe/ephemeris/sun.rb
56
56
  - lib/when_exe/ephemeris/v50.rb
57
+ - lib/when_exe/events.rb
57
58
  - lib/when_exe/google_api.rb
58
59
  - lib/when_exe/icalendar.rb
59
60
  - lib/when_exe/inspect.rb
@@ -158,6 +159,7 @@ files:
158
159
  - lib/when_exe/locales/zh_TW.rb
159
160
  - lib/when_exe/locales/zh_YUE.rb
160
161
  - lib/when_exe/mini_application.rb
162
+ - lib/when_exe/namespace.rb
161
163
  - lib/when_exe/obsolete/googlecalendar.rb
162
164
  - lib/when_exe/parts/enumerator.rb
163
165
  - lib/when_exe/parts/geometric_complex.rb
@@ -190,6 +192,7 @@ files:
190
192
  - lib/when_exe/region/japanese/calendars.rb
191
193
  - lib/when_exe/region/japanese/eclipses.rb
192
194
  - lib/when_exe/region/japanese/epochs.rb
195
+ - lib/when_exe/region/japanese/location.rb
193
196
  - lib/when_exe/region/japanese/nihon_shoki.rb
194
197
  - lib/when_exe/region/japanese/notes.rb
195
198
  - lib/when_exe/region/japanese/residues.rb
@@ -198,6 +201,7 @@ files:
198
201
  - lib/when_exe/region/javanese.rb
199
202
  - lib/when_exe/region/jewish.rb
200
203
  - lib/when_exe/region/korean.rb
204
+ - lib/when_exe/region/location.rb
201
205
  - lib/when_exe/region/m17n.rb
202
206
  - lib/when_exe/region/martian.rb
203
207
  - lib/when_exe/region/mayan.rb
@@ -220,13 +224,32 @@ files:
220
224
  - lib/when_exe/region/world_season.rb
221
225
  - lib/when_exe/region/yerm.rb
222
226
  - lib/when_exe/region/zoroastrian.rb
227
+ - lib/when_exe/spatial.rb
223
228
  - lib/when_exe/timestandard.rb
224
229
  - lib/when_exe/tmduration.rb
225
230
  - lib/when_exe/tmobjects.rb
226
231
  - lib/when_exe/tmposition.rb
232
+ - lib/when_exe/tmptypes.rb
227
233
  - lib/when_exe/tmreference.rb
228
234
  - lib/when_exe/version.rb
229
235
  - link_to_online_documents
236
+ - test/events/example-datasets
237
+ - test/events/history-dataset.csv
238
+ - test/events/japanese-holiday-index.csv
239
+ - test/events/japanese-holiday.csv
240
+ - test/events/japanese-holiday.ttl
241
+ - test/events/make_events_ttl.rb
242
+ - test/events/mori_wikichoshi.csv
243
+ - test/events/ndl_koyomi.csv
244
+ - test/events/ndl_koyomi_index.csv
245
+ - test/events/primeminister-dataset.csv
246
+ - test/events/shogun-dataset.csv
247
+ - test/events/test-history-dataset-edge-sparql.csv
248
+ - test/events/test-history-dataset-edge.csv
249
+ - test/events/test-history-dataset-sparql.csv
250
+ - test/events/test-history-dataset.csv
251
+ - test/events/test-history-events-edge.ttl
252
+ - test/events/test-history-events.csv
230
253
  - test/examples/JapanHolidays.ics
231
254
  - test/examples/JapanHolidaysRFC6350.ics
232
255
  - test/examples/Millennium.ics
@@ -276,6 +299,7 @@ files:
276
299
  - test/test/ephemeris/moon.rb
277
300
  - test/test/ephemeris/planets.rb
278
301
  - test/test/ephemeris/sun.rb
302
+ - test/test/events.rb
279
303
  - test/test/google_api.rb
280
304
  - test/test/icalendar.rb
281
305
  - test/test/inspect.rb