when_exe 0.3.2 → 0.3.3

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 (93) hide show
  1. data/LICENSE.ja.txt +25 -25
  2. data/LICENSE.txt +31 -31
  3. data/bin/locales.rb +2 -1
  4. data/bin/when.rb.config +1 -1
  5. data/lib/when_exe.rb +70 -48
  6. data/lib/when_exe/basictypes.rb +99 -65
  7. data/lib/when_exe/calendartypes.rb +40 -178
  8. data/lib/when_exe/coordinates.rb +156 -62
  9. data/lib/when_exe/core/compatibility.rb +10 -0
  10. data/lib/when_exe/core/extension.rb +40 -0
  11. data/lib/when_exe/ephemeris.rb +112 -50
  12. data/lib/when_exe/icalendar.rb +125 -91
  13. data/lib/when_exe/inspect.rb +100 -48
  14. data/lib/when_exe/locales/ar.rb +48 -48
  15. data/lib/when_exe/locales/bg.rb +1 -1
  16. data/lib/when_exe/locales/bs.rb +4 -2
  17. data/lib/when_exe/locales/ca.rb +1 -1
  18. data/lib/when_exe/locales/en_CA.rb +3 -4
  19. data/lib/when_exe/locales/en_IE.rb +88 -0
  20. data/lib/when_exe/locales/en_US.rb +87 -0
  21. data/lib/when_exe/locales/es_CR.rb +84 -0
  22. data/lib/when_exe/locales/es_EC.rb +85 -0
  23. data/lib/when_exe/locales/es_PA.rb +85 -0
  24. data/lib/when_exe/locales/fr.rb +39 -39
  25. data/lib/when_exe/locales/hu.rb +15 -14
  26. data/lib/when_exe/locales/it.rb +1 -1
  27. data/lib/when_exe/locales/ja.rb +2 -2
  28. data/lib/when_exe/locales/locales.rb +7 -0
  29. data/lib/when_exe/locales/lt.rb +21 -19
  30. data/lib/when_exe/locales/ms.rb +84 -0
  31. data/lib/when_exe/locales/nl.rb +2 -2
  32. data/lib/when_exe/locales/ru.rb +1 -1
  33. data/lib/when_exe/locales/uk.rb +1 -1
  34. data/lib/when_exe/locales/ur.rb +84 -0
  35. data/lib/when_exe/mini_application.rb +44 -43
  36. data/lib/when_exe/parts/enumerator.rb +3 -3
  37. data/lib/when_exe/parts/geometric_complex.rb +6 -1
  38. data/lib/when_exe/parts/locale.rb +49 -18
  39. data/lib/when_exe/parts/method_cash.rb +61 -0
  40. data/lib/when_exe/parts/resource.rb +221 -106
  41. data/lib/when_exe/parts/timezone.rb +70 -33
  42. data/lib/when_exe/region/bahai.rb +2 -2
  43. data/lib/when_exe/region/balinese.rb +40 -43
  44. data/lib/when_exe/region/chinese.rb +93 -33
  45. data/lib/when_exe/region/chinese_calendar.rb +117 -1
  46. data/lib/when_exe/region/chinese_epoch.rb +65 -10
  47. data/lib/when_exe/region/christian.rb +97 -2
  48. data/lib/when_exe/region/ephemeric_notes.rb +353 -0
  49. data/lib/when_exe/region/french.rb +1 -1
  50. data/lib/when_exe/region/geologicalage.rb +171 -171
  51. data/lib/when_exe/region/indian.rb +18 -14
  52. data/lib/when_exe/region/iranian.rb +1 -1
  53. data/lib/when_exe/region/japanese.rb +49 -12
  54. data/lib/when_exe/region/japanese_notes.rb +838 -507
  55. data/lib/when_exe/region/japanese_residues.rb +724 -662
  56. data/lib/when_exe/region/javanese.rb +7 -7
  57. data/lib/when_exe/region/mayan.rb +19 -17
  58. data/lib/when_exe/region/nihon_shoki.rb +3 -3
  59. data/lib/when_exe/region/residue.rb +29 -28
  60. data/lib/when_exe/region/shire.rb +2 -2
  61. data/lib/when_exe/region/tibetan.rb +87 -5
  62. data/lib/when_exe/region/world.rb +1 -1
  63. data/lib/when_exe/timestandard.rb +85 -7
  64. data/lib/when_exe/tmobjects.rb +32 -4
  65. data/lib/when_exe/tmposition.rb +104 -55
  66. data/lib/when_exe/tmreference.rb +157 -60
  67. data/lib/when_exe/version.rb +2 -2
  68. data/test/examples/JapanHolidays.ics +3 -3
  69. data/test/examples/JapanHolidaysRFC6350.ics +499 -0
  70. data/test/examples/Residue.m17n +3 -2
  71. data/test/examples/Spatial.m17n +3 -3
  72. data/test/examples/USA-DST.ics +27 -27
  73. data/test/examples/today.rb +1 -1
  74. data/test/test.rb +4 -2
  75. data/test/test/basictypes.rb +40 -15
  76. data/test/test/coordinates.rb +9 -4
  77. data/test/test/icalendar.rb +24 -14
  78. data/test/test/inspect.rb +5 -3
  79. data/test/test/parts.rb +11 -2
  80. data/test/test/region/chinese.rb +4 -4
  81. data/test/test/region/civil.rb +124 -0
  82. data/test/test/region/geologicalage.rb +5 -2
  83. data/test/test/region/indian.rb +2 -0
  84. data/test/test/region/japanese.rb +156 -1
  85. data/test/test/region/jewish.rb +3 -3
  86. data/test/test/region/m17n.rb +9 -9
  87. data/test/test/region/mayan.rb +122 -5
  88. data/test/test/region/residue.rb +1 -1
  89. data/test/test/tmobjects.rb +27 -64
  90. data/test/test/tmposition.rb +48 -1
  91. data/test/test/tmreference.rb +66 -4
  92. data/when_exe.gemspec +1 -1
  93. metadata +15 -6
