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,115 +1,115 @@
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::Ephemeris
10
-
11
- class Ephemeris < MiniTest::TestCase
12
- def test_nothing
13
- end
14
- end
15
-
16
- class CelestialObject < MiniTest::TestCase
17
- def test_nothing
18
- end
19
- end
20
-
21
- class Star < MiniTest::TestCase
22
-
23
- def test_nothing
24
- end
25
-
26
- # 恒星
27
- class Fixed < MiniTest::TestCase
28
- def test__access_hr
29
- polaris = When::Resource('_sc:HR0424')
30
- assert_equal("Alp UMi", polaris.bayer_name)
31
- end
32
- end
33
-
34
- # 春分点
35
- class Vernal < MiniTest::TestCase
36
- def test_nothing
37
- end
38
- end
39
-
40
- # 北極
41
- class Pole < MiniTest::TestCase
42
- def test_nothing
43
- end
44
- end
45
- end
46
-
47
- class Planet < MiniTest::TestCase
48
- def test_nothing
49
- end
50
- end
51
-
52
- class Coords < MiniTest::TestCase
53
- def test_nothing
54
- end
55
- end
56
-
57
- class Formula < MiniTest::TestCase
58
- def test__sunrise
59
-
60
- assert_raises(NoMethodError) { When.when?('2012-11-15').sunrise }
61
-
62
- assert_equal(nil, When.when?('2013-06-21T+09:00', :long=>135, :lat=>70).sunrise)
63
-
64
- if Object.const_defined?(:TZInfo)
65
- assert_equal(0, /2012-11-15T06:16/ =~ When.when?('2012-11-15', :tz=>'Asia/Tokyo').sunrise.to_s)
66
- assert_equal(0, /2012-11-15T06:16/ =~ When.when?('2012-11-15', :tz=>'Asia/Tokyo', :location=>'_l:long=139.7414&lat=35.6581').sunrise.to_s)
67
- else
68
- puts
69
- puts "Tests for TZInfo have been skipped at line #{__LINE__} of #{__FILE__.split(/\//)[-1]}."
70
- end
71
- assert_equal(0, /2012-11-15T06:16/ =~ When.when?('2012-11-15T+09:00', :long=>139.7414, :lat=>35.6581).sunrise.to_s)
72
- assert_equal(0, /2012-11-14T21:16/ =~ When.when?('2012-11-15', :long=>139.7414, :lat=>35.6581).sunrise.to_s)
73
-
74
- today = '2014-3-4'
75
-
76
- location = When.Location('long=139.413012E&lat=35.412222N')
77
- assert_equal(0, /2014-03-03T21:07/ =~ When.when?(today, {:location=>location}).sunrise.to_s)
78
-
79
- When::Coordinates::Spatial.default_location = location
80
- assert_equal(0, /2014-03-03T21:07/ =~ When.when?(today).sunrise.to_s)
81
-
82
- When::TM::Clock.local_time = '+09:00'
83
- assert_equal(0, /2014-03-04T06:07/ =~ When.when?(today).sunrise.to_s)
84
- end
85
-
86
- def test__lunisolar_location
87
- formula1 = When.Resource('_ep:Formula?formula=1L')
88
- formula2 = When.Resource('_ep:Formula?formula=12S')
89
- date = When.when?('2014-08-01', :clock=>'+09:00')
90
- assert_equal('2014-07-27T07:41+09:00', formula1.nearest_past(date).floor(When::MINUTE).to_s)
91
- assert_equal('2014-07-23T06:41+09:00', formula2.nearest_past(date).floor(When::MINUTE).to_s)
92
- assert_equal('2014-07-07T13:15+09:00', formula2.nearest_past(date, 0.5).floor(When::MINUTE).to_s)
93
- end
94
- end
95
-
96
- if Object.const_defined?(:TZInfo)
97
- class Note < MiniTest::TestCase
98
- def test__tide
99
-
100
- sample = [%w(2013-10-02T02:58+09:00 _n:Ephemeris/Notes::day::Tide::Low_Tide),
101
- %w(2013-10-02T09:09+09:00 _n:Ephemeris/Notes::day::Tide::High_Tide),
102
- %w(2013-10-02T15:20+09:00 _n:Ephemeris/Notes::day::Tide::Low_Tide),
103
- %w(2013-10-02T21:32+09:00 _n:Ephemeris/Notes::day::Tide::High_Tide)]
104
-
105
- note = When.CalendarNote('Ephemeris?interval=0.0')
106
- date = When.when?('2013-10-02', :tz=>'Asia/Tokyo')
107
- note.tide(date).each do |d|
108
- assert_equal(sample.shift, [d.floor(When::MINUTE).to_s, d.events[0].iri(true)])
109
- end
110
- end
111
- end
112
- else
113
- puts "Tests for TZInfo have been skipped at line #{__LINE__} of #{__FILE__.split(/\//)[-1]}."
114
- end
115
- end
1
+ # -*- coding: utf-8 -*-
2
+ =begin
3
+ Copyright (C) 2011-2020 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::Ephemeris
10
+
11
+ class Ephemeris < MiniTest::TestCase
12
+ def test_nothing
13
+ end
14
+ end
15
+
16
+ class CelestialObject < MiniTest::TestCase
17
+ def test_nothing
18
+ end
19
+ end
20
+
21
+ class Star < MiniTest::TestCase
22
+
23
+ def test_nothing
24
+ end
25
+
26
+ # 恒星
27
+ class Fixed < MiniTest::TestCase
28
+ def test__access_hr
29
+ polaris = When::Resource('_sc:HR0424')
30
+ assert_equal("Alp UMi", polaris.bayer_name)
31
+ end
32
+ end
33
+
34
+ # 春分点
35
+ class Vernal < MiniTest::TestCase
36
+ def test_nothing
37
+ end
38
+ end
39
+
40
+ # 北極
41
+ class Pole < MiniTest::TestCase
42
+ def test_nothing
43
+ end
44
+ end
45
+ end
46
+
47
+ class Planet < MiniTest::TestCase
48
+ def test_nothing
49
+ end
50
+ end
51
+
52
+ class Coords < MiniTest::TestCase
53
+ def test_nothing
54
+ end
55
+ end
56
+
57
+ class Formula < MiniTest::TestCase
58
+ def test__sunrise
59
+
60
+ assert_raises(NoMethodError) { When.when?('2012-11-15').sunrise }
61
+
62
+ assert_nil(When.when?('2013-06-21T+09:00', :long=>135, :lat=>70).sunrise)
63
+
64
+ if Object.const_defined?(:TZInfo)
65
+ assert_equal(0, /2012-11-15T06:16/ =~ When.when?('2012-11-15', :tz=>'Asia/Tokyo').sunrise.to_s)
66
+ assert_equal(0, /2012-11-15T06:16/ =~ When.when?('2012-11-15', :tz=>'Asia/Tokyo', :location=>'_l:long=139.7414&lat=35.6581').sunrise.to_s)
67
+ else
68
+ puts
69
+ puts "Tests for TZInfo have been skipped at line #{__LINE__} of #{__FILE__.split(/\//)[-1]}."
70
+ end
71
+ assert_equal(0, /2012-11-15T06:16/ =~ When.when?('2012-11-15T+09:00', :long=>139.7414, :lat=>35.6581).sunrise.to_s)
72
+ assert_equal(0, /2012-11-14T21:16/ =~ When.when?('2012-11-15', :long=>139.7414, :lat=>35.6581).sunrise.to_s)
73
+
74
+ today = '2014-3-4'
75
+
76
+ location = When.Location('long=139.413012E&lat=35.412222N')
77
+ assert_equal(0, /2014-03-03T21:07/ =~ When.when?(today, {:location=>location}).sunrise.to_s)
78
+
79
+ When::Coordinates::Spatial.default_location = location
80
+ assert_equal(0, /2014-03-03T21:07/ =~ When.when?(today).sunrise.to_s)
81
+
82
+ When::TM::Clock.local_time = '+09:00'
83
+ assert_equal(0, /2014-03-04T06:07/ =~ When.when?(today).sunrise.to_s)
84
+ end
85
+
86
+ def test__lunisolar_location
87
+ formula1 = When.Resource('_ep:Formula?formula=1L')
88
+ formula2 = When.Resource('_ep:Formula?formula=12S')
89
+ date = When.when?('2014-08-01', :clock=>'+09:00')
90
+ assert_equal('2014-07-27T07:41+09:00', formula1.nearest_past(date).floor(When::MINUTE).to_s)
91
+ assert_equal('2014-07-23T06:41+09:00', formula2.nearest_past(date).floor(When::MINUTE).to_s)
92
+ assert_equal('2014-07-07T13:15+09:00', formula2.nearest_past(date, 0.5).floor(When::MINUTE).to_s)
93
+ end
94
+ end
95
+
96
+ if Object.const_defined?(:TZInfo)
97
+ class Note < MiniTest::TestCase
98
+ def test__tide
99
+
100
+ sample = [%w(2013-10-02T02:58+09:00 _n:Ephemeris/Notes::day::Tide::Low_Tide),
101
+ %w(2013-10-02T09:09+09:00 _n:Ephemeris/Notes::day::Tide::High_Tide),
102
+ %w(2013-10-02T15:20+09:00 _n:Ephemeris/Notes::day::Tide::Low_Tide),
103
+ %w(2013-10-02T21:32+09:00 _n:Ephemeris/Notes::day::Tide::High_Tide)]
104
+
105
+ note = When.CalendarNote('Ephemeris?interval=0.0')
106
+ date = When.when?('2013-10-02', :tz=>'Asia/Tokyo')
107
+ note.tide(date).each do |d|
108
+ assert_equal(sample.shift, [d.floor(When::MINUTE).to_s, d.events[0].iri(true)])
109
+ end
110
+ end
111
+ end
112
+ else
113
+ puts "Tests for TZInfo have been skipped at line #{__LINE__} of #{__FILE__.split(/\//)[-1]}."
114
+ end
115
+ end
@@ -1,14 +1,14 @@
1
- # -*- coding: utf-8 -*-
2
- =begin
3
- Copyright (C) 2011 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::Ephemeris
10
- class Moon < MiniTest::TestCase
11
- def test_nothing
12
- end
13
- end
14
- end
1
+ # -*- coding: utf-8 -*-
2
+ =begin
3
+ Copyright (C) 2011 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::Ephemeris
10
+ class Moon < MiniTest::TestCase
11
+ def test_nothing
12
+ end
13
+ end
14
+ end
@@ -1,14 +1,14 @@
1
- # -*- coding: utf-8 -*-
2
- =begin
3
- Copyright (C) 2011 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::Ephemeris
10
- class Planets < MiniTest::TestCase
11
- def test_nothing
12
- end
13
- end
14
- end
1
+ # -*- coding: utf-8 -*-
2
+ =begin
3
+ Copyright (C) 2011 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::Ephemeris
10
+ class Planets < MiniTest::TestCase
11
+ def test_nothing
12
+ end
13
+ end
14
+ end
@@ -1,14 +1,14 @@
1
- # -*- coding: utf-8 -*-
2
- =begin
3
- Copyright (C) 2011 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::Ephemeris
10
- class Sun < MiniTest::TestCase
11
- def test_nothing
12
- end
13
- end
14
- end
1
+ # -*- coding: utf-8 -*-
2
+ =begin
3
+ Copyright (C) 2011 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::Ephemeris
10
+ class Sun < MiniTest::TestCase
11
+ def test_nothing
12
+ end
13
+ end
14
+ 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
+
@@ -1,56 +1,69 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  =begin
3
- Copyright (C) 2015 Takashi SUGA
3
+ Copyright (C) 2015-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.
7
+
8
+ Before running this script, please create "credentials.json" and "token.yaml" by
9
+ running quickstart.rb according to the Quick Start description at the URL below,
10
+ and place them in the same directory as test.rb.
11
+
12
+ https://developers.google.com/calendar/quickstart/ruby
13
+
7
14
  =end
