girdle-podcast 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore ADDED
@@ -0,0 +1,17 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'http://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in girdle-podcast.gemspec
4
+ gemspec
data/README.markdown ADDED
@@ -0,0 +1,4 @@
1
+ girdle-podcast
2
+ ==============
3
+
4
+ Girdle Podcast Producer actions
data/Rakefile ADDED
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env rake
2
+ require 'bundler/gem_tasks'
@@ -0,0 +1,19 @@
1
+ # -*- encoding: utf-8 -*-
2
+ require File.expand_path('../lib/girdle/podcast/version', __FILE__)
3
+
4
+ Gem::Specification.new do |gem|
5
+ gem.authors = ["Jamie Hodge"]
6
+ gem.email = ["jamiehodge@me.com"]
7
+ gem.description = %q{Girdle Podcast Producer actions}
8
+ gem.summary = %q{Create Xgrid tasks for Podcast Producer actions}
9
+ gem.homepage = ''
10
+
11
+ gem.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
12
+ gem.files = `git ls-files`.split("\n")
13
+ gem.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
14
+ gem.name = "girdle-podcast"
15
+ gem.require_paths = ['lib/girdle']
16
+ gem.version = Girdle::Podcast::VERSION
17
+
18
+ gem.add_dependency 'girdle'
19
+ end
@@ -0,0 +1,5 @@
1
+ require 'bundler/setup'
2
+ require 'girdle'
3
+
4
+ require_relative 'podcast/version'
5
+ require_relative 'podcast/task'
@@ -0,0 +1,226 @@
1
+ module Girdle
2
+ module Podcast
3
+ class Task < Girdle::Task
4
+
5
+ def initialize(options={})
6
+ super(options)
7
+ @command = '/usr/bin/pcastaction'
8
+ end
9
+
10
+ def self.add_chapter(options={})
11
+ name = "#{File.basename(options[:input])}-addchapter-#{uuid}.mov"
12
+ arguments = [
13
+ 'addchapter',
14
+ '--basedir', options[:base_dir] || '.',
15
+ '--input', options[:input],
16
+ '--output', name,
17
+ '--time', options[:time],
18
+ '--title', options[:title]
19
+ ]
20
+ self.new(
21
+ name: name,
22
+ arguments: arguments,
23
+ depends_on: [
24
+ options[:input]
25
+ ]
26
+ )
27
+ end
28
+
29
+ def self.add_tracks(options={})
30
+ name = "#{File.basename(options[:input])}-addtracks-#{uuid}.mov"
31
+ arguments = [
32
+ 'addtracks',
33
+ '--basedir', options[:base_dir] || '.',
34
+ '--tracks', options[:tracks],
35
+ '--input', options[:input],
36
+ '--output', name
37
+ ]
38
+ self.new(
39
+ name: name,
40
+ arguments: arguments,
41
+ depends_on: [
42
+ File.basename(options[:input].to_s)
43
+ ]
44
+ )
45
+ end
46
+
47
+ def self.annotate(options={})
48
+ arguments = [
49
+ 'annotate',
50
+ '--basedir', options[:base_dir] || '.',
51
+ '--input', options[:input]
52
+ ]
53
+ arguments += ['--title', options[:title]] if options[:title]
54
+ arguments += ['--comment', options[:comment]] if options[:comment]
55
+ arguments +=
56
+ ['--description', options[:description]] if options[:description]
57
+ arguments += ['--author', options[:author]] if options[:author]
58
+ arguments += ['--keywords', options[:keywords]] if options[:keywords]
59
+ arguments += ['--copyright', options[:copyright]] if options[:copyright]
60
+ self.new(
61
+ name: "#{File.basename(options[:input])}-annotate-#{uuid}.mov",
62
+ arguments: arguments,
63
+ depends_on: [ options[:input] ]
64
+ )
65
+ end
66
+
67
+ def self.chapterize(options={})
68
+ name = "#{File.basename(options[:input])}-chapterize-#{uuid}.mov"
69
+ arguments = [
70
+ 'chapterize',
71
+ '--basedir', options[:base_dir] || '.',
72
+ '--input', options[:input],
73
+ '--output', name
74
+ ]
75
+ self.new(
76
+ name: name,
77
+ arguments: arguments,
78
+ depends_on: [
79
+ options[:input]
80
+ ]
81
+ )
82
+ end
83
+
84
+ def self.delete_tracks(options={})
85
+ name = "#{File.basename(options[:input])}-deletetracks-#{uuid}.mov"
86
+ arguments = [
87
+ 'deletetracks',
88
+ '--basedir', options[:base_dir] || '.',
89
+ '--input', options[:input],
90
+ '--output', name,
91
+ '--type', options[:type]
92
+ ]
93
+ self.new(
94
+ name: name,
95
+ arguments: arguments,
96
+ depends_on: [ options[:input] ]
97
+ )
98
+ end
99
+
100
+ def self.encode(options={})
101
+ name = "#{File.basename(options[:input])}-encode-#{uuid}.mov"
102
+ arguments = [
103
+ 'encode',
104
+ '--basedir', options[:base_dir] || '.',
105
+ '--input', options[:input],
106
+ '--output', name,
107
+ '--encoder', options[:encoder]
108
+ ]
109
+ self.new(
110
+ name: name,
111
+ arguments: arguments,
112
+ depends_on: [
113
+ options[:input]
114
+ ]
115
+ )
116
+ end
117
+
118
+ def self.extract_tracks(options={})
119
+ name = "#{File.basename(options[:input])}-extracttracks-#{uuid}.mov"
120
+ arguments = [
121
+ 'extracttracks',
122
+ '--basedir', options[:base_dir] || '.',
123
+ '--input', options[:input],
124
+ '--output', name,
125
+ '--type', options[:type]
126
+ ]
127
+ self.new(
128
+ name: name,
129
+ arguments: arguments,
130
+ depends_on: [
131
+ File.basename(options[:input])
132
+ ]
133
+ )
134
+ end
135
+
136
+ def self.get_poster_image(options={})
137
+ name = "#{File.basename(options[:input])}-getposterimage-#{uuid}.png"
138
+ arguments = [
139
+ 'getposterimage',
140
+ '--input', options[:input],
141
+ '--output', name,
142
+ '--time', options[:time]
143
+ ]
144
+ self.new(
145
+ name: name,
146
+ arguments: arguments,
147
+ depends_on: [
148
+ options[:input]
149
+ ]
150
+ )
151
+ end
152
+
153
+ def self.join(options={})
154
+ name = "#{File.basename(options[:input_1])}-#{File.basename(options[:input_2])}-join-#{uuid}.mov"
155
+ arguments = [
156
+ 'join',
157
+ '--basedir', options[:base_dir] || '.',
158
+ '--input1', options[:input_1],
159
+ '--input2', options[:input_2],
160
+ '--output', name
161
+ ]
162
+ self.new(
163
+ name: name,
164
+ arguments: arguments,
165
+ depends_on: [
166
+ options[:input_1],
167
+ options[:input_2]
168
+ ]
169
+ )
170
+ end
171
+
172
+ def self.qt_import(options={})
173
+ name = "#{File.basename(options[:input])}-qtimport-#{uuid}.mov"
174
+ arguments = [
175
+ 'qtimport',
176
+ '--basedir', options[:base_dir] || '.',
177
+ '--input', options[:input],
178
+ '--output', name
179
+ ]
180
+ if options[:enable_auto_chaptering] == true
181
+ arguments << '--enable_auto_chaptering'
182
+ end
183
+ self.new(
184
+ name: name,
185
+ arguments: arguments,
186
+ depends_on: ['preflight']
187
+ )
188
+ end
189
+
190
+ def self.qt_info(options={})
191
+ arguments = [
192
+ 'qtinfo',
193
+ '--basedir', options[:base_dir] || '.',
194
+ '--input', options[:input]
195
+ ]
196
+ arguments += ['--key', options[:key] ] if options[:key]
197
+ self.new(
198
+ name: "#{File.basename(options[:input])}-qtinfo-#{uuid}",
199
+ arguments: arguments,
200
+ depends_on: [ options[:input] ]
201
+ )
202
+ end
203
+
204
+ def self.qc_composition(options={})
205
+ name = "qc_composition_#{options[:composition]}_#{uuid}.mov"
206
+ arguments = [
207
+ options[:composition],
208
+ name,
209
+ options[:width],
210
+ options[:height],
211
+ options[:duration]
212
+ ] + options[:parameters].map {|k,v| ["--#{k}", v] }.flatten
213
+ self.new(
214
+ name: name,
215
+ arguments: arguments
216
+ ).tap { |t| t.instance_eval { @command = '/usr/bin/qc2movie' }}
217
+ end
218
+
219
+ private
220
+
221
+ def self.uuid
222
+ `uuidgen`.strip
223
+ end
224
+ end
225
+ end
226
+ end
@@ -0,0 +1,5 @@
1
+ module Girdle
2
+ module Podcast
3
+ VERSION = "0.0.1"
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ require 'minitest/autorun'
2
+
3
+ require 'bundler/setup'
4
+ Bundler.require
5
+ require_relative '../lib/girdle/podcast'
data/spec/task_spec.rb ADDED
@@ -0,0 +1,521 @@
1
+ require_relative 'spec_helper'
2
+
3
+ def must_set_subcommand(value)
4
+ @task.arguments.first.must_equal value
5
+ end
6
+
7
+ def must_set_argument(argument, value)
8
+ @task.arguments[
9
+ @task.arguments.index("--#{argument}") + 1
10
+ ].must_equal value
11
+ end
12
+
13
+ describe 'Girdle::Podcast::Task' do
14
+
15
+ it 'must set a default command' do
16
+ Task = Girdle::Podcast::Task.new
17
+ Task.command.must_equal '/usr/bin/pcastaction'
18
+ end
19
+
20
+ describe '.add_chapter' do
21
+
22
+ before do
23
+ @task = Girdle::Podcast::Task.add_chapter(
24
+ input: 'input',
25
+ time: 'time',
26
+ title: 'title'
27
+ )
28
+ end
29
+
30
+ it 'must set name' do
31
+ @task.name.must_match 'input-addchapter'
32
+ end
33
+
34
+ it 'must set subcommand argument' do
35
+ must_set_subcommand 'addchapter'
36
+ end
37
+
38
+ it 'must set base_dir argument' do
39
+ must_set_argument 'basedir', '.'
40
+ end
41
+
42
+ it 'must set input argument' do
43
+ must_set_argument 'input', 'input'
44
+ end
45
+
46
+ it 'must set time argument' do
47
+ must_set_argument 'time', 'time'
48
+ end
49
+
50
+ it 'must set title argument' do
51
+ must_set_argument 'title', 'title'
52
+ end
53
+
54
+ it 'must set output argument' do
55
+ must_set_argument 'output', @task.name
56
+ end
57
+
58
+ it 'must set depends_on' do
59
+ @task.depends_on.must_equal ['input']
60
+ end
61
+ end
62
+
63
+ describe '.add_tracks' do
64
+
65
+ before do
66
+ @task = Girdle::Podcast::Task.add_tracks(
67
+ tracks: 'tracks',
68
+ input: 'input'
69
+ )
70
+ end
71
+
72
+ it 'must set name' do
73
+ @task.name.must_match 'input-addtracks'
74
+ end
75
+
76
+ it 'must set subcommand argument' do
77
+ must_set_subcommand 'addtracks'
78
+ end
79
+
80
+ it 'must set base_dir argument' do
81
+ must_set_argument 'basedir', '.'
82
+ end
83
+
84
+ it 'must set tracks argument' do
85
+ must_set_argument 'tracks', 'tracks'
86
+ end
87
+
88
+ it 'must set input argument' do
89
+ must_set_argument 'input', 'input'
90
+ end
91
+
92
+ it 'must set output argument' do
93
+ must_set_argument 'output', @task.name
94
+ end
95
+
96
+ it 'must set depends_on' do
97
+ @task.depends_on.must_equal ['input']
98
+ end
99
+ end
100
+
101
+ describe '.annotate' do
102
+
103
+ before do
104
+ @task = Girdle::Podcast::Task.annotate(
105
+ input: 'input',
106
+ title: 'title',
107
+ comment: 'comment',
108
+ description: 'description',
109
+ author: 'author',
110
+ keywords: 'keywords',
111
+ copyright: 'copyright'
112
+ )
113
+ end
114
+
115
+ it 'must set name' do
116
+ @task.name.must_match 'input-annotate'
117
+ end
118
+
119
+ it 'must set subcommand argument' do
120
+ must_set_subcommand 'annotate'
121
+ end
122
+
123
+ it 'must set base_dir argument' do
124
+ must_set_argument 'basedir', '.'
125
+ end
126
+
127
+ it 'must set input argument' do
128
+ must_set_argument 'input', 'input'
129
+ end
130
+
131
+ it 'must set title argument' do
132
+ must_set_argument 'title', 'title'
133
+ end
134
+
135
+ it 'must set comment argument' do
136
+ must_set_argument 'comment', 'comment'
137
+ end
138
+
139
+ it 'must set author argument' do
140
+ must_set_argument 'author', 'author'
141
+ end
142
+
143
+ it 'must set keywords argument' do
144
+ must_set_argument 'keywords', 'keywords'
145
+ end
146
+
147
+ it 'must set copyright argument' do
148
+ must_set_argument 'copyright', 'copyright'
149
+ end
150
+
151
+ it 'must set depends_on' do
152
+ @task.depends_on.must_equal ['input']
153
+ end
154
+ end
155
+
156
+ describe '.chapterize' do
157
+
158
+ before do
159
+ @task = Girdle::Podcast::Task.chapterize(
160
+ input: 'input'
161
+ )
162
+ end
163
+
164
+ it 'must set name' do
165
+ @task.name.must_match 'input-chapterize'
166
+ end
167
+
168
+ it 'must set subcommand argument' do
169
+ must_set_subcommand 'chapterize'
170
+ end
171
+
172
+ it 'must set base_dir argument' do
173
+ must_set_argument 'basedir', '.'
174
+ end
175
+
176
+ it 'must set input argument' do
177
+ must_set_argument 'input', 'input'
178
+ end
179
+
180
+ it 'must set output argument' do
181
+ must_set_argument 'output', @task.name
182
+ end
183
+
184
+ it 'must set depends_on' do
185
+ @task.depends_on.must_equal ['input']
186
+ end
187
+ end
188
+
189
+ describe '.delete_tracks' do
190
+
191
+ before do
192
+ @task = Girdle::Podcast::Task.delete_tracks(
193
+ input: 'input',
194
+ type: 'type'
195
+ )
196
+ end
197
+
198
+ it 'must set name' do
199
+ @task.name.must_match 'input-deletetracks'
200
+ end
201
+
202
+ it 'must set subcommand argument' do
203
+ must_set_subcommand 'deletetracks'
204
+ end
205
+
206
+ it 'must set base_dir argument' do
207
+ must_set_argument 'basedir', '.'
208
+ end
209
+
210
+ it 'must set input argument' do
211
+ must_set_argument 'input', 'input'
212
+ end
213
+
214
+ it 'must set output argument' do
215
+ must_set_argument 'output', @task.name
216
+ end
217
+
218
+ it 'must set type argument' do
219
+ must_set_argument 'type', 'type'
220
+ end
221
+
222
+ it 'must set depends_on' do
223
+ @task.depends_on.must_equal ['input']
224
+ end
225
+ end
226
+
227
+ describe '.encode' do
228
+
229
+ before do
230
+ @task = Girdle::Podcast::Task.encode(
231
+ input: 'input',
232
+ encoder: 'encoder'
233
+ )
234
+ end
235
+
236
+ it 'must set name' do
237
+ @task.name.must_match 'input-encode'
238
+ end
239
+
240
+ it 'must set subcommand argument' do
241
+ must_set_subcommand 'encode'
242
+ end
243
+
244
+ it 'must set base_dir argument' do
245
+ must_set_argument 'basedir', '.'
246
+ end
247
+
248
+ it 'must set input argument' do
249
+ must_set_argument 'input', 'input'
250
+ end
251
+
252
+ it 'must set encoder argument' do
253
+ must_set_argument 'encoder', 'encoder'
254
+ end
255
+
256
+ it 'must set output argument' do
257
+ must_set_argument 'output', @task.name
258
+ end
259
+
260
+ it 'must set depends_on' do
261
+ @task.depends_on.must_equal ['input']
262
+ end
263
+ end
264
+
265
+ describe '.extract_tracks' do
266
+
267
+ before do
268
+ @task = Girdle::Podcast::Task.extract_tracks(
269
+ input: 'input',
270
+ type: 'type'
271
+ )
272
+ end
273
+
274
+ it 'must set name' do
275
+ @task.name.must_match 'input-extracttracks'
276
+ end
277
+
278
+ it 'must set subcommand argument' do
279
+ must_set_subcommand 'extracttracks'
280
+ end
281
+
282
+ it 'must set base_dir argument' do
283
+ must_set_argument 'basedir', '.'
284
+ end
285
+
286
+ it 'must set input argument' do
287
+ must_set_argument 'input', 'input'
288
+ end
289
+
290
+ it 'must set output argument' do
291
+ must_set_argument 'output', @task.name
292
+ end
293
+
294
+ it 'must set type argument' do
295
+ must_set_argument 'type', 'type'
296
+ end
297
+
298
+ it 'must set depends_on' do
299
+ @task.depends_on.must_equal ['input']
300
+ end
301
+ end
302
+
303
+ describe '.get_poster_image' do
304
+
305
+ before do
306
+ @task = Girdle::Podcast::Task.get_poster_image(
307
+ input: 'input',
308
+ time: 'time'
309
+ )
310
+ end
311
+
312
+ it 'must set name' do
313
+ @task.name.must_match 'input-getposterimage'
314
+ end
315
+
316
+ it 'must set subcommand' do
317
+ must_set_subcommand 'getposterimage'
318
+ end
319
+
320
+ it 'must set input argument' do
321
+ must_set_argument 'input', 'input'
322
+ end
323
+
324
+ it 'must set time argument' do
325
+ must_set_argument 'time', 'time'
326
+ end
327
+
328
+ it 'must set output argument' do
329
+ must_set_argument 'output', @task.name
330
+ end
331
+
332
+ end
333
+
334
+ describe '.get_preview_movie' do; end
335
+
336
+ describe '.join' do
337
+
338
+ before do
339
+ @task = Girdle::Podcast::Task.join(
340
+ input_1: 'input 1',
341
+ input_2: 'input 2'
342
+ )
343
+ end
344
+
345
+ it 'must set name' do
346
+ @task.name.must_match 'input 1-input 2-join'
347
+ end
348
+
349
+ it 'must set subcommand argument' do
350
+ must_set_subcommand 'join'
351
+ end
352
+
353
+ it 'must set base_dir argument' do
354
+ must_set_argument 'basedir', '.'
355
+ end
356
+
357
+ it 'must set input_1 argument' do
358
+ must_set_argument 'input1', 'input 1'
359
+ end
360
+
361
+ it 'must set input_2 argument' do
362
+ must_set_argument 'input2', 'input 2'
363
+ end
364
+
365
+ it 'must set output argument' do
366
+ must_set_argument 'output', @task.name
367
+ end
368
+
369
+ it 'must set depends_on' do
370
+ @task.depends_on.must_equal ['input 1', 'input 2']
371
+ end
372
+ end
373
+
374
+ describe '.merge' do; end
375
+
376
+ describe '.picture_in_picture' do; end
377
+
378
+ describe '.qceffect' do; end
379
+
380
+ describe '.qtimport' do
381
+
382
+ before do
383
+ @task = Girdle::Podcast::Task.qt_import(
384
+ input: 'input',
385
+ output: 'output',
386
+ enable_auto_chaptering: true
387
+ )
388
+ end
389
+
390
+ it 'must set name' do
391
+ @task.name.must_match 'input-qtimport'
392
+ end
393
+
394
+ it 'must set subcommand argument' do
395
+ must_set_subcommand 'qtimport'
396
+ end
397
+
398
+ it 'must set base_dir argument' do
399
+ must_set_argument 'basedir', '.'
400
+ end
401
+
402
+ it 'must set input argument' do
403
+ must_set_argument 'input', 'input'
404
+ end
405
+
406
+ it 'must set output argument' do
407
+ must_set_argument 'output', @task.name
408
+ end
409
+
410
+ it 'must set auto chaptering argument' do
411
+ @task.arguments.must_include('--enable_auto_chaptering')
412
+ end
413
+
414
+ it 'must not set auto chaptering argument' do
415
+ Girdle::Podcast::Task.qt_import(
416
+ input: 'input',
417
+ output: 'output',
418
+ enable_auto_chaptering: false
419
+ ).arguments.wont_include('--enable_auto_chaptering')
420
+ end
421
+
422
+ it 'must set depends_on' do
423
+ @task.depends_on.must_equal ['preflight']
424
+ end
425
+ end
426
+
427
+ describe '.qtinfo' do
428
+
429
+ before do
430
+ @task = Girdle::Podcast::Task.qt_info(
431
+ input: 'input',
432
+ key: 'key'
433
+ )
434
+ end
435
+
436
+ it 'must set name' do
437
+ @task.name.must_match 'input-qtinfo'
438
+ end
439
+
440
+ it 'must set subcommand' do
441
+ must_set_subcommand 'qtinfo'
442
+ end
443
+
444
+ it 'must set basedir argument' do
445
+ must_set_argument 'basedir', '.'
446
+ end
447
+
448
+ it 'must set input argument' do
449
+ must_set_argument 'input', 'input'
450
+ end
451
+
452
+ it 'must set key argument' do
453
+ must_set_argument 'key', 'key'
454
+ end
455
+
456
+ it 'must not set key argument' do
457
+ Girdle::Podcast::Task.qt_info(
458
+ input: 'input'
459
+ ).arguments.wont_include '--key'
460
+ end
461
+
462
+ it 'must set depends_on' do
463
+ @task.depends_on.must_equal [ 'input' ]
464
+ end
465
+ end
466
+
467
+ describe '.split' do; end
468
+
469
+ describe '.trim' do; end
470
+
471
+ describe '.watermark' do; end
472
+
473
+ describe '.qc_composition' do
474
+
475
+ before do
476
+ @task = Girdle::Podcast::Task.qc_composition(
477
+ composition: 'composition',
478
+ width: 'width',
479
+ height: 'height',
480
+ duration: 'duration',
481
+ parameters: { a_param: 'a_value', another_param: 'another_value' }
482
+ )
483
+ end
484
+
485
+ it 'must set name' do
486
+ @task.name.must_match 'qc_composition_composition'
487
+ end
488
+
489
+ it 'must set command' do
490
+ @task.command.must_equal '/usr/bin/qc2movie'
491
+ end
492
+
493
+ it 'must set composition argument' do
494
+ @task.arguments[0].must_equal 'composition'
495
+ end
496
+
497
+ it 'must set output argument' do
498
+ @task.arguments[1].must_equal @task.name
499
+ end
500
+
501
+ it 'must set width argument' do
502
+ @task.arguments[2].must_equal 'width'
503
+ end
504
+
505
+ it 'must set height argument' do
506
+ @task.arguments[3].must_equal 'height'
507
+ end
508
+
509
+ it 'must set duration argument' do
510
+ @task.arguments[4].must_equal 'duration'
511
+ end
512
+
513
+ it 'must set parameters' do
514
+ @task.arguments[5].must_equal '--a_param'
515
+ @task.arguments[6].must_equal 'a_value'
516
+ @task.arguments[7].must_equal '--another_param'
517
+ @task.arguments[8].must_equal 'another_value'
518
+ end
519
+ end
520
+
521
+ end
metadata ADDED
@@ -0,0 +1,68 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: girdle-podcast
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Jamie Hodge
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2011-10-03 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: girdle
16
+ requirement: &70300641819500 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: *70300641819500
25
+ description: Girdle Podcast Producer actions
26
+ email:
27
+ - jamiehodge@me.com
28
+ executables: []
29
+ extensions: []
30
+ extra_rdoc_files: []
31
+ files:
32
+ - .gitignore
33
+ - Gemfile
34
+ - README.markdown
35
+ - Rakefile
36
+ - girdle-podcast.gemspec
37
+ - lib/girdle/podcast.rb
38
+ - lib/girdle/podcast/task.rb
39
+ - lib/girdle/podcast/version.rb
40
+ - spec/spec_helper.rb
41
+ - spec/task_spec.rb
42
+ homepage: ''
43
+ licenses: []
44
+ post_install_message:
45
+ rdoc_options: []
46
+ require_paths:
47
+ - lib/girdle
48
+ required_ruby_version: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ required_rubygems_version: !ruby/object:Gem::Requirement
55
+ none: false
56
+ requirements:
57
+ - - ! '>='
58
+ - !ruby/object:Gem::Version
59
+ version: '0'
60
+ requirements: []
61
+ rubyforge_project:
62
+ rubygems_version: 1.8.5
63
+ signing_key:
64
+ specification_version: 3
65
+ summary: Create Xgrid tasks for Podcast Producer actions
66
+ test_files:
67
+ - spec/spec_helper.rb
68
+ - spec/task_spec.rb