@@ -1,5 +1,5 @@
1
1
  BEGIN:B:M17N
2
- # Copyright (C) 2011 Takashi SUGA
2
+ # Copyright (C) 20112-13 Takashi SUGA
3
3
  #
4
4
  # You may use and/or modify this file according to the license
5
5
  # described in the LICENSE.txt file included in this archive.
@@ -23,7 +23,8 @@ BEGIN:B:M17N
23
23
  REMAINDER:5
24
24
  END:CO:RESIDUE
25
25
  BEGIN:CO:RESIDUE
26
- LABEL:[Sunday,日曜日]
26
+ LABEL;ALTID=1;LANGUAGE=en:Sunday
27
+ LABEL;ALTID=1;LANGUAGE=ja:日曜日
27
28
  REMAINDER:6
28
29
  END:CO:RESIDUE
29
30
  END:CO:RESIDUE
@@ -1,10 +1,10 @@
1
1
  BEGIN:B:M17N
2
- # Copyright (C) 2011 Takashi SUGA
2
+ # Copyright (C) 2011-2013 Takashi SUGA
3
3
  #
4
4
  # You may use and/or modify this file according to the license
5
5
  # described in the LICENSE.txt file included in this archive.
6
- NAMESPACE:[en=http://en.wikipedia.org/wiki/,
7
- ja=http://ja.wikipedia.org/wiki/]
6
+ NAMESPACE:[ja=http://ja.wikipedia.org/wiki/]
7
+ NAMESPACE;ALTID=1;PREFIX=en:http://en.wikipedia.org/wiki/
8
8
  LOCALE:[=en:, ja=ja:, alias]
9
9
  NAMES:[Locations]
10
10
 
@@ -1,61 +1,61 @@
1
1
  BEGIN:VCALENDAR
2
- # Copyright (C) 2011 Takashi SUGA
2
+ # Copyright (C) 2011-2013 Takashi SUGA
3
3
  #
4
4
  # You may use and/or modify this file according to the license
5
5
  # described in the LICENSE.txt file included in this archive.
6
6
  VERSION:2.0
7
7
  PRODID:-//hacksw/handcal//NONSGML v1.0//EN
8
8
  BEGIN:VTIMEZONE
9
- TZID:America/#{C}
9
+ TZID:America/#{C:Chicago}
10
10
  LAST-MODIFIED:20050809T050000Z
11
11
  BEGIN:DAYLIGHT
12
12
  DTSTART:19670430T020000
13
- RRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=-1SU;UNTIL=19730429T#{SZ}0000Z
14
- TZOFFSETFROM:-#{S}00
15
- TZOFFSETTO:-#{D}00
16
- TZNAME:#{Z}DT
13
+ RRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=-1SU;UNTIL=19730429T#{SZ:08}0000Z
14
+ TZOFFSETFROM:-#{S:06}00
15
+ TZOFFSETTO:-#{D:05}00
16
+ TZNAME:#{Z:C}DT
17
17
  END:DAYLIGHT
18
18
  BEGIN:STANDARD
19
19
  DTSTART:19671029T020000
20
- RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU;UNTIL=20061029T#{DZ}0000Z
21
- TZOFFSETFROM:-#{D}00
22
- TZOFFSETTO:-#{S}00
23
- TZNAME:#{Z}ST
20
+ RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU;UNTIL=20061029T#{DZ:07}0000Z
21
+ TZOFFSETFROM:-#{D:05}00
22
+ TZOFFSETTO:-#{S:06}00
23
+ TZNAME:#{Z:C}ST
24
24
  END:STANDARD
25
25
  BEGIN:DAYLIGHT
26
26
  DTSTART:19740106T020000
27
27
  RDATE:19750223T020000
28
- TZOFFSETFROM:-#{S}00
29
- TZOFFSETTO:-#{D}00
30
- TZNAME:#{Z}DT
28
+ TZOFFSETFROM:-#{S:06}00
29
+ TZOFFSETTO:-#{D:05}00
30
+ TZNAME:#{Z:C}DT
31
31
  END:DAYLIGHT
32
32
  BEGIN:DAYLIGHT
33
33
  DTSTART:19760425T020000
34
- RRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=-1SU;UNTIL=19860427T#{SZ}0000Z
35
- TZOFFSETFROM:-#{S}00
36
- TZOFFSETTO:-#{D}00
37
- TZNAME:#{Z}DT
34
+ RRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=-1SU;UNTIL=19860427T#{SZ:08}0000Z
35
+ TZOFFSETFROM:-#{S:06}00
36
+ TZOFFSETTO:-#{D:05}00
37
+ TZNAME:#{Z:C}DT
38
38
  END:DAYLIGHT
39
39
  BEGIN:DAYLIGHT
40
40
  DTSTART:19870405T020000
41
- RRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU;UNTIL=20060402T#{SZ}0000Z
42
- TZOFFSETFROM:-#{S}00
43
- TZOFFSETTO:-#{D}00
44
- TZNAME:#{Z}DT
41
+ RRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU;UNTIL=20060402T#{SZ:08}0000Z
42
+ TZOFFSETFROM:-#{S:06}00
43
+ TZOFFSETTO:-#{D:05}00
44
+ TZNAME:#{Z:C}DT
45
45
  END:DAYLIGHT
46
46
  BEGIN:DAYLIGHT
47
47
  DTSTART:20070311T020000
48
48
  RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
49
- TZOFFSETFROM:-#{S}00
50
- TZOFFSETTO:-#{D}00
51
- TZNAME:#{Z}DT
49
+ TZOFFSETFROM:-#{S:06}00
50
+ TZOFFSETTO:-#{D:05}00
51
+ TZNAME:#{Z:C}DT
52
52
  END:DAYLIGHT
53
53
  BEGIN:STANDARD
54
54
  DTSTART:20071104T020000
55
55
  RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
56
- TZOFFSETFROM:-#{D}00
57
- TZOFFSETTO:-#{S}00
58
- TZNAME:#{Z}ST
56
+ TZOFFSETFROM:-#{D:05}00
57
+ TZOFFSETTO:-#{S:06}00
58
+ TZNAME:#{Z:C}ST
59
59
  END:STANDARD
60
60
  END:VTIMEZONE
61
61
  END:VCALENDAR
@@ -18,7 +18,7 @@ date = today
18
18
  pp [date.to_s, date.strftime('%D'), date.frame.iri, date.to_time.to_s]
19
19
  puts
20
20
 
21
- ['Julian', 'ChineseLuniSolar?timezone=9&intercalary_span=3', 'TabularIslamic', 'Jewish', 'LongCount'].each do |calendar|
21
+ ['Julian', 'ChineseLuniSolar?time_basis=+09&intercalary_span=3', 'TabularIslamic', 'Jewish', 'LongCount'].each do |calendar|
22
22
  date = Calendar(calendar) ^ today
23
23
  pp [date.to_s, date.frame.iri]
24
24
  end
data/test/test.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
2
  # -*- coding: utf-8 -*-
3
3
  =begin
4
- Copyright (C) 2011-2013 Takashi SUGA
4
+ Copyright (C) 2011-2014 Takashi SUGA
5
5
 
6
6
  You may use and/or modify this file according to the license
7
7
  described in the LICENSE.txt file included in this archive.
@@ -40,9 +40,10 @@ require './test/tmreference'
40
40
  require './test/tmposition'
41
41
  require './test/calendartypes'
42
42
  require './test/inspect'
43
- require './test/googlecalendar'
43
+ #require './test/googlecalendar'
44
44
  require './test/region/m17n'
45
45
  require './test/region/residue'
46
+ require './test/region/civil'
46
47
  require './test/region/japanese'
47
48
  require './test/region/chinese'
48
49
  require './test/region/tibetan'
@@ -52,3 +53,4 @@ require './test/region/iran'
52
53
  require './test/region/mayan'
53
54
  require './test/region/jewish'
54
55
  require './test/region/french'
56
+ require './test/region/geologicalage'
@@ -36,17 +36,39 @@ module Test
36
36
  ["--04-12", [ 0, "1985-04-12"]], # 3 d) 上位省略表記 ある年の特定の月日 拡張形式
37
37
  ["--04", [-1, "1985-04" ]], # 3 e) 上位省略表記 ある年の特定の月 基本形式
38
38
  ["---12", [ 0, "1985-04-12"]], # 3 f) 上位省略表記 ある月の特定の日 基本形式
39
- ["+0019850412", [ 0, "1985-04-12"]], # 4 a) 拡大表記 特定の日 基本形式
40
- ["+001985-04-12", [ 0, "1985-04-12"]], # 4 a) 拡大表記 特定の日 拡張形式
41
- ["+001985-04", [-1, "1985-04" ]], # 4 b) 拡大表記 特定の月 基本形式
42
- ["+001985", [-2, "1985" ]], # 4 c) 拡大表記 特定の年 基本形式
43
- ["+0019", [-4, "1900" ]], # 4 d) 拡大表記 特定の百年代 基本形式
39
+ ["+019850412", [ 0, "1985-04-12"]], # 4 a) 拡大表記 特定の日 基本形式
40
+ ["+01985-04-12", [ 0, "1985-04-12"]], # 4 a) 拡大表記 特定の日 拡張形式
41
+ ["+01985-04", [-1, "1985-04" ]], # 4 b) 拡大表記 特定の月 基本形式
42
+ ["+01985", [-2, "1985" ]], # 4 c) 拡大表記 特定の年 基本形式
43
+ ["+019", [-4, "1900" ]], # 4 d) 拡大表記 特定の百年代 基本形式
44
44
  ].each do |sample|
45
45
  date = When.when?(sample[0], {:abbr=>[1985,4,12]})
46
46
  assert_equal(sample[1], [date.precision, date.to_s])
47
47
  end
48
48
  end
49
49
 
50
+ def test__x0301_5_2_1_4
51
+ [ # 5.2.1.4 暦日付 拡大表記(Abbr 指定なし)
52
+ ["-019850412", [ 0, "-01985-04-12"]], # 4 a) 拡大表記 特定の日 基本形式
53
+ ["+019850412", [ 0, "1985-04-12"]], # 4 a) 拡大表記 特定の日 基本形式
54
+ ["-01985-04-12", [ 0, "-01985-04-12"]], # 4 a) 拡大表記 特定の日 拡張形式
55
+ ["+01985-04-12", [ 0, "1985-04-12"]], # 4 a) 拡大表記 特定の日 拡張形式
56
+ ["-01985-04", [-1, "-01985-04" ]], # 4 b) 拡大表記 特定の月 基本形式
57
+ ["+01985-04", [-1, "1985-04" ]], # 4 b) 拡大表記 特定の月 基本形式
58
+ ["-01985", [-2, "-01985" ]], # 4 c) 拡大表記 特定の年 基本形式
59
+ ["+01985", [-2, "1985" ]], # 4 c) 拡大表記 特定の年 基本形式
60
+ ["-0190", [-2, "-00190" ]], # 4 d) 拡大表記 特定の年 基本形式
61
+ ["+0190", [-2, "0190" ]], # 4 d) 拡大表記 特定の年 基本形式
62
+ ["-019", [-4, "-01900" ]], # 4 d) 拡大表記 特定の百年代 基本形式
63
+ ["+019", [-4, "1900" ]], # 4 d) 拡大表記 特定の百年代 基本形式
64
+ ["-119", [-4, "-11900" ]], # 4 d) 拡大表記 特定の百年代 基本形式
65
+ ["+119", [-4, "+11900" ]], # 4 d) 拡大表記 特定の百年代 基本形式
66
+ ].each do |sample|
67
+ date = When.when?(sample[0])
68
+ assert_equal(sample[1], [date.precision, date.to_s])
69
+ end
70
+ end
71
+
50
72
  def test__x0301_5_2_2
51
73
  [ # 5.2.2 年間通算日
52
74
  ["1985102", [ 0, "1985-04-12"]], # 1 完全表記 基本形式
@@ -54,8 +76,8 @@ module Test
54
76
  ["85102", [ 0, "1985-04-12"]], # 2 a) 上位省略表記 ある百年代の特定の年日 基本形式
55
77
  ["85-102", [ 0, "1985-04-12"]], # 2 a) 上位省略表記 ある百年代の特定の年日 拡張形式
56
78
  ["-102", [ 0, "1985-04-12"]], # 2 b) 上位省略表記 ある年の特定の日 基本形式
57
- ["+001985102", [ 0, "1985-04-12"]], # 3 a) 拡大表記 特定の日 基本形式
58
- ["+001985-102", [ 0, "1985-04-12"]], # 3 a) 拡大表記 特定の日 拡張形式
79
+ ["+01985102", [ 0, "1985-04-12"]], # 3 a) 拡大表記 特定の日 基本形式
80
+ ["+01985-102", [ 0, "1985-04-12"]], # 3 a) 拡大表記 特定の日 拡張形式
59
81
  ].each do |sample|
60
82
  date = When.when?(sample[0], {:abbr=>[1985,4,12]})
61
83
  assert_equal(sample[1], [date.precision, date.to_s])
@@ -80,10 +102,10 @@ module Test
80
102
  ["-W15-5", [ 0, "1985-04-12"]], # 3 e) 上位省略表記 ある年の週日 拡張形式
81
103
  ["-W15", [ 0, "1985-04-08...1985-04-15"]], # 3 f) 上位省略表記 ある年の週 基本形式
82
104
  ["-W-5", [ 0, "1985-04-12"]], # 3 g) 上位省略表記 ある週の日 基本形式
83
- ["+001985W155", [ 0, "1985-04-12"]], # 4 a) 拡大表記 特定の日 基本形式
84
- ["+001985-W15-5", [ 0, "1985-04-12"]], # 4 a) 拡大表記 特定の日 拡張形式
85
- ["+001985W15", [ 0, "1985-04-08...1985-04-15"]], # 4 b) 拡大表記 特定の週 基本形式
86
- ["+001985-W15",[ 0, "1985-04-08...1985-04-15"]], # 4 c) 拡大表記 特定の週 拡張形式
105
+ ["+01985W155", [ 0, "1985-04-12"]], # 4 a) 拡大表記 特定の日 基本形式
106
+ ["+01985-W15-5", [ 0, "1985-04-12"]], # 4 a) 拡大表記 特定の日 拡張形式
107
+ ["+01985W15", [ 0, "1985-04-08...1985-04-15"]], # 4 b) 拡大表記 特定の週 基本形式
108
+ ["+01985-W15", [ 0, "1985-04-08...1985-04-15"]], # 4 c) 拡大表記 特定の週 拡張形式
87
109
  ].each do |sample|