8
15
 
9
16
  require 'fileutils'
10
- require 'yaml'
11
- require 'google/api_client' if FileTest.exist?('google-api.yaml')
17
+ if FileTest.exist?("token.yaml")
18
+ require "google/apis/calendar_v3"
19
+ require "googleauth"
20
+ require "googleauth/stores/file_token_store"
21
+ end
12
22
 
13
23
  module MiniTest
14
24
 
15
25
  class GoogleAPI < MiniTest::TestCase
16
26
 
17
27
  HOLIDAYS = [
18
- ["2015-01-01", "New Year's Day" ],
19
- ["2015-01-12", "Coming of Age Day" ],
20
- ["2015-02-11", "National Foundation Day" ],
21
- ["2015-03-21", "Spring Equinox" ],
22
- ["2015-04-29", "Shōwa Day" ],
23
- ["2015-05-03", "Constitution Memorial Day" ],
24
- ["2015-05-04", "Greenery Day" ],
25
- ["2015-05-05", "Children's Day" ],
26
- ["2015-05-06", "Constitution Memorial Day observed"],
27
- ["2015-07-20", "Sea Day" ],
28
- ["2015-09-21", "Respect for the Aged Day" ],
29
- ["2015-09-22", "Bridge Public holiday" ],
30
- ["2015-09-23", "Autumn Equinox" ],
31
- ["2015-10-12", "Sports Day" ],
32
- ["2015-11-03", "Culture Day" ],
33
- ["2015-11-23", "Labor Thanksgiving Day" ],
34
- ["2015-12-23", "Emperor's Birthday" ]
28
+ ["2021-01-01", "New Year's Day"],
29
+ ["2021-01-11", "Coming of Age Day"],
30
+ ["2021-02-11", "National Foundation Day"],
31
+ ["2021-02-23", "Emperor's Birthday"],
32
+ ["2021-03-20", "Spring Equinox"],
33
+ ["2021-04-29", "Shōwa Day"],
34
+ ["2021-05-03", "Constitution Memorial Day"],
35
+ ["2021-05-04", "Greenery Day"],
36
+ ["2021-05-05", "Children's Day"],
37
+ ["2021-07-22", "Sea Day"],
38
+ ["2021-07-23", "Sports Day"],
39
+ ["2021-08-08", "Mountain Day"],
40
+ ["2021-08-09", "Day off for Mountain Day"],
41
+ ["2021-09-20", "Respect for the Aged Day"],
42
+ ["2021-09-23", "Autumn Equinox"],
43
+ ["2021-11-03", "Culture Day"],
44
+ ["2021-11-23", "Labor Thanksgiving Day"]
35
45
  ]
