simple_pvr 0.0.2 → 0.0.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.
- data/Gemfile.lock +16 -13
- data/README.md +10 -8
- data/bin/pvr_server +2 -2
- data/features/scheduling.feature +58 -1
- data/features/step_definitions/pvr_steps.rb +12 -0
- data/features/support/env.rb +1 -1
- data/lib/simple_pvr/hdhomerun.rb +1 -1
- data/lib/simple_pvr/model/programme.rb +8 -0
- data/lib/simple_pvr/model/schedule.rb +30 -7
- data/lib/simple_pvr/recording_planner.rb +62 -15
- data/lib/simple_pvr/scheduler.rb +2 -2
- data/lib/simple_pvr/server/base_controller.rb +6 -6
- data/lib/simple_pvr/server/config.ru +1 -1
- data/lib/simple_pvr/server/programmes_controller.rb +2 -2
- data/lib/simple_pvr/server/schedules_controller.rb +18 -0
- data/lib/simple_pvr/server/upcoming_recordings_controller.rb +1 -1
- data/lib/simple_pvr/version.rb +1 -1
- data/public/index.html +2 -4
- data/public/js/app.js +14 -74
- data/public/js/controllers.js +8 -2
- data/public/js/filters.js +101 -0
- data/public/partials/programme.html +1 -1
- data/public/partials/schedule.html +51 -11
- data/public/partials/schedules.html +1 -1
- data/public/templates/titleSearch.html +4 -0
- data/simple_pvr.gemspec +1 -0
- data/spec/simple_pvr/model/programme_spec.rb +11 -0
- data/spec/simple_pvr/model/schedule_spec.rb +33 -2
- data/spec/simple_pvr/recording_planner_spec.rb +118 -36
- data/spec/simple_pvr/scheduler_spec.rb +2 -2
- data/test/testacular.conf.js +1 -1
- data/test/unit/filtersSpec.js +44 -0
- metadata +22 -4
@@ -7,98 +7,180 @@ describe SimplePvr::RecordingPlanner do
|
|
7
7
|
@dr_1 = SimplePvr::Model::Channel.create(name: 'DR 1')
|
8
8
|
@dr_k = SimplePvr::Model::Channel.create(name: 'DR K')
|
9
9
|
@start_time_1, @start_time_2 = Time.local(2012, 7, 10, 20, 50), Time.local(2012, 7, 17, 20, 50)
|
10
|
-
@
|
10
|
+
@old_start_time = Time.local(2012, 8, 10, 20, 50)
|
11
11
|
@programme_duration = 60.minutes.to_i
|
12
12
|
|
13
13
|
@scheduler = double('Scheduler')
|
14
14
|
SimplePvr::PvrInitializer.stub(scheduler: @scheduler)
|
15
|
+
|
16
|
+
Time.stub!(now: Time.local(2012, 7, 9, 20, 50))
|
17
|
+
end
|
18
|
+
|
19
|
+
it 'cleans up outdated schedules' do
|
20
|
+
SimplePvr::Model::Schedule.should_receive(:cleanup)
|
21
|
+
@scheduler.should_receive(:recordings=).with([])
|
22
|
+
|
23
|
+
SimplePvr::RecordingPlanner.reload
|
15
24
|
end
|
16
25
|
|
17
26
|
it 'resets the recordings when no schedules exist' do
|
18
|
-
SimplePvr::Model::Programme.create(title:
|
19
|
-
SimplePvr::Model::Programme.create(title:
|
20
|
-
SimplePvr::Model::Programme.create(title:
|
21
|
-
SimplePvr::Model::Programme.create(title:
|
27
|
+
SimplePvr::Model::Programme.create(title: 'Borgias', channel: @dr_k, start_time: @start_time_1, duration: @programme_duration)
|
28
|
+
SimplePvr::Model::Programme.create(title: 'Borgias', channel: @dr_k, start_time: @start_time_2, duration: @programme_duration)
|
29
|
+
SimplePvr::Model::Programme.create(title: 'Borgias', channel: @dr_1, start_time: @start_time_2, duration: @programme_duration)
|
30
|
+
SimplePvr::Model::Programme.create(title: 'Borgias' + "-", channel: @dr_k, start_time: @start_time_2, duration: @programme_duration)
|
22
31
|
|
23
32
|
@scheduler.should_receive(:recordings=).with([])
|
24
33
|
|
25
|
-
SimplePvr::RecordingPlanner.
|
34
|
+
SimplePvr::RecordingPlanner.reload
|
26
35
|
end
|
27
36
|
|
28
37
|
it 'can set up schedules from channel and programme title' do
|
29
38
|
SimplePvr::Model::Schedule.create(type: :specification, title: 'Borgias', channel: @dr_k)
|
30
|
-
@programme_1 = SimplePvr::Model::Programme.create(title:
|
31
|
-
@programme_2 = SimplePvr::Model::Programme.create(title:
|
32
|
-
SimplePvr::Model::Programme.create(title:
|
33
|
-
SimplePvr::Model::Programme.create(title:
|
39
|
+
@programme_1 = SimplePvr::Model::Programme.create(title: 'Borgias', channel: @dr_k, start_time: @start_time_1, duration: @programme_duration)
|
40
|
+
@programme_2 = SimplePvr::Model::Programme.create(title: 'Borgias', channel: @dr_k, start_time: @start_time_2, duration: @programme_duration)
|
41
|
+
SimplePvr::Model::Programme.create(title: 'Borgias', channel: @dr_1, start_time: @start_time_2, duration: @programme_duration)
|
42
|
+
SimplePvr::Model::Programme.create(title: 'Irrelevant programme', channel: @dr_k, start_time: @start_time_2, duration: @programme_duration)
|
34
43
|
|
35
44
|
@scheduler.should_receive(:recordings=).with([
|
36
45
|
SimplePvr::Model::Recording.new(@dr_k, 'Borgias', Time.local(2012, 7, 10, 20, 48), 67.minutes, @programme_1),
|
37
46
|
SimplePvr::Model::Recording.new(@dr_k, 'Borgias', Time.local(2012, 7, 17, 20, 48), 67.minutes, @programme_2)
|
38
47
|
])
|
39
48
|
|
40
|
-
SimplePvr::RecordingPlanner.
|
49
|
+
SimplePvr::RecordingPlanner.reload
|
50
|
+
end
|
51
|
+
|
52
|
+
it 'takes the start early and end late minutes from schedule' do
|
53
|
+
SimplePvr::Model::Schedule.create(type: :specification, title: 'Borgias', channel: @dr_k, custom_start_early_minutes: 4, custom_end_late_minutes: 10)
|
54
|
+
@programme_1 = SimplePvr::Model::Programme.create(title: 'Borgias', channel: @dr_k, start_time: @start_time_1, duration: @programme_duration)
|
55
|
+
|
56
|
+
@scheduler.should_receive(:recordings=).with([
|
57
|
+
SimplePvr::Model::Recording.new(@dr_k, 'Borgias', Time.local(2012, 7, 10, 20, 46), 74.minutes, @programme_1),
|
58
|
+
])
|
59
|
+
|
60
|
+
SimplePvr::RecordingPlanner.reload
|
41
61
|
end
|
42
62
|
|
43
63
|
it 'can set up schedules from channel, programme title, and start time' do
|
44
64
|
SimplePvr::Model::Schedule.create(type: :specification, title: 'Borgias', channel: @dr_k, start_time: @start_time_2)
|
45
|
-
SimplePvr::Model::Programme.create(title:
|
46
|
-
@programme_to_be_recorded = SimplePvr::Model::Programme.create(title:
|
65
|
+
SimplePvr::Model::Programme.create(title: 'Borgias', channel:@dr_k, start_time: @start_time_1, duration: @programme_duration)
|
66
|
+
@programme_to_be_recorded = SimplePvr::Model::Programme.create(title: 'Borgias', channel:@dr_k, start_time: @start_time_2, duration: @programme_duration)
|
47
67
|
|
48
68
|
@scheduler.should_receive(:recordings=).with([
|
49
|
-
SimplePvr::Model::Recording.new(@dr_k,
|
69
|
+
SimplePvr::Model::Recording.new(@dr_k, 'Borgias', @start_time_2.advance(minutes: -2), 2.minutes + @programme_duration + 5.minutes, @programme_to_be_recorded)
|
50
70
|
])
|
51
71
|
|
52
|
-
SimplePvr::RecordingPlanner.
|
72
|
+
SimplePvr::RecordingPlanner.reload
|
53
73
|
end
|
54
74
|
|
55
75
|
it 'can set up schedules from programme title only' do
|
56
76
|
SimplePvr::Model::Schedule.create(type: :specification, title: 'Borgias')
|
57
|
-
@programme_1 = SimplePvr::Model::Programme.create(title:
|
58
|
-
@programme_2 = SimplePvr::Model::Programme.create(title:
|
59
|
-
SimplePvr::Model::Programme.create(title:
|
77
|
+
@programme_1 = SimplePvr::Model::Programme.create(title: 'Borgias', channel: @dr_1, start_time: @start_time_1, duration: @programme_duration)
|
78
|
+
@programme_2 = SimplePvr::Model::Programme.create(title: 'Borgias', channel: @dr_k, start_time: @start_time_2, duration: @programme_duration)
|
79
|
+
SimplePvr::Model::Programme.create(title: 'Irrelevant programme', channel: @dr_k, start_time: @start_time_2, duration: @programme_duration)
|
60
80
|
|
61
81
|
@scheduler.should_receive(:recordings=).with([
|
62
82
|
SimplePvr::Model::Recording.new(@dr_1, 'Borgias', Time.local(2012, 7, 10, 20, 48), 67.minutes, @programme_1),
|
63
83
|
SimplePvr::Model::Recording.new(@dr_k, 'Borgias', Time.local(2012, 7, 17, 20, 48), 67.minutes, @programme_2)
|
64
84
|
])
|
65
85
|
|
66
|
-
SimplePvr::RecordingPlanner.
|
86
|
+
SimplePvr::RecordingPlanner.reload
|
67
87
|
end
|
68
88
|
|
69
89
|
it 'can set up schedules for specific days of the week' do
|
70
90
|
@monday = Time.local(2012, 12, 10, 20, 50)
|
71
91
|
@tuesday, @wednesday, @thursday, @friday, @saturday, @sunday = @monday + 1.day, @monday + 2.days, @monday + 3.days, @monday + 4.days, @monday + 5.days, @monday + 6.days
|
72
|
-
@monday_programme = SimplePvr::Model::Programme.create(title:
|
73
|
-
@tuesday_programme = SimplePvr::Model::Programme.create(title:
|
74
|
-
@wednesday_programme = SimplePvr::Model::Programme.create(title:
|
75
|
-
@thursday_programme = SimplePvr::Model::Programme.create(title:
|
76
|
-
@friday_programme = SimplePvr::Model::Programme.create(title:
|
77
|
-
@saturday_programme = SimplePvr::Model::Programme.create(title:
|
78
|
-
@sunday_programme = SimplePvr::Model::Programme.create(title:
|
92
|
+
@monday_programme = SimplePvr::Model::Programme.create(title: 'Borgias', channel: @dr_1, start_time: @monday, duration: @programme_duration)
|
93
|
+
@tuesday_programme = SimplePvr::Model::Programme.create(title: 'Borgias', channel: @dr_1, start_time: @tuesday, duration: @programme_duration)
|
94
|
+
@wednesday_programme = SimplePvr::Model::Programme.create(title: 'Borgias', channel: @dr_1, start_time: @wednesday, duration: @programme_duration)
|
95
|
+
@thursday_programme = SimplePvr::Model::Programme.create(title: 'Borgias', channel: @dr_1, start_time: @thursday, duration: @programme_duration)
|
96
|
+
@friday_programme = SimplePvr::Model::Programme.create(title: 'Borgias', channel: @dr_1, start_time: @friday, duration: @programme_duration)
|
97
|
+
@saturday_programme = SimplePvr::Model::Programme.create(title: 'Borgias', channel: @dr_1, start_time: @saturday, duration: @programme_duration)
|
98
|
+
@sunday_programme = SimplePvr::Model::Programme.create(title: 'Borgias', channel: @dr_1, start_time: @sunday, duration: @programme_duration)
|
79
99
|
|
80
|
-
SimplePvr::Model::Schedule.create(type: :specification, title:
|
100
|
+
SimplePvr::Model::Schedule.create(type: :specification, title: 'Borgias', filter_by_weekday: true, monday: false, tuesday: true, wednesday: true, thursday: false, friday: false, saturday: true, sunday: true)
|
81
101
|
|
82
102
|
@scheduler.should_receive(:recordings=).with([
|
83
|
-
SimplePvr::Model::Recording.new(@dr_1,
|
84
|
-
SimplePvr::Model::Recording.new(@dr_1,
|
85
|
-
SimplePvr::Model::Recording.new(@dr_1,
|
86
|
-
SimplePvr::Model::Recording.new(@dr_1,
|
103
|
+
SimplePvr::Model::Recording.new(@dr_1, 'Borgias', @tuesday - 2.minutes, 67.minutes, @tuesday_programme),
|
104
|
+
SimplePvr::Model::Recording.new(@dr_1, 'Borgias', @wednesday - 2.minutes, 67.minutes, @wednesday_programme),
|
105
|
+
SimplePvr::Model::Recording.new(@dr_1, 'Borgias', @saturday - 2.minutes, 67.minutes, @saturday_programme),
|
106
|
+
SimplePvr::Model::Recording.new(@dr_1, 'Borgias', @sunday - 2.minutes, 67.minutes, @sunday_programme),
|
87
107
|
])
|
88
108
|
|
89
|
-
SimplePvr::RecordingPlanner.
|
109
|
+
SimplePvr::RecordingPlanner.reload
|
90
110
|
end
|
91
|
-
|
111
|
+
|
112
|
+
it 'can set up schedules for programmes starting before specific time of day' do
|
113
|
+
@early_programme = SimplePvr::Model::Programme.create(title: 'Borgias', channel: @dr_1, start_time: Time.local(2012, 12, 12, 9, 30), duration: @programme_duration)
|
114
|
+
@late_programme = SimplePvr::Model::Programme.create(title: 'Borgias', channel: @dr_1, start_time: Time.local(2012, 12, 12, 17, 0), duration: @programme_duration)
|
115
|
+
@too_late_programme = SimplePvr::Model::Programme.create(title: 'Borgias', channel: @dr_1, start_time: Time.local(2012, 12, 12, 17, 01), duration: @programme_duration)
|
116
|
+
|
117
|
+
SimplePvr::Model::Schedule.create(type: :specification, title: 'Borgias', filter_by_time_of_day: true, to_time_of_day: '17:00')
|
118
|
+
|
119
|
+
@scheduler.should_receive(:recordings=).with([
|
120
|
+
SimplePvr::Model::Recording.new(@dr_1, 'Borgias', @early_programme.start_time - 2.minutes, 67.minutes, @early_programme),
|
121
|
+
SimplePvr::Model::Recording.new(@dr_1, 'Borgias', @late_programme.start_time - 2.minutes, 67.minutes, @late_programme)
|
122
|
+
])
|
123
|
+
|
124
|
+
SimplePvr::RecordingPlanner.reload
|
125
|
+
end
|
126
|
+
|
127
|
+
it 'can set up schedules for programmes starting after a specific time of day' do
|
128
|
+
@too_early_programme = SimplePvr::Model::Programme.create(title: 'Borgias', channel: @dr_1, start_time: Time.local(2012, 12, 12, 16, 59), duration: @programme_duration)
|
129
|
+
@early_programme = SimplePvr::Model::Programme.create(title: 'Borgias', channel: @dr_1, start_time: Time.local(2012, 12, 12, 17, 0), duration: @programme_duration)
|
130
|
+
@late_programme = SimplePvr::Model::Programme.create(title: 'Borgias', channel: @dr_1, start_time: Time.local(2012, 12, 12, 19, 30), duration: @programme_duration)
|
131
|
+
|
132
|
+
SimplePvr::Model::Schedule.create(type: :specification, title: 'Borgias', filter_by_time_of_day: true, from_time_of_day: '17:00')
|
133
|
+
|
134
|
+
@scheduler.should_receive(:recordings=).with([
|
135
|
+
SimplePvr::Model::Recording.new(@dr_1, 'Borgias', @early_programme.start_time - 2.minutes, 67.minutes, @early_programme),
|
136
|
+
SimplePvr::Model::Recording.new(@dr_1, 'Borgias', @late_programme.start_time - 2.minutes, 67.minutes, @late_programme)
|
137
|
+
])
|
138
|
+
|
139
|
+
SimplePvr::RecordingPlanner.reload
|
140
|
+
end
|
141
|
+
|
142
|
+
it 'can set up schedules for programmes starting in certain interval during day' do
|
143
|
+
@too_early_programme = SimplePvr::Model::Programme.create(title: 'Borgias', channel: @dr_1, start_time: Time.local(2012, 12, 12, 16, 59), duration: @programme_duration)
|
144
|
+
@early_programme = SimplePvr::Model::Programme.create(title: 'Borgias', channel: @dr_1, start_time: Time.local(2012, 12, 12, 17, 0), duration: @programme_duration)
|
145
|
+
@late_programme = SimplePvr::Model::Programme.create(title: 'Borgias', channel: @dr_1, start_time: Time.local(2012, 12, 12, 19, 0), duration: @programme_duration)
|
146
|
+
@too_late_programme = SimplePvr::Model::Programme.create(title: 'Borgias', channel: @dr_1, start_time: Time.local(2012, 12, 12, 19, 1), duration: @programme_duration)
|
147
|
+
|
148
|
+
SimplePvr::Model::Schedule.create(type: :specification, title: 'Borgias', filter_by_time_of_day: true, from_time_of_day: '17:00', to_time_of_day: '19:00')
|
149
|
+
|
150
|
+
@scheduler.should_receive(:recordings=).with([
|
151
|
+
SimplePvr::Model::Recording.new(@dr_1, 'Borgias', @early_programme.start_time - 2.minutes, 67.minutes, @early_programme),
|
152
|
+
SimplePvr::Model::Recording.new(@dr_1, 'Borgias', @late_programme.start_time - 2.minutes, 67.minutes, @late_programme)
|
153
|
+
])
|
154
|
+
|
155
|
+
SimplePvr::RecordingPlanner.reload
|
156
|
+
end
|
157
|
+
|
158
|
+
it 'can set up schedules for programmes starting in certain intervals during day, stretching across midnight' do
|
159
|
+
@too_early_programme = SimplePvr::Model::Programme.create(title: 'Borgias', channel: @dr_1, start_time: Time.local(2012, 12, 12, 16, 59), duration: @programme_duration)
|
160
|
+
@early_programme = SimplePvr::Model::Programme.create(title: 'Borgias', channel: @dr_1, start_time: Time.local(2012, 12, 12, 17, 0), duration: @programme_duration)
|
161
|
+
@late_programme = SimplePvr::Model::Programme.create(title: 'Borgias', channel: @dr_1, start_time: Time.local(2012, 12, 13, 5, 0), duration: @programme_duration)
|
162
|
+
@too_late_programme = SimplePvr::Model::Programme.create(title: 'Borgias', channel: @dr_1, start_time: Time.local(2012, 12, 13, 5, 1), duration: @programme_duration)
|
163
|
+
|
164
|
+
SimplePvr::Model::Schedule.create(type: :specification, title: 'Borgias', filter_by_time_of_day: true, from_time_of_day: '17:00', to_time_of_day: '5:00')
|
165
|
+
|
166
|
+
@scheduler.should_receive(:recordings=).with([
|
167
|
+
SimplePvr::Model::Recording.new(@dr_1, 'Borgias', @early_programme.start_time - 2.minutes, 67.minutes, @early_programme),
|
168
|
+
SimplePvr::Model::Recording.new(@dr_1, 'Borgias', @late_programme.start_time - 2.minutes, 67.minutes, @late_programme)
|
169
|
+
])
|
170
|
+
|
171
|
+
SimplePvr::RecordingPlanner.reload
|
172
|
+
end
|
173
|
+
|
92
174
|
it 'ignores programmes for which exceptions exist' do
|
93
175
|
SimplePvr::Model::Schedule.create(type: :specification, title: 'Borgias')
|
94
176
|
SimplePvr::Model::Schedule.create(type: :exception, title: 'Borgias', channel: @dr_1, start_time: @start_time_1)
|
95
|
-
SimplePvr::Model::Programme.create(title:
|
96
|
-
@programme_to_be_recorded = SimplePvr::Model::Programme.create(title:
|
177
|
+
SimplePvr::Model::Programme.create(title: 'Borgias', channel: @dr_1, start_time: @start_time_1, duration: @programme_duration)
|
178
|
+
@programme_to_be_recorded = SimplePvr::Model::Programme.create(title: 'Borgias', channel: @dr_k, start_time: @start_time_2, duration: @programme_duration)
|
97
179
|
|
98
180
|
@scheduler.should_receive(:recordings=).with([
|
99
181
|
SimplePvr::Model::Recording.new(@dr_k, 'Borgias', Time.local(2012, 7, 17, 20, 48), 67.minutes, @programme_to_be_recorded)
|
100
182
|
])
|
101
183
|
|
102
|
-
SimplePvr::RecordingPlanner.
|
184
|
+
SimplePvr::RecordingPlanner.reload
|
103
185
|
end
|
104
186
|
end
|
@@ -124,8 +124,8 @@ describe SimplePvr::Scheduler do
|
|
124
124
|
unscheduled_programme = double(id: 3)
|
125
125
|
|
126
126
|
@scheduler.recordings = [SimplePvr::Model::Recording.new(@channel, 'Borgia', start_time, 60.minutes, scheduled_programme)]
|
127
|
-
@scheduler.
|
128
|
-
@scheduler.
|
127
|
+
@scheduler.scheduled?(scheduled_programme).should be_true
|
128
|
+
@scheduler.scheduled?(unscheduled_programme).should be_false
|
129
129
|
end
|
130
130
|
|
131
131
|
it 'gives idle status when nothing is recording' do
|
data/test/testacular.conf.js
CHANGED
data/test/unit/filtersSpec.js
CHANGED
@@ -94,4 +94,48 @@ describe('filters', function() {
|
|
94
94
|
expect(filteredWeekdaysFilter(scheduleWithSeveralWeekdayFilterings)).toEqual('(Mondays, Tuesdays, Wednesdays, Thursdays, Fridays, Saturdays, and Sundays)')
|
95
95
|
}));
|
96
96
|
});
|
97
|
+
|
98
|
+
describe('startEarlyEndLateFilter ', function() {
|
99
|
+
it('should be blank when there is no special start early or end late', inject(function(startEarlyEndLateFilter) {
|
100
|
+
var scheduleWithNoStartEarlyOrEndLate = { };
|
101
|
+
expect(startEarlyEndLateFilter(scheduleWithNoStartEarlyOrEndLate)).toEqual('');
|
102
|
+
}));
|
103
|
+
|
104
|
+
it('should inform about start early minutes', inject(function(startEarlyEndLateFilter) {
|
105
|
+
var scheduleWithStartEarly = { custom_start_early_minutes: 4 };
|
106
|
+
expect(startEarlyEndLateFilter(scheduleWithStartEarly)).toEqual('(starts 4 minutes early)');
|
107
|
+
}));
|
108
|
+
|
109
|
+
it('should inform about end late minutes', inject(function(startEarlyEndLateFilter) {
|
110
|
+
var scheduleWithEndLate = { custom_end_late_minutes: 9 };
|
111
|
+
expect(startEarlyEndLateFilter(scheduleWithEndLate)).toEqual('(ends 9 minutes late)');
|
112
|
+
}));
|
113
|
+
|
114
|
+
it('should inform about start early and end late minutes', inject(function(startEarlyEndLateFilter) {
|
115
|
+
var scheduleWithStartEarlyAndEndLate = { custom_start_early_minutes: 3, custom_end_late_minutes: 8 };
|
116
|
+
expect(startEarlyEndLateFilter(scheduleWithStartEarlyAndEndLate)).toEqual('(starts 3 minutes early, ends 8 minutes late)');
|
117
|
+
}));
|
118
|
+
});
|
119
|
+
|
120
|
+
describe('timeOfDayFilter ', function() {
|
121
|
+
it('should be blank when there is no filtering on time of day', inject(function(timeOfDayFilter) {
|
122
|
+
var scheduleWithNoFilteringOnTimeOfDay = { filter_by_time_of_day: false };
|
123
|
+
expect(timeOfDayFilter(scheduleWithNoFilteringOnTimeOfDay)).toEqual('');
|
124
|
+
}));
|
125
|
+
|
126
|
+
it('should inform about start time', inject(function(timeOfDayFilter) {
|
127
|
+
var scheduleWithStartTime = { filter_by_time_of_day: true, from_time_of_day: '19:00' };
|
128
|
+
expect(timeOfDayFilter(scheduleWithStartTime)).toEqual('(after 19:00)');
|
129
|
+
}));
|
130
|
+
|
131
|
+
it('should inform about end time', inject(function(timeOfDayFilter) {
|
132
|
+
var scheduleWithEndTime = { filter_by_time_of_day: true, to_time_of_day: '9:00' };
|
133
|
+
expect(timeOfDayFilter(scheduleWithEndTime)).toEqual('(before 9:00)');
|
134
|
+
}));
|
135
|
+
|
136
|
+
it('should inform about start and end time', inject(function(timeOfDayFilter) {
|
137
|
+
var scheduleWithStartAndEndTime = { filter_by_time_of_day: true, from_time_of_day: '19:00', to_time_of_day: '22:00' };
|
138
|
+
expect(timeOfDayFilter(scheduleWithStartAndEndTime)).toEqual('(between 19:00 and 22:00)');
|
139
|
+
}));
|
140
|
+
});
|
97
141
|
});
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: simple_pvr
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
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: 2013-03-
|
12
|
+
date: 2013-03-25 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activesupport
|
@@ -91,6 +91,22 @@ dependencies:
|
|
91
91
|
- - ~>
|
92
92
|
- !ruby/object:Gem::Version
|
93
93
|
version: '1.3'
|
94
|
+
- !ruby/object:Gem::Dependency
|
95
|
+
name: puma
|
96
|
+
requirement: !ruby/object:Gem::Requirement
|
97
|
+
none: false
|
98
|
+
requirements:
|
99
|
+
- - ~>
|
100
|
+
- !ruby/object:Gem::Version
|
101
|
+
version: '1.6'
|
102
|
+
type: :runtime
|
103
|
+
prerelease: false
|
104
|
+
version_requirements: !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
106
|
+
requirements:
|
107
|
+
- - ~>
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '1.6'
|
94
110
|
- !ruby/object:Gem::Dependency
|
95
111
|
name: rake
|
96
112
|
requirement: !ruby/object:Gem::Requirement
|
@@ -219,6 +235,7 @@ files:
|
|
219
235
|
- public/js/app.js
|
220
236
|
- public/js/bootstrap/bootstrap.min.js
|
221
237
|
- public/js/controllers.js
|
238
|
+
- public/js/filters.js
|
222
239
|
- public/js/services.js
|
223
240
|
- public/partials/about.html
|
224
241
|
- public/partials/channels.html
|
@@ -230,6 +247,7 @@ files:
|
|
230
247
|
- public/partials/show.html
|
231
248
|
- public/partials/shows.html
|
232
249
|
- public/partials/status.html
|
250
|
+
- public/templates/titleSearch.html
|
233
251
|
- simple_pvr.gemspec
|
234
252
|
- spec/resources/channels.txt
|
235
253
|
- spec/resources/programs-without-icon.xmltv
|
@@ -262,7 +280,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
262
280
|
version: '0'
|
263
281
|
segments:
|
264
282
|
- 0
|
265
|
-
hash:
|
283
|
+
hash: 1538549348411030486
|
266
284
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
267
285
|
none: false
|
268
286
|
requirements:
|
@@ -271,7 +289,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
271
289
|
version: '0'
|
272
290
|
segments:
|
273
291
|
- 0
|
274
|
-
hash:
|
292
|
+
hash: 1538549348411030486
|
275
293
|
requirements: []
|
276
294
|
rubyforge_project:
|
277
295
|
rubygems_version: 1.8.24
|