88
110
  date = When.when?(sample[0], {:abbr=>[1985,15,5]})
89
111
  assert_equal(sample[1], [date.precision, date.to_s])
@@ -339,9 +361,9 @@ LOCALE
339
361
  end
340
362
 
341
363
  def test__label
342
- assert_equal("Getsuyou", Term2.label)
343
- assert_equal(String, Term2.label.class)
344
- assert_equal("Monday", Term3.label)
364
+ assert_equal("Getsuyou", Term2.label.to_s)
365
+ assert_equal(When::BasicTypes::M17n, Term2.label.class)
366
+ assert_equal("Monday", Term3.label.to_s)
345
367
  end
346
368
  end
347
369
 
@@ -354,7 +376,10 @@ LOCALE
354
376
 
355
377
  module RS
356
378
  class Identifier < Unit::TestCase
357
- def test_nothing
379
+ def test__forward
380
+ name = When.Residue('Monday').label
381
+ monday = When::RS::Identifier.new(name)
382
+ assert_equal("月曜日", monday / 'ja')
358
383
  end
359
384
  end
360
385
  end
@@ -1,6 +1,6 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  =begin
3
- Copyright (C) 2011-2013 Takashi SUGA
3
+ Copyright (C) 2011-2014 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.
@@ -52,7 +52,7 @@ module Test::Coordinates
52
52
  assert_equal(sample[1], (r6 & date3).to_s)
