chronic_between 0.2.2 → 0.2.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 (2) hide show
  1. data/lib/chronic_between.rb +49 -56
  2. metadata +2 -2
@@ -7,79 +7,72 @@ require 'date'
7
7
  require 'app-routes'
8
8
 
9
9
  class ChronicBetween
10
-
11
- def initialize(s)
10
+ include AppRoutes
11
+
12
+ def initialize(s)
12
13
  @s = s
14
+ @route = {}; @params = {}
13
15
  end
14
16
 
15
17
  def within?(date)
16
18
 
17
- params = {}; @date_ranges = []
18
- @app = AppRoutes.new(params)
19
+ dates = []
19
20
 
20
- set_ranges(params, date)
21
- @s.split(',').each {|x| @app.run(x.strip)}
22
- @date_ranges.any? {|d1, d2| date.between? d1, d2}
21
+ ranges(@params, date)
22
+ dates = @s.split(',').map {|x| run_route(x.strip)}
23
+ dates.any? {|d1, d2| date.between? d1, d2}
24
+
23
25
  end
24
26
 
25
27
  private
26
28
 
27
- def set_ranges(params, date)
28
-
29
- @app.routes do
30
-
31
- # e.g. Mon-Fri 9:00-16:30
32
- get %r{(\w+)-(\w+)\s+(\d+:\d+)-(\d+:\d+)$} do
33
-
34
- d1, d2, t1, t2 = params[:captures]
35
- cdate1, cdate2 = [d1,d2].map {|d| Chronic.parse(d)}
36
- n_days = (cdate2 - cdate1) / 86400
37
-
38
- 0.upto(n_days.to_i).each do |n|
39
- x = (cdate1.to_date + n).strftime("%d-%b-%y ")
40
- @date_ranges << [DateTime.parse(x + t1), DateTime.parse(x + t2)]
41
- end
42
-
43
- end
29
+ def ranges(params, date)
44
30
 
45
- # e.g. Saturday
46
- get %r{^(\w+)$} do
47
- day = params[:captures].first
48
- cdate = Chronic.parse(day, :now => (date - 1))
49
- d1 = DateTime.parse(cdate.strftime("%d-%b-%y") + ' 00:00')
50
- d2 = d1 + 1
51
- @date_ranges << [d1, d2]
52
- end
31
+ # e.g. Mon-Fri 9:00-16:30
32
+ get %r{(\w+)-(\w+)\s+(\d+:\d+)-(\d+:\d+)$} do
33
+
34
+ d1, d2, t1, t2 = params[:captures]
35
+ cdate1, cdate2 = [d1,d2].map {|d| Chronic.parse(d)}
36
+ n_days = (cdate2 - cdate1) / 86400
37
+
38
+ 0.upto(n_days.to_i).map do |n|
39
+ x = (cdate1.to_date + n).strftime("%d-%b-%y ")
40
+ [DateTime.parse(x + t1), DateTime.parse(x + t2)]
41
+ end
42
+ end
53
43
 
54
- # e.g. 3:45-5:15
55
- get %r{^(\d+:\d+)-(\d+:\d+)$} do
56
- t1, t2 = params[:captures]
57
- @date_ranges << [t1,t2].map {|t| DateTime.parse(t)}
58
- end
44
+ # e.g. Saturday
45
+ get %r{^(\w+)$} do
46
+ day = params[:captures].first
47
+ cdate = Chronic.parse(day, :now => (date - 1))
48
+ d1 = DateTime.parse(cdate.strftime("%d-%b-%y") + ' 00:00')
49
+ d2 = d1 + 1
50
+ [d1, d2]
51
+ end
59
52
 
60
- # e.g. Mon 3:45-5:15
61
- get %r{^(\w+)\s+(\d+:\d+)-(\d+:\d+)$} do
62
- d, t1, t2 = params[:captures]
63
- x = Chronic.parse(d, :now => (date - 1)).strftime("%d-%b-%y ")
64
- @date_ranges << [DateTime.parse(x + t1), DateTime.parse(x + t2)]
65
- end
53
+ # e.g. 3:45-5:15
54
+ get %r{^(\d+:\d+)-(\d+:\d+)$} do
55
+ t1, t2 = params[:captures]
56
+ [t1,t2].map {|t| DateTime.parse(t)}
57
+ end
66
58
 
67
- # e.g. Mon-Wed
68
- get %r{^(\w+)-(\w+)$} do
69
- d1, d2 = params[:captures]
70
- cdate1, cdate2 = [d1,d2].map {|d| Chronic.parse(d)}
71
- n_days = (cdate2 - cdate1) / 86400
72
-
73
- date = DateTime.parse(cdate1.strftime("%d-%b-%y") + ' 00:00')
74
- @date_ranges << [date, date + n_days.to_i]
75
- end
59
+ # e.g. Mon 3:45-5:15
60
+ get %r{^(\w+)\s+(\d+:\d+)-(\d+:\d+)$} do
61
+ d, t1, t2 = params[:captures]
62
+ x = Chronic.parse(d, :now => (date - 1)).strftime("%d-%b-%y ")
63
+ [DateTime.parse(x + t1), DateTime.parse(x + t2)]
64
+ end
76
65
 
66
+ # e.g. Mon-Wed
67
+ get %r{^(\w+)-(\w+)$} do
68
+ d1, d2 = params[:captures]
69
+ cdate1, cdate2 = [d1,d2].map {|d| Chronic.parse(d)}
70
+ n_days = (cdate2 - cdate1) / 86400
71
+
72
+ date = DateTime.parse(cdate1.strftime("%d-%b-%y") + ' 00:00')
73
+ [date, date + n_days.to_i]
77
74
  end
78
75
 
79
76
  end
80
-
81
- def get(arg,&block)
82
- @app.get(arg, &block)
83
- end
84
77
 
85
78
  end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: chronic_between
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.2.2
5
+ version: 0.2.3
6
6
  platform: ruby
7
7
  authors: []
8
8
 
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-03-28 00:00:00 +01:00
13
+ date: 2011-03-30 00:00:00 +01:00
14
14
  default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency