chronic 0.1.5 → 0.6.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 (68) hide show
  1. data/.gemtest +0 -0
  2. data/.gitignore +5 -0
  3. data/.yardopts +3 -0
  4. data/HISTORY.md +180 -0
  5. data/LICENSE +21 -0
  6. data/README.md +176 -0
  7. data/Rakefile +39 -32
  8. data/chronic.gemspec +17 -0
  9. data/lib/chronic/chronic.rb +294 -208
  10. data/lib/chronic/grabber.rb +22 -17
  11. data/lib/chronic/handler.rb +90 -0
  12. data/lib/chronic/handlers.rb +365 -278
  13. data/lib/chronic/mini_date.rb +38 -0
  14. data/lib/chronic/numerizer.rb +121 -0
  15. data/lib/chronic/ordinal.rb +23 -19
  16. data/lib/chronic/pointer.rb +20 -17
  17. data/lib/chronic/repeater.rb +126 -105
  18. data/lib/chronic/repeaters/repeater_day.rb +49 -43
  19. data/lib/chronic/repeaters/repeater_day_name.rb +48 -42
  20. data/lib/chronic/repeaters/repeater_day_portion.rb +81 -80
  21. data/lib/chronic/repeaters/repeater_fortnight.rb +59 -53
  22. data/lib/chronic/repeaters/repeater_hour.rb +49 -43
  23. data/lib/chronic/repeaters/repeater_minute.rb +55 -39
  24. data/lib/chronic/repeaters/repeater_month.rb +77 -55
  25. data/lib/chronic/repeaters/repeater_month_name.rb +83 -82
  26. data/lib/chronic/repeaters/repeater_season.rb +107 -21
  27. data/lib/chronic/repeaters/repeater_season_name.rb +41 -22
  28. data/lib/chronic/repeaters/repeater_second.rb +39 -33
  29. data/lib/chronic/repeaters/repeater_time.rb +117 -103
  30. data/lib/chronic/repeaters/repeater_week.rb +63 -57
  31. data/lib/chronic/repeaters/repeater_weekday.rb +85 -0
  32. data/lib/chronic/repeaters/repeater_weekend.rb +64 -9
  33. data/lib/chronic/repeaters/repeater_year.rb +70 -51
  34. data/lib/chronic/scalar.rb +64 -29
  35. data/lib/chronic/season.rb +37 -0
  36. data/lib/chronic/separator.rb +50 -38
  37. data/lib/chronic/span.rb +31 -0
  38. data/lib/chronic/tag.rb +42 -0
  39. data/lib/chronic/time_zone.rb +30 -0
  40. data/lib/chronic/token.rb +45 -0
  41. data/lib/chronic.rb +86 -22
  42. data/test/helper.rb +6 -0
  43. data/test/test_Chronic.rb +118 -20
  44. data/test/test_DaylightSavings.rb +118 -0
  45. data/test/test_Handler.rb +36 -42
  46. data/test/test_MiniDate.rb +32 -0
  47. data/test/test_Numerizer.rb +72 -0
  48. data/test/test_RepeaterDayName.rb +15 -16
  49. data/test/test_RepeaterFortnight.rb +16 -17
  50. data/test/test_RepeaterHour.rb +22 -19
  51. data/test/test_RepeaterMinute.rb +34 -0
  52. data/test/test_RepeaterMonth.rb +20 -17
  53. data/test/test_RepeaterMonthName.rb +17 -18
  54. data/test/test_RepeaterSeason.rb +40 -0
  55. data/test/test_RepeaterTime.rb +20 -22
  56. data/test/test_RepeaterWeek.rb +16 -17
  57. data/test/test_RepeaterWeekday.rb +55 -0
  58. data/test/test_RepeaterWeekend.rb +74 -0
  59. data/test/test_RepeaterYear.rb +24 -18
  60. data/test/test_Span.rb +5 -6
  61. data/test/test_Token.rb +5 -6
  62. data/test/test_parsing.rb +743 -338
  63. metadata +81 -54
  64. data/History.txt +0 -29
  65. data/Manifest.txt +0 -43
  66. data/README.txt +0 -149
  67. data/test/parse_numbers.rb +0 -50
  68. data/test/suite.rb +0 -9
@@ -1,8 +1,7 @@
1
- require 'chronic'
2
- require 'test/unit'
1
+ require 'helper'
3
2
 
4
3
  class TestRepeaterYear < Test::Unit::TestCase
5
-
4
+
6
5
  def setup
7
6
  @now = Time.local(2006, 8, 16, 14, 0, 0, 0)
8
7
  end
@@ -10,54 +9,61 @@ class TestRepeaterYear < Test::Unit::TestCase
10
9
  def test_next_future
11
10
  years = Chronic::RepeaterYear.new(:year)
12
11
  years.start = @now
13
-
12
+
14
13
  next_year = years.next(:future)