53
53
  end
54
54
 
55
- kanshi = When.Resource("_co:Residue?divisor=60&YEAR=4&DAY=11")
55
+ kanshi = When.Resource("_co:Residue?divisor=60&year=4&day=11")
56
56
  date = When.when?("19820606T021540+0900^^Julian")
57
57
  assert_equal("1982-07-27T02:15:40+09:00", (date & kanshi.to('day')).to_s)
58
58
  assert_equal("1985-06-06T02:15:40+09:00", (date & kanshi.to('year')[1]).to_s)
@@ -133,7 +133,7 @@ module Test::Coordinates
133
133
 
134
134
  assert_equal(2426467, (date2+When::Duration('P30Y')).to_i)
135
135
  sample = [
136
- ["Japan64(1931).05.05", false],
136
+ ["ModernJapanese64(1931).05.05", false],
137
137
  ["S06(1931).05.05", true]
138
138
  ]
139
139
  ((date2+When::Duration('P30Y')).scan(When.Resource('ModernJapanese', '_e:'))).each do |d|
@@ -344,10 +344,15 @@ module Test::Coordinates
344
344
  end
345
345
 
346
346
  def test__reference
347
- location = When.Resource("_co:Spatial?label=Kyoto&long=136&lat=30&ref=http%3A%2F%2f")
347
+ location = When.Resource("_co:Spatial?label=Kyoto&long=136&lat=30&ref=(http://)")
348
348
  assert_equal("http://", location.ref)
