reservation 0.0.5 → 0.0.6
Sign up to get free protection for your applications and to get access to all the features.
data/lib/reservation/interval.rb
CHANGED
data/lib/reservation/version.rb
CHANGED
data/lib/reservation/weekly.rb
CHANGED
@@ -30,11 +30,18 @@ module Reservation
|
|
30
30
|
|
31
31
|
patterns.each { |pattern|
|
32
32
|
day = pattern["day"]
|
33
|
+
dayno = (day =~ /\d+/) ? day.to_i : DAY_MAP[day]
|
34
|
+
|
33
35
|
nth_of_month = parse_nth_of_month pattern["nth_of_month"]
|
34
36
|
|
35
|
-
|
36
|
-
|
37
|
-
|
37
|
+
if pattern["intervals"]
|
38
|
+
intervals = Interval.parse(pattern["intervals"])
|
39
|
+
self.wdays.concat intervals.map { |i| Daily.new(dayno, nth_of_month, i) }
|
40
|
+
else
|
41
|
+
start = HourMinute.parse pattern["start"]
|
42
|
+
finish = HourMinute.parse pattern["finish"]
|
43
|
+
self.wdays << Daily.new(dayno, nth_of_month, Interval.new(start, finish))
|
44
|
+
end
|
38
45
|
}
|
39
46
|
end
|
40
47
|
|
@@ -34,4 +34,12 @@ describe Reservation::Schedule::Interval do
|
|
34
34
|
event.start.pretty.should == "20130712T1830"
|
35
35
|
event.finish.pretty.should == "20130712T2300"
|
36
36
|
end
|
37
|
+
|
38
|
+
it "should parse a text list of intervals" do
|
39
|
+
intervals = Reservation::Schedule::Interval.parse "9h-12, 12h30-13:30 , 14-17.30"
|
40
|
+
intervals[0].to_s.should == "0900-1200"
|
41
|
+
intervals[1].to_s.should == "1230-1330"
|
42
|
+
intervals[2].to_s.should == "1400-1730"
|
43
|
+
intervals.size.should == 3
|
44
|
+
end
|
37
45
|
end
|
@@ -28,6 +28,24 @@ describe Reservation::Schedule::Weekly do
|
|
28
28
|
weekly.matches?(event).should be_true
|
29
29
|
end
|
30
30
|
|
31
|
+
it "should match when there exists a matching interval on the same day as the given event and the day is given as numeric" do
|
32
|
+
weekly = Reservation::Schedule::Weekly.new [ { "day" => "3", "start" => "0930", "finish" => "10:30"},
|
33
|
+
{ "day" => "3", "start" => "18", "finish" => "20" },
|
34
|
+
{ "day" => "5", "start" => "7h", "finish" => "9:30" },
|
35
|
+
{ "day" => "2", "start" => "7", "finish" => "8h30" } ]
|
36
|
+
|
37
|
+
weekly.matches?(event).should be_true
|
38
|
+
end
|
39
|
+
|
40
|
+
it "should match when there exists a matching interval on the same day as the given event and the day is given as numeric and intervals as a list" do
|
41
|
+
weekly = Reservation::Schedule::Weekly.new [ { "day" => "3", "intervals" => "7-830, 9h00-12:30,13-1730" },
|
42
|
+
{ "day" => "3", "intervals" => "7-830, 9h00-12:30,13-1730" },
|
43
|
+
{ "day" => "5", "intervals" => "9h00-12:30,7-930,13-1730 " },
|
44
|
+
{ "day" => "2", "intervals" => "7-830, 9h00-12:30,13-1730" } ]
|
45
|
+
|
46
|
+
weekly.matches?(event).should be_true
|
47
|
+
end
|
48
|
+
|
31
49
|
it "should not match when there exists no matching interval on the same day as the given event" do
|
32
50
|
weekly = Reservation::Schedule::Weekly.new [ { "day" => "wed", "start" => "0930", "finish" => "10:30"},
|
33
51
|
{ "day" => "wed", "start" => "18", "finish" => "20" },
|
@@ -37,6 +55,15 @@ describe Reservation::Schedule::Weekly do
|
|
37
55
|
weekly.matches?(event).should be_false
|
38
56
|
end
|
39
57
|
|
58
|
+
it "should not match when there exists a matching interval on the same day as the given event and the day is given as numeric and intervals as a list" do
|
59
|
+
weekly = Reservation::Schedule::Weekly.new [ { "day" => "3", "intervals" => "7-830, 9h00-12:30,13-1730" },
|
60
|
+
{ "day" => "3", "intervals" => "7-830, 9h00-12:30,13-1730" },
|
61
|
+
{ "day" => "5", "intervals" => "9h00-12:30,7-1130,13-1730 " },
|
62
|
+
{ "day" => "2", "intervals" => "7-830, 9h00-12:30,13-1730" } ]
|
63
|
+
|
64
|
+
weekly.matches?(event).should be_false
|
65
|
+
end
|
66
|
+
|
40
67
|
it "should generate events corresponding to the weekly schedule" do
|
41
68
|
weekly = Reservation::Schedule::Weekly.new [ { "day" => "wed", "start" => "0930", "finish" => "10:30"},
|
42
69
|
{ "day" => "wed", "start" => "18", "finish" => "20" },
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: reservation
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.6
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-01-
|
12
|
+
date: 2014-01-29 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|