chronic_between 0.2.2 → 0.2.3

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