simple_pvr 0.0.1

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 (102) hide show
  1. data/.rspec +1 -0
  2. data/Gemfile +4 -0
  3. data/Gemfile.lock +133 -0
  4. data/LICENSE.txt +13 -0
  5. data/README.md +169 -0
  6. data/Rakefile +16 -0
  7. data/bin/pvr_server +10 -0
  8. data/bin/pvr_xmltv +18 -0
  9. data/features/channel_overview.feature +48 -0
  10. data/features/programme_search.feature +20 -0
  11. data/features/scheduling.feature +112 -0
  12. data/features/step_definitions/pvr_steps.rb +104 -0
  13. data/features/step_definitions/web_steps.rb +219 -0
  14. data/features/support/env.rb +28 -0
  15. data/features/support/paths.rb +17 -0
  16. data/features/week_overview.feature +39 -0
  17. data/lib/simple_pvr/ffmpeg.rb +22 -0
  18. data/lib/simple_pvr/hdhomerun.rb +103 -0
  19. data/lib/simple_pvr/hdhomerun_save.sh +10 -0
  20. data/lib/simple_pvr/model/channel.rb +72 -0
  21. data/lib/simple_pvr/model/database_initializer.rb +36 -0
  22. data/lib/simple_pvr/model/programme.rb +58 -0
  23. data/lib/simple_pvr/model/recording.rb +45 -0
  24. data/lib/simple_pvr/model/schedule.rb +33 -0
  25. data/lib/simple_pvr/pvr_initializer.rb +47 -0
  26. data/lib/simple_pvr/pvr_logger.rb +14 -0
  27. data/lib/simple_pvr/recorder.rb +25 -0
  28. data/lib/simple_pvr/recording_manager.rb +101 -0
  29. data/lib/simple_pvr/recording_planner.rb +72 -0
  30. data/lib/simple_pvr/scheduler.rb +124 -0
  31. data/lib/simple_pvr/server/app_controller.rb +13 -0
  32. data/lib/simple_pvr/server/base_controller.rb +94 -0
  33. data/lib/simple_pvr/server/channels_controller.rb +68 -0
  34. data/lib/simple_pvr/server/config.ru +8 -0
  35. data/lib/simple_pvr/server/programmes_controller.rb +46 -0
  36. data/lib/simple_pvr/server/rack_maps.rb +7 -0
  37. data/lib/simple_pvr/server/schedules_controller.rb +71 -0
  38. data/lib/simple_pvr/server/shows_controller.rb +63 -0
  39. data/lib/simple_pvr/server/status_controller.rb +11 -0
  40. data/lib/simple_pvr/server/upcoming_recordings_controller.rb +18 -0
  41. data/lib/simple_pvr/version.rb +3 -0
  42. data/lib/simple_pvr/xmltv_reader.rb +83 -0
  43. data/lib/simple_pvr.rb +22 -0
  44. data/public/css/bootstrap-responsive.min.css +9 -0
  45. data/public/css/bootstrap.min.css +9 -0
  46. data/public/css/simplepvr.css +11 -0
  47. data/public/img/glyphicons-halflings-white.png +0 -0
  48. data/public/img/glyphicons-halflings.png +0 -0
  49. data/public/index.html +55 -0
  50. data/public/js/angular/angular-resource.min.js +10 -0
  51. data/public/js/angular/angular.min.js +157 -0
  52. data/public/js/app.js +145 -0
  53. data/public/js/bootstrap/bootstrap.min.js +6 -0
  54. data/public/js/controllers.js +156 -0
  55. data/public/js/services.js +27 -0
  56. data/public/partials/about.html +5 -0
  57. data/public/partials/channels.html +41 -0
  58. data/public/partials/programme.html +20 -0
  59. data/public/partials/programmeListing.html +18 -0
  60. data/public/partials/schedule.html +80 -0
  61. data/public/partials/schedules.html +44 -0
  62. data/public/partials/search.html +17 -0
  63. data/public/partials/show.html +21 -0
  64. data/public/partials/shows.html +7 -0
  65. data/public/partials/status.html +6 -0
  66. data/simple_pvr.gemspec +30 -0
  67. data/spec/resources/channels.txt +11 -0
  68. data/spec/resources/programs-without-icon.xmltv +95 -0
  69. data/spec/resources/programs.xmltv +98 -0
  70. data/spec/simple_pvr/ffmpeg_spec.rb +26 -0
  71. data/spec/simple_pvr/hdhomerun_spec.rb +82 -0
  72. data/spec/simple_pvr/model/channel_spec.rb +114 -0
  73. data/spec/simple_pvr/model/programme_spec.rb +110 -0
  74. data/spec/simple_pvr/model/schedule_spec.rb +47 -0
  75. data/spec/simple_pvr/pvr_initializer_spec.rb +50 -0
  76. data/spec/simple_pvr/recorder_spec.rb +32 -0
  77. data/spec/simple_pvr/recording_manager_spec.rb +158 -0
  78. data/spec/simple_pvr/recording_planner_spec.rb +104 -0
  79. data/spec/simple_pvr/scheduler_spec.rb +201 -0
  80. data/spec/simple_pvr/xmltv_reader_spec.rb +49 -0
  81. data/test/config/jsTestDriver-scenario.conf +10 -0
  82. data/test/config/jsTestDriver.conf +12 -0
  83. data/test/config/jstd-scenario-adapter-config.js +6 -0
  84. data/test/filtersSpec.js +97 -0
  85. data/test/lib/angular/angular-mocks.js +1719 -0
  86. data/test/lib/angular/angular-scenario.js +25937 -0
  87. data/test/lib/angular/jstd-scenario-adapter.js +185 -0
  88. data/test/lib/angular/version.txt +1 -0
  89. data/test/lib/jasmine/MIT.LICENSE +20 -0
  90. data/test/lib/jasmine/index.js +180 -0
  91. data/test/lib/jasmine/jasmine-html.js +190 -0
  92. data/test/lib/jasmine/jasmine.css +166 -0
  93. data/test/lib/jasmine/jasmine.js +2476 -0
  94. data/test/lib/jasmine/jasmine_favicon.png +0 -0
  95. data/test/lib/jasmine/version.txt +1 -0
  96. data/test/lib/jasmine-jstd-adapter/JasmineAdapter.js +196 -0
  97. data/test/lib/jasmine-jstd-adapter/version.txt +1 -0
  98. data/test/lib/jstestdriver/JsTestDriver.jar +0 -0
  99. data/test/lib/jstestdriver/version.txt +1 -0
  100. data/test/scripts/test-server.sh +14 -0
  101. data/test/scripts/test.sh +8 -0
  102. metadata +342 -0