349
349
  end
350
350
 
351
+ def test__surface_radius
352
+ location = When.Resource("_co:Spatial?label=Kyoto&long=136&lat=30&ref=(http://)")
353
+ assert_equal(6378.14, location.surface_radius)
354
+ end
355
+
351
356
  def test__spatial_m17n
352
357
  ['_co:IndianCities', 'examples/Spatial.m17n'].each do |iri|
353
358
  samples = IndianCities.dup
@@ -81,6 +81,18 @@ module Test:V
81
81
  assert_equal(["2010-05-04T+09:00", 0], [date.to_s, date.precision])
82
82
  assert_equal([true,false], [d0504,d0505].map {|v| event.include?(v)})
83
83
  end
84
+
85
+ def test__rfc_update
86
+ sample = ["Children's_Day_(Japan)", 'Children"s_Day_(Japan)', "Children's_Day_(Japan)"]
87
+ When::TM::Clock.local_time = When.Clock("+0900")
88
+ ["JapanHolidays.ics", "JapanHolidays.ics?Escape=^'", "JapanHolidaysRFC6350.ics"].each do |ics|
89
+ cal = When.Resource('examples/' + ics)
90
+ cal = cal.intersection({'summary'=>/Children['"]s_Day_\(Japan\)/})
91
+ cal.each(When.when?('20100101')...When.when?('20110101')) do |date|
92
+ assert_equal(sample.shift, date.events[0].summary / 'en')
93
+ end
94
+ end
95
+ end
84
96
  end
85
97
 
86
98
  class Event < Test::Unit::TestCase
@@ -149,7 +161,7 @@ module Test:V
149
161
  end
150
162
 
151
163
  def test__ignored_invalid_date
152
- When.Resource("examples/USA-DST.ics?!C=New_York&!Z=E&!D=04&!DZ=06&!S=05&!SZ=07")
164
+ When.Resource("examples/USA-DST.ics?C=New_York&Z=E&D=04&DZ=06&S=05&SZ=07")
153
165
  assert_equal("2007-03-30T09:00:00-04:00", When.when?('TZID=America/New_York:2007-03-30T09:00:00').to_s)
154
166
  sample = [
155
167
  "2007-01-15T09:00:00-05:00",
@@ -190,7 +202,7 @@ module Test:V
190
202
  end
191
203
 
192
204
  def test__multiple_BYxxx_rule # See RFC 5545 [Page 45]
193
- When.Resource("examples/USA-DST.ics?!C=New_York&!Z=E&!D=04&!DZ=06&!S=05&!SZ=07")
205
+ When.Resource("examples/USA-DST.ics?C=New_York&Z=E&D=04&DZ=06&S=05&SZ=07")
194
206
 
195
207
  sample = [
196
208
  "1997-04-13T01:30:00-04:00",
@@ -489,7 +501,7 @@ module Test:V
489
501
 
490
502
  class TimezoneProperty < Test::Unit::TestCase
491
503
  def test__tz_change
492
- ic = When.Resource("examples/USA-DST.ics?!C=New_York&!Z=E&!D=04&!DZ=06&!S=05&!SZ=07")
504
+ ic = When.Resource("examples/USA-DST.ics?C=New_York&Z=E&D=04&DZ=06&S=05&SZ=07")
493
505
  tz = When::V::Timezone["America/New_York"]
494
506
  gc = When.Resource('_c:Gregorian')
495
507
  [
@@ -582,7 +594,7 @@ module Test:V
582
594
  end
583
595
 
584
596
  def test__tzname
585
- ic = When.Resource("examples/USA-DST.ics?!C=New_York&!Z=E&!D=04&!DZ=06&!S=05&!SZ=07")
597
+ ic = When.Resource("examples/USA-DST.ics?C=New_York&Z=E&D=04&DZ=06&S=05&SZ=07")
586
598
  date = When.when?('20110126T250000EST')
587
599
  assert_equal(["2011-01-27T01:00:00-05:00", "Thu Jan 27 01:00:00 -0500 2011", "EST"],
588
600
  [date.to_s, date.strftime('%+'), date.clk_time.frame.tzname[0]])
@@ -607,16 +619,14 @@ module Test:V
607
619
 
608
620
  class Timezone < Test::Unit::TestCase
609
621
  def test__neighbor_event_date
610
- When.Resource("examples/USA-DST.ics?!C=New_York&!Z=E&!D=04&!DZ=06&!S=05&!SZ=07")
622
+ When.Resource("examples/USA-DST.ics?C=New_York&Z=E&D=04&DZ=06&S=05&SZ=07")
611
623
  tz = When::V::Timezone["America/New_York"]
612
- eval('class When::V::Timezone ; public :_neighbor_event_date ; end')
613
- assert_equal("1997-04-06T02:00:00-05:00", tz._neighbor_event_date(When.when?("19970510")).to_s)
614
- assert_equal("1997-10-26T02:00:00-04:00", tz._neighbor_event_date(When.when?("19971010")).to_s)
615
- eval('class When::V::Timezone ; private :_neighbor_event_date ; end')
624
+ assert_equal("1997-04-06T02:00:00-05:00", tz.send(:_neighbor_event_date, When.when?("19970510").universal_time).to_s)
625
+ assert_equal("1997-10-26T02:00:00-04:00", tz.send(:_neighbor_event_date, When.when?("19971010").universal_time).to_s)
616
626
  end
617
627
 
618
628
  def test__current_period
619
- When.Resource("examples/USA-DST.ics?!C=New_York&!Z=E&!D=04&!DZ=06&!S=05&!SZ=07")
629
+ When.Resource("examples/USA-DST.ics?C=New_York&Z=E&D=04&DZ=06&S=05&SZ=07")
620
630
  tz = When::V::Timezone["America/New_York"]
621
631
  assert_equal("1997-04-06T02:00:00-05:00...1997-10-26T02:00:00-04:00", tz.current_period(When.when?("19970510")).to_s)
622
632
  assert_equal("1997-04-06T02:00:00-05:00...1997-10-26T02:00:00-04:00", tz.current_period(When.when?("19971010")).to_s)
@@ -634,7 +644,7 @@ module Test:V
634
644
  class Event
635
645
 
636
646
  def test__each_1
637
- When.Resource("examples/USA-DST.ics?!C=New_York&!Z=E&!D=04&!DZ=06&!S=05&!SZ=07")
647
+ When.Resource("examples/USA-DST.ics?C=New_York&Z=E&D=04&DZ=06&S=05&SZ=07")
638
648
  cal = When.Resource("examples/Test.ics")
639
649
 
640
650
  event1 = When.Resource("examples/Test.ics::event1-ID")
@@ -667,7 +677,7 @@ module Test:V
667
677
  end
668
678
 
669
679
  def test__each_2
670
- When.Resource("examples/USA-DST.ics?!C=New_York&!Z=E&!D=04&!DZ=06&!S=05&!SZ=07")
680
+ When.Resource("examples/USA-DST.ics?C=New_York&Z=E&D=04&DZ=06&S=05&SZ=07")
671
681
  cal = When.Resource("examples/Test.ics")
672
682
 
673
683
  event2 = cal["event2-ID"]
@@ -690,7 +700,7 @@ module Test:V
690
700
  end
691
701
 
692
702
  def test__each_3
693
- When.Resource("examples/USA-DST.ics?!C=New_York&!Z=E&!D=04&!DZ=06&!S=05&!SZ=07")
703
+ When.Resource("examples/USA-DST.ics?C=New_York&Z=E&D=04&DZ=06&S=05&SZ=07")
694
704
  cal = When.Resource("examples/Test.ics")
695
705
 
696
706
  event3 = cal["event3-ID"]
@@ -760,7 +770,7 @@ module Test:V
760
770
  end
761
771
 
762
772
  def test__each_4
763
- When.Resource("examples/USA-DST.ics?!C=New_York&!Z=E&!D=04&!DZ=06&!S=05&!SZ=07")
773
+ When.Resource("examples/USA-DST.ics?C=New_York&Z=E&D=04&DZ=06&S=05&SZ=07")
764
774
  cal = When.Resource("examples/Test.ics")
765
775
 
766
776
  event4 = cal["event4-ID"]
data/test/test/inspect.rb CHANGED
@@ -19,8 +19,10 @@ module Test
19
19
  assert_equal(["月曜です 1%", "It is Monday 1%"],
20
20
  ['ja_JP', 'en_US'].map {|c| (form % [term1, term2, When::Coordinates::Pair.new(1,-2)]).translate(c)})
21
21
 
22
- assert_equal("2:", "%d:" % When::Coordinates::Pair.new(1,1))
23
- assert_equal("1=", When.m17n("%d:") % When::Coordinates::Pair.new(1,1))
22
+ pair11 = When::Coordinates::Pair.new(1,1)
23
+ assert_equal("2:", "%d:" % pair11)
24
+ assert_equal("2=", "%d=" % pair11)
25
+ assert_equal("1=", When.m17n("%d:") % pair11)
24
26
 
25
27
  date = When.when?('2011-02-28T12:34:56+09:00')
26
28
  assert_equal(["February", {""=>"February", "ja"=>"2月"}], [date.name(-1).to_s, date.name(-1).names])
@@ -70,7 +72,7 @@ module Test
70
72
  end
71
73
 
72
74
  def test__coordinates
73
- date = When.when?('2012.3=16T12:34:56', {:frame=>When::CalendarTypes::ChineseLuniSolar.new({'timezone'=>9})})
75
+ date = When.when?('2012.3=16T12:34:56', {:frame=>When::CalendarTypes::ChineseLuniSolar.new({'time_basis'=>'+09:00'})})
74
76
  assert_equal(2012, date.year )
75
77
  assert_equal(When::Coordinates::Pair.new(3,1), date.month)
76
78
  assert_equal( 16, date.day )
data/test/test/parts.rb CHANGED
@@ -124,14 +124,23 @@ LOCALE
124
124
 
125
125
  def test__prefix
126
126
  date = When.when?('0594-09=12^Japanese')
127
- assert_equal(["閏長月", String], [date.name('Month').label, date.name('Month').label.class])
127
+ assert_equal(["閏長月", When::BasicTypes::M17n], [date.name('Month').label.to_s, date.name('Month').label.class])
128
128
  assert_equal(["閏長月", String], [date.name('Month').to_s, date.name('Month').to_s.class])
129
129
  assert_equal("閏長月", date.name('Month').translate('日本語'))
130
130
  assert_equal("Intercalary 9th Month", date.name('Month').translate('en_US'))
131
131
  end
132
+
133
+ def test__split
134
+ assert_equal(['' ], When::Parts::Locale._split(''))
135
+ assert_equal(['3.14' ], When::Parts::Locale._split('3.14'))
136
+ assert_equal(['3.14', ''], When::Parts::Locale._split('3.14,'))
137
+ assert_equal(['', '3.14'], When::Parts::Locale._split(',3.14'))
138
+ assert_equal(['3.14', ' "3.14,159"'], When::Parts::Locale._split('3.14, "3.14,159"'))
139
+ assert_equal(['3.14', ' "3.14\\"159"'], When::Parts::Locale._split('3.14, "3.14\\"159"'))
140
+ end
132
141
  end
133
142
 
134
- class IRI < Test::Unit::TestCase
143
+ class Resource < Test::Unit::TestCase
135
144
  def test_nothing
136
145
  end
137
146
  end