36
46
 
37
- if FileTest.exist?('google-api.yaml')
47
+ def authorize
48
+ client_id = Google::Auth::ClientId.from_file "credentials.json"
49
+ scope = Google::Apis::CalendarV3::AUTH_CALENDAR_READONLY
50
+ token_store = Google::Auth::Stores::FileTokenStore.new file: "token.yaml"
51
+ authorizer = Google::Auth::UserAuthorizer.new client_id, scope, token_store
52
+ authorizer.get_credentials "default"
53
+ end
54
+
55
+ if FileTest.exist?("token.yaml")
38
56
 
39
57
  def test__enum_for
40
- oauth_yaml = YAML.load_file('google-api.yaml')
41
- client = Google::APIClient.new(:application_name => "when_exe",
42
- :application_version => When::VERSION)
43
- client.authorization.client_id = oauth_yaml["client_id"]
44
- client.authorization.client_secret = oauth_yaml["client_secret"]
45
- client.authorization.scope = oauth_yaml["scope"]
46
- client.authorization.refresh_token = oauth_yaml["refresh_token"]
47
- client.authorization.access_token = oauth_yaml["access_token"]
48
- service = client.discovered_api('calendar', 'v3')
49
- calendar = When::GoogleAPI::Calendar.list(client, service,
58
+ service = Google::Apis::CalendarV3::CalendarService.new
59
+ service.client_options.application_name = "Google Calendar API Ruby Test"
60
+ service.authorization = authorize
61
+
62
+ calendar = When::GoogleAPI::Calendar.list(service,
50
63
  'en.japanese#holiday@group.v.calendar.google.com')
51
64
  assert_equal(calendar.calendar_id, 'en.japanese#holiday@group.v.calendar.google.com')
52
65
  holidays = HOLIDAYS.dup
53
- calendar.enum_for(When.when?('20150101/1231')).each do |date|
66
+ calendar.enum_for(When.when?('20210101/1231')).each do |date|
54
67
  assert_equal(holidays.shift, [date.to_s, date.events[0].summary])
55
68
  end
56
69
  assert_equal([], holidays)