@@ -0,0 +1 @@
1
+ 1.1.0
@@ -0,0 +1,196 @@
1
+ /**
2
+ * @fileoverview Jasmine JsTestDriver Adapter.
3
+ * @author misko@hevery.com (Misko Hevery)
4
+ */
5
+ (function(window) {
6
+ var rootDescribes = new Describes(window);
7
+ rootDescribes.collectMode();
8
+
9
+ var JASMINE_TYPE = 'jasmine test case';
10
+ TestCase('Jasmine Adapter Tests', null, JASMINE_TYPE);
11
+
12
+ var jasminePlugin = {
13
+ name:'jasmine',
14
+
15
+ getTestRunsConfigurationFor: function(testCaseInfos, expressions, testRunsConfiguration) {
16
+ for (var i = 0; i < testCaseInfos.length; i++) {
17
+ if (testCaseInfos[i].getType() == JASMINE_TYPE) {
18
+ testRunsConfiguration.push(new jstestdriver.TestRunConfiguration(testCaseInfos[i], []));
19
+ }
20
+ }
21
+ return false;
22
+ },
23
+
24
+ runTestConfiguration: function(testRunConfiguration, onTestDone, onTestRunConfigurationComplete) {
25
+ if (testRunConfiguration.getTestCaseInfo().getType() != JASMINE_TYPE) return false;
26
+
27
+ var jasmineEnv = jasmine.currentEnv_ = new jasmine.Env();
28
+ rootDescribes.playback();
29
+ var specLog = jstestdriver.console.log_ = [];
30
+ var start;
31
+ jasmineEnv.specFilter = function(spec) {
32
+ return rootDescribes.isExclusive(spec);
33
+ };
34
+ jasmineEnv.reporter = {
35
+ log: function(str) {
36
+ specLog.push(str);
37
+ },
38
+
39
+ reportRunnerStarting: function(runner) { },
40
+
41
+ reportSpecStarting: function(spec) {
42
+ specLog = jstestdriver.console.log_ = [];
43
+ start = new Date().getTime();
44
+ },
45
+
46
+ reportSpecResults: function(spec) {
47
+ var suite = spec.suite;
48
+ var results = spec.results();
49
+ if (results.skipped) return;
50
+ var end = new Date().getTime();
51
+ var messages = [];
52
+ var resultItems = results.getItems();
53
+ var state = 'passed';
54
+ for ( var i = 0; i < resultItems.length; i++) {
55
+ if (!resultItems[i].passed()) {
56
+ state = resultItems[i].message.match(/AssertionError:/) ? 'error' : 'failed';
57
+ messages.push({
58
+ message: resultItems[i].toString(),
59
+ name: resultItems[i].trace.name,
60
+ stack: formatStack(resultItems[i].trace.stack)
61
+ });
62
+ }
63
+ }
64
+ onTestDone(
65
+ new jstestdriver.TestResult(
66
+ suite.getFullName(),
67
+ spec.description,
68
+ state,
69
+ jstestdriver.angular.toJson(messages),
70
+ specLog.join('\n'),
71
+ end - start));
72
+ },
73
+
74
+ reportSuiteResults: function(suite) {},
75
+
76
+ reportRunnerResults: function(runner) {
77
+ onTestRunConfigurationComplete();
78
+ }
79
+ };
80
+ jasmineEnv.execute();
81
+ return true;
82
+ },
83
+
84
+ onTestsFinish: function() {
85
+ jasmine.currentEnv_ = null;
86
+ rootDescribes.collectMode();
87
+ }
88
+ };
89
+ jstestdriver.pluginRegistrar.register(jasminePlugin);
90
+
91
+ function formatStack(stack) {
92
+ var lines = (stack||'').split(/\r?\n/);
93
+ var frames = [];
94
+ for (var i = 0; i < lines.length; i++) {
95
+ if (!lines[i].match(/\/jasmine[\.-]/)) {
96
+ frames.push(lines[i].replace(/https?:\/\/\w+(:\d+)?\/test\//, '').replace(/^\s*/, ' '));
97
+ }
98
+ }
99
+ return frames.join('\n');
100
+ }
101
+
102
+ function noop() {}
103
+ function Describes(window) {
104
+ var describes = {};
105
+ var beforeEachs = {};
106
+ var afterEachs = {};
107
+ // Here we store:
108
+ // 0: everyone runs
109
+ // 1: run everything under ddescribe
110
+ // 2: run only iits (ignore ddescribe)
111
+ var exclusive = 0;
112
+ var collectMode = true;
113
+ intercept('describe', describes);
114
+ intercept('xdescribe', describes);
115
+ intercept('beforeEach', beforeEachs);
116
+ intercept('afterEach', afterEachs);
117
+
118
+ function intercept(functionName, collection) {
119
+ window[functionName] = function(desc, fn) {
120
+ if (collectMode) {
121
+ collection[desc] = function() {
122
+ jasmine.getEnv()[functionName](desc, fn);
123
+ };
124
+ } else {
125
+ jasmine.getEnv()[functionName](desc, fn);
126
+ }
127
+ };
128
+ }
129
+ window.ddescribe = function(name, fn) {
130
+ if (exclusive < 1) {
131
+ exclusive = 1; // run ddescribe only
132
+ }
133
+ window.describe(name, function() {
134
+ var oldIt = window.it;
135
+ window.it = function(name, fn) {
136
+ fn.exclusive = 1; // run anything under ddescribe
137
+ jasmine.getEnv().it(name, fn);
138
+ };
139
+ try {
140
+ fn.call(this);
141
+ } finally {
142
+ window.it = oldIt;
143
+ };
144
+ });
145
+ };
146
+ window.iit = function(name, fn) {
147
+ exclusive = fn.exclusive = 2; // run only iits
148
+ jasmine.getEnv().it(name, fn);
149
+ };
150
+
151
+
152
+ this.collectMode = function() {
153
+ collectMode = true;
154
+ exclusive = 0; // run everything
155
+ };
156
+ this.playback = function() {
157
+ collectMode = false;
158
+ playback(beforeEachs);
159
+ playback(afterEachs);
160
+ playback(describes);
161
+
162
+ function playback(set) {
163
+ for ( var name in set) {
164
+ set[name]();
165
+ }
166
+ }
167
+ };
168
+
169
+ this.isExclusive = function(spec) {
170
+ if (exclusive) {
171
+ var blocks = spec.queue.blocks;
172
+ for ( var i = 0; i < blocks.length; i++) {
173
+ if (blocks[i].func.exclusive >= exclusive) {
174
+ return true;
175
+ }
176
+ }
177
+ return false;
178
+ }
179
+ return true;
180
+ };
181
+ }
182
+
183
+ })(window);
184
+
185
+ // Patch Jasmine for proper stack traces
186
+ jasmine.Spec.prototype.fail = function (e) {
187
+ var expectationResult = new jasmine.ExpectationResult({
188
+ passed: false,
189
+ message: e ? jasmine.util.formatException(e) : 'Exception'
190
+ });
191
+ // PATCH
192
+ if (e) {
193
+ expectationResult.trace = e;
194
+ }
195
+ this.results_.addResult(expectationResult);
196
+ };
@@ -0,0 +1 @@
1
+ f6b1cf6cac90932c72c4349df8847e0ffd9acbc3 @ 2012-04-29
@@ -0,0 +1 @@
1
+ 1.3.3d
@@ -0,0 +1,14 @@
1
+ #!/bin/bash
2
+
3
+ BASE_DIR=`dirname $0`
4
+ PORT=9876
5
+
6
+ echo "Starting JsTestDriver Server (http://code.google.com/p/js-test-driver/)"
7
+ echo "Please open the following url and capture one or more browsers:"
8
+ echo "http://localhost:$PORT"
9
+
10
+ java -jar "$BASE_DIR/../lib/jstestdriver/JsTestDriver.jar" \
11
+ --port $PORT \
12
+ --browserTimeout 20000 \
13
+ --config "$BASE_DIR/../config/jsTestDriver.conf" \
14
+ --basePath "$BASE_DIR/../.."
@@ -0,0 +1,8 @@
1
+ #!/bin/bash
2
+
3
+ BASE_DIR=`dirname $0`
4
+
5
+ java -jar "$BASE_DIR/../lib/jstestdriver/JsTestDriver.jar" \
6
+ --config "$BASE_DIR/../config/jsTestDriver.conf" \
7
+ --basePath "$BASE_DIR/../.." \
8
+ --tests all
metadata ADDED
@@ -0,0 +1,342 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: simple_pvr
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Ole Friis
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2013-03-11 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: activesupport
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: '3.2'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: '3.2'
30
+ - !ruby/object:Gem::Dependency
31
+ name: nokogiri
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ~>
36
+ - !ruby/object:Gem::Version
37
+ version: '1.5'
38
+ type: :runtime
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ version: '1.5'
46
+ - !ruby/object:Gem::Dependency
47
+ name: data_mapper
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ~>
52
+ - !ruby/object:Gem::Version
53
+ version: '1.2'
54
+ type: :runtime
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: '1.2'
62
+ - !ruby/object:Gem::Dependency
63
+ name: dm-sqlite-adapter
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ~>
68
+ - !ruby/object:Gem::Version
69
+ version: '1.2'
70
+ type: :runtime
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ~>
76
+ - !ruby/object:Gem::Version
77
+ version: '1.2'
78
+ - !ruby/object:Gem::Dependency
79
+ name: sinatra
80
+ requirement: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ~>
84
+ - !ruby/object:Gem::Version
85
+ version: '1.3'
86
+ type: :runtime
87
+ prerelease: false
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ~>
92
+ - !ruby/object:Gem::Version
93
+ version: '1.3'
94
+ - !ruby/object:Gem::Dependency
95
+ name: rake
96
+ requirement: !ruby/object:Gem::Requirement
97
+ none: false
98
+ requirements:
99
+ - - ! '>='
100
+ - !ruby/object:Gem::Version
101
+ version: 10.0.0
102
+ type: :development
103
+ prerelease: false
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: 10.0.0
110
+ - !ruby/object:Gem::Dependency
111
+ name: rspec
112
+ requirement: !ruby/object:Gem::Requirement
113
+ none: false
114
+ requirements:
115
+ - - ~>
116
+ - !ruby/object:Gem::Version
117
+ version: '2.11'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ~>
124
+ - !ruby/object:Gem::Version
125
+ version: '2.11'
126
+ - !ruby/object:Gem::Dependency
127
+ name: cucumber
128
+ requirement: !ruby/object:Gem::Requirement
129
+ none: false
130
+ requirements:
131
+ - - ~>
132
+ - !ruby/object:Gem::Version
133
+ version: '1.2'
134
+ type: :development
135
+ prerelease: false
136
+ version_requirements: !ruby/object:Gem::Requirement
137
+ none: false
138
+ requirements:
139
+ - - ~>
140
+ - !ruby/object:Gem::Version
141
+ version: '1.2'
142
+ - !ruby/object:Gem::Dependency
143
+ name: capybara
144
+ requirement: !ruby/object:Gem::Requirement
145
+ none: false
146
+ requirements:
147
+ - - ~>
148
+ - !ruby/object:Gem::Version
149
+ version: '1.1'
150
+ type: :development
151
+ prerelease: false
152
+ version_requirements: !ruby/object:Gem::Requirement
153
+ none: false
154
+ requirements:
155
+ - - ~>
156
+ - !ruby/object:Gem::Version
157
+ version: '1.1'
158
+ description: TV recorder for the HDHomeRun tuners. XMLTV support, nice web GUI for
159
+ planning your recordings. No playback functionality - use e.g. VLC for that.
160
+ email:
161
+ - olefriis@gmail.com
162
+ executables:
163
+ - pvr_server
164
+ - pvr_xmltv
165
+ extensions: []
166
+ extra_rdoc_files: []
167
+ files:
168
+ - .rspec
169
+ - Gemfile
170
+ - Gemfile.lock
171
+ - LICENSE.txt
172
+ - README.md
173
+ - Rakefile
174
+ - bin/pvr_server
175
+ - bin/pvr_xmltv
176
+ - features/channel_overview.feature
177
+ - features/programme_search.feature
178
+ - features/scheduling.feature
179
+ - features/step_definitions/pvr_steps.rb
180
+ - features/step_definitions/web_steps.rb
181
+ - features/support/env.rb
182
+ - features/support/paths.rb
183
+ - features/week_overview.feature
184
+ - lib/simple_pvr.rb
185
+ - lib/simple_pvr/ffmpeg.rb
186
+ - lib/simple_pvr/hdhomerun.rb
187
+ - lib/simple_pvr/hdhomerun_save.sh
188
+ - lib/simple_pvr/model/channel.rb
189
+ - lib/simple_pvr/model/database_initializer.rb
190
+ - lib/simple_pvr/model/programme.rb
191
+ - lib/simple_pvr/model/recording.rb
192
+ - lib/simple_pvr/model/schedule.rb
193
+ - lib/simple_pvr/pvr_initializer.rb
194
+ - lib/simple_pvr/pvr_logger.rb
195
+ - lib/simple_pvr/recorder.rb
196
+ - lib/simple_pvr/recording_manager.rb
197
+ - lib/simple_pvr/recording_planner.rb
198
+ - lib/simple_pvr/scheduler.rb
199
+ - lib/simple_pvr/server/app_controller.rb
200
+ - lib/simple_pvr/server/base_controller.rb
201
+ - lib/simple_pvr/server/channels_controller.rb
202
+ - lib/simple_pvr/server/config.ru
203
+ - lib/simple_pvr/server/programmes_controller.rb
204
+ - lib/simple_pvr/server/rack_maps.rb
205
+ - lib/simple_pvr/server/schedules_controller.rb
206
+ - lib/simple_pvr/server/shows_controller.rb
207
+ - lib/simple_pvr/server/status_controller.rb
208
+ - lib/simple_pvr/server/upcoming_recordings_controller.rb
209
+ - lib/simple_pvr/version.rb
210
+ - lib/simple_pvr/xmltv_reader.rb
211
+ - public/css/bootstrap-responsive.min.css
212
+ - public/css/bootstrap.min.css
213
+ - public/css/simplepvr.css
214
+ - public/img/glyphicons-halflings-white.png
215
+ - public/img/glyphicons-halflings.png
216
+ - public/index.html
217
+ - public/js/angular/angular-resource.min.js
218
+ - public/js/angular/angular.min.js
219
+ - public/js/app.js
220
+ - public/js/bootstrap/bootstrap.min.js
221
+ - public/js/controllers.js
222
+ - public/js/services.js
223
+ - public/partials/about.html
224
+ - public/partials/channels.html
225
+ - public/partials/programme.html
226
+ - public/partials/programmeListing.html
227
+ - public/partials/schedule.html
228
+ - public/partials/schedules.html
229
+ - public/partials/search.html
230
+ - public/partials/show.html
231
+ - public/partials/shows.html
232
+ - public/partials/status.html
233
+ - simple_pvr.gemspec
234
+ - spec/resources/channels.txt
235
+ - spec/resources/programs-without-icon.xmltv
236
+ - spec/resources/programs.xmltv
237
+ - spec/simple_pvr/ffmpeg_spec.rb
238
+ - spec/simple_pvr/hdhomerun_spec.rb
239
+ - spec/simple_pvr/model/channel_spec.rb
240
+ - spec/simple_pvr/model/programme_spec.rb
241
+ - spec/simple_pvr/model/schedule_spec.rb
242
+ - spec/simple_pvr/pvr_initializer_spec.rb
243
+ - spec/simple_pvr/recorder_spec.rb
244
+ - spec/simple_pvr/recording_manager_spec.rb
245
+ - spec/simple_pvr/recording_planner_spec.rb
246
+ - spec/simple_pvr/scheduler_spec.rb
247
+ - spec/simple_pvr/xmltv_reader_spec.rb
248
+ - test/config/jsTestDriver-scenario.conf
249
+ - test/config/jsTestDriver.conf
250
+ - test/config/jstd-scenario-adapter-config.js
251
+ - test/filtersSpec.js
252
+ - test/lib/angular/angular-mocks.js
253
+ - test/lib/angular/angular-scenario.js
254
+ - test/lib/angular/jstd-scenario-adapter.js
255
+ - test/lib/angular/version.txt
256
+ - test/lib/jasmine-jstd-adapter/JasmineAdapter.js
257
+ - test/lib/jasmine-jstd-adapter/version.txt
258
+ - test/lib/jasmine/MIT.LICENSE
259
+ - test/lib/jasmine/index.js
260
+ - test/lib/jasmine/jasmine-html.js
261
+ - test/lib/jasmine/jasmine.css
262
+ - test/lib/jasmine/jasmine.js
263
+ - test/lib/jasmine/jasmine_favicon.png
264
+ - test/lib/jasmine/version.txt
265
+ - test/lib/jstestdriver/JsTestDriver.jar
266
+ - test/lib/jstestdriver/version.txt
267
+ - test/scripts/test-server.sh
268
+ - test/scripts/test.sh
269
+ homepage: https://github.com/olefriis/simplepvr
270
+ licenses: []
271
+ post_install_message:
272
+ rdoc_options: []
273
+ require_paths:
274
+ - lib
275
+ required_ruby_version: !ruby/object:Gem::Requirement
276
+ none: false
277
+ requirements:
278
+ - - ! '>='
279
+ - !ruby/object:Gem::Version
280
+ version: '0'
281
+ segments:
282
+ - 0
283
+ hash: -3454247948539507955
284
+ required_rubygems_version: !ruby/object:Gem::Requirement
285
+ none: false
286
+ requirements:
287
+ - - ! '>='
288
+ - !ruby/object:Gem::Version
289
+ version: '0'
290
+ segments:
291
+ - 0
292
+ hash: -3454247948539507955
293
+ requirements: []
294
+ rubyforge_project:
295
+ rubygems_version: 1.8.24
296
+ signing_key:
297
+ specification_version: 3
298
+ summary: PVR made simple, not dumb
299
+ test_files:
300
+ - features/channel_overview.feature
301
+ - features/programme_search.feature
302
+ - features/scheduling.feature
303
+ - features/step_definitions/pvr_steps.rb
304
+ - features/step_definitions/web_steps.rb
305
+ - features/support/env.rb
306
+ - features/support/paths.rb
307
+ - features/week_overview.feature
308
+ - spec/resources/channels.txt
309
+ - spec/resources/programs-without-icon.xmltv
310
+ - spec/resources/programs.xmltv
311
+ - spec/simple_pvr/ffmpeg_spec.rb
312
+ - spec/simple_pvr/hdhomerun_spec.rb
313
+ - spec/simple_pvr/model/channel_spec.rb
314
+ - spec/simple_pvr/model/programme_spec.rb
315
+ - spec/simple_pvr/model/schedule_spec.rb
316
+ - spec/simple_pvr/pvr_initializer_spec.rb
317
+ - spec/simple_pvr/recorder_spec.rb
318
+ - spec/simple_pvr/recording_manager_spec.rb
319
+ - spec/simple_pvr/recording_planner_spec.rb
320
+ - spec/simple_pvr/scheduler_spec.rb
321
+ - spec/simple_pvr/xmltv_reader_spec.rb
322
+ - test/config/jsTestDriver-scenario.conf
323
+ - test/config/jsTestDriver.conf
324
+ - test/config/jstd-scenario-adapter-config.js
325
+ - test/filtersSpec.js
326
+ - test/lib/angular/angular-mocks.js
327
+ - test/lib/angular/angular-scenario.js
328
+ - test/lib/angular/jstd-scenario-adapter.js
329
+ - test/lib/angular/version.txt
330
+ - test/lib/jasmine-jstd-adapter/JasmineAdapter.js
331
+ - test/lib/jasmine-jstd-adapter/version.txt
332
+ - test/lib/jasmine/MIT.LICENSE
333
+ - test/lib/jasmine/index.js
334
+ - test/lib/jasmine/jasmine-html.js
335
+ - test/lib/jasmine/jasmine.css
336
+ - test/lib/jasmine/jasmine.js
337
+ - test/lib/jasmine/jasmine_favicon.png
338
+ - test/lib/jasmine/version.txt
339
+ - test/lib/jstestdriver/JsTestDriver.jar
340
+ - test/lib/jstestdriver/version.txt
341
+ - test/scripts/test-server.sh
342
+ - test/scripts/test.sh