when_exe 0.4.4 → 0.4.5

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