15
14
  assert_equal Time.local(2007, 1, 1), next_year.begin
16
15
  assert_equal Time.local(2008, 1, 1), next_year.end
17
-
16
+
18
17
  next_next_year = years.next(:future)
19
18
  assert_equal Time.local(2008, 1, 1), next_next_year.begin
20
19
  assert_equal Time.local(2009, 1, 1), next_next_year.end
21
20
  end
22
-
21
+
23
22
  def test_next_past
24
23
  years = Chronic::RepeaterYear.new(:year)
25
24
  years.start = @now
26
-
25
+
27
26
  last_year = years.next(:past)
28
27
  assert_equal Time.local(2005, 1, 1), last_year.begin
29
28
  assert_equal Time.local(2006, 1, 1), last_year.end
30
-
29
+
31
30
  last_last_year = years.next(:past)
32
31
  assert_equal Time.local(2004, 1, 1), last_last_year.begin
33
32
  assert_equal Time.local(2005, 1, 1), last_last_year.end
34
33
  end
35
-
34
+
36
35
  def test_this
37
36
  years = Chronic::RepeaterYear.new(:year)
38
37
  years.start = @now
39
-
38
+
40
39
  this_year = years.this(:future)
41
40
  assert_equal Time.local(2006, 8, 17), this_year.begin
42
41
  assert_equal Time.local(2007, 1, 1), this_year.end
43
-
42
+
44
43
  this_year = years.this(:past)
45
44
  assert_equal Time.local(2006, 1, 1), this_year.begin
46
45
  assert_equal Time.local(2006, 8, 16), this_year.end
47
46
  end
48
-
47
+
49
48
  def test_offset
50
49
  span = Chronic::Span.new(@now, @now + 1)
51
-
50
+
52
51
  offset_span = Chronic::RepeaterYear.new(:year).offset(span, 3, :future)
53
-
52
+
54
53
  assert_equal Time.local(2009, 8, 16, 14), offset_span.begin
55
54
  assert_equal Time.local(2009, 8, 16, 14, 0, 1), offset_span.end
56
-
55
+
57
56
  offset_span = Chronic::RepeaterYear.new(:year).offset(span, 10, :past)
58
-
57
+
59
58
  assert_equal Time.local(1996, 8, 16, 14), offset_span.begin
60
59
  assert_equal Time.local(1996, 8, 16, 14, 0, 1), offset_span.end
60
+
61
+ now = Time.local(2008, 2, 29)
62
+ span = Chronic::Span.new(now, now + 1)
63
+ offset_span = Chronic::RepeaterYear.new(:year).offset(span, 1, :past)
64
+
65
+ assert_equal Time.local(2007, 2, 28), offset_span.begin
66
+ assert_equal Time.local(2007, 2, 28, 0, 0, 1), offset_span.end
61
67
  end
62
-
63
- end
68
+
69
+ end
data/test/test_Span.rb CHANGED
@@ -1,8 +1,7 @@
1
- require 'chronic'
2
- require 'test/unit'
1
+ require 'helper'
3
2
 
4
3
  class TestSpan < Test::Unit::TestCase
5
-
4
+
6
5
  def setup
7
6
  # Wed Aug 16 14:00:00 UTC 2006
8
7
  @now = Time.local(2006, 8, 16, 14, 0, 0, 0)
@@ -12,7 +11,7 @@ class TestSpan < Test::Unit::TestCase
12
11
  span = Chronic::Span.new(Time.local(2006, 8, 16, 0), Time.local(2006, 8, 17, 0))
13
12
  assert_equal (60 * 60 * 24), span.width
14
13
  end
15
-
14
+
16
15
  def test_span_math
17
16
  s = Chronic::Span.new(1, 2)
18
17
  assert_equal 2, (s + 1).begin
@@ -20,5 +19,5 @@ class TestSpan < Test::Unit::TestCase
20
19
  assert_equal 0, (s - 1).begin
21
20
  assert_equal 1, (s - 1).end
22
21
  end
23
-
24
- end
22
+
23
+ end
data/test/test_Token.rb CHANGED
@@ -1,13 +1,12 @@
1
- require 'chronic'
2
- require 'test/unit'
1
+ require 'helper'
3
2
 
4
3
  class TestToken < Test::Unit::TestCase
5
-
4
+
6
5
  def setup
7
6
  # Wed Aug 16 14:00:00 UTC 2006
8
7
  @now = Time.local(2006, 8, 16, 14, 0, 0, 0)
9
8
  end
10
-
9
+
11
10
  def test_token
12
11
  token = Chronic::Token.new('foo')
13
12
  assert_equal 0, token.tags.size
@@ -22,5 +21,5 @@ class TestToken < Test::Unit::TestCase
22
21
  assert_equal 1, token.tags.size
23
22
  assert_equal 'foo', token.word
24
23
  end
25
-
26
- end
24
+
25
+ end