girdle 0.0.5 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile CHANGED
@@ -1,7 +1,4 @@
1
1
  source 'http://rubygems.org'
2
2
 
3
3
  # Specify your gem's dependencies in girdle.gemspec
4
- gemspec
5
-
6
- gem 'nokogiri'
7
- gem 'nokogiri-plist'
4
+ gemspec
@@ -3,6 +3,63 @@ Girdle
3
3
 
4
4
  A client for submitting and managing Xgrid jobs.
5
5
 
6
+ Installation
7
+ ------------
8
+
9
+ gem install girdle
10
+
11
+ Usage
12
+ -----
13
+
14
+ Create a job specification:
15
+
16
+ spec = Girdle::Specification.new(name: 'example_spec', notification_email: 'admin@example.com')
17
+
18
+ Add a task:
19
+
20
+ spec.tasks << Girdle::Task.new(name: 'hello', command: '/usr/bin/say',
21
+ arguments: ['hello'])
22
+
23
+ Add another, this one dependent on the first:
24
+
25
+ spec.tasks << Girdle::Task.new(name: 'world', command: '/usr/bin/say',
26
+ arguments: ['world'], depends_on: ['hello'])
27
+
28
+ Submit the specification and return an id:
29
+
30
+ job_id = Girdle::Job.batch(spec.to_plist)
31
+
32
+ Create a new job using the returned id:
33
+
34
+ job = Girdle::Job.new(job_id)
35
+
36
+ Check its status:
37
+
38
+ job.status
39
+
40
+ Control its state:
41
+
42
+ job.suspend
43
+ job.resume
44
+ job.restart
45
+ job.stop
46
+
47
+ Review its task log:
48
+
49
+ job.log
50
+
51
+ View its results:
52
+
53
+ job.results
54
+
55
+ Delete it:
56
+
57
+ job.delete
58
+
59
+ List all jobs:
60
+
61
+ Girdle::Job.list
62
+
6
63
  License
7
64
  -------
8
65
 
@@ -1,15 +1,14 @@
1
- require 'bundler'
1
+ require 'bundler/setup'
2
+
2
3
  require 'nokogiri'
3
4
  require 'nokogiri-plist'
4
5
 
5
- require_relative 'girdle/version'
6
-
7
- require_relative 'girdle/task'
8
- require_relative 'girdle/specification'
9
- require_relative 'girdle/job'
10
-
11
- require_relative 'girdle/grid'
12
- require_relative 'girdle/controller'
6
+ require 'girdle/version'
7
+ require 'girdle/task'
8
+ require 'girdle/specification'
9
+ require 'girdle/job'
10
+ require 'girdle/grid'
11
+ require 'girdle/controller'
13
12
 
14
13
  module Girdle
15
14
  extend self
@@ -25,7 +25,7 @@ module Girdle
25
25
  end
26
26
 
27
27
  def attributes
28
- @attributes ||= Girdle.run(job: 'attributes', id: id)['jobAttributes']
28
+ Girdle.run(job: 'attributes', id: id)['jobAttributes']
29
29
  end
30
30
 
31
31
  def active_cpu_power
@@ -8,7 +8,7 @@ module Girdle
8
8
  @name = options[:name]
9
9
  @command = options[:command]
10
10
  @arguments = options[:arguments]
11
- @depends_on = options[:depends_on]
11
+ @depends_on = options[:depends_on] || []
12
12
  end
13
13
 
14
14
  end
@@ -1,3 +1,3 @@
1
1
  module Girdle
2
- VERSION = "0.0.5"
2
+ VERSION = "0.0.6"
3
3
  end
@@ -1,4 +1,4 @@
1
- require_relative '../spec_helper'
1
+ require 'spec_helper'
2
2
 
3
3
  describe Girdle::Controller do
4
4
 
@@ -1,4 +1,4 @@
1
- require_relative '../spec_helper'
1
+ require 'spec_helper'
2
2
 
3
3
  describe Girdle::Grid do
4
4
 
@@ -1,4 +1,4 @@
1
- require_relative '../spec_helper'
1
+ require 'spec_helper'
2
2
 
3
3
  describe Girdle::Job do
4
4
 
@@ -1,37 +1,4 @@
1
- require_relative '../spec_helper'
2
-
3
- def plist
4
- <<-EOS
5
- <?xml version="1.0"?>
6
- <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
7
- <plist version="1.0">
8
- <array>
9
- <dict>
10
- <key>name</key>
11
- <string>specification name</string>
12
- <key>notificationEmail</key>
13
- <string>email@example.com</string>
14
- <key>taskSpecifications</key>
15
- <dict>
16
- <key>task name</key>
17
- <dict>
18
- <key>arguments</key>
19
- <array>
20
- <string>hello</string>
21
- </array>
22
- <key>command</key>
23
- <string>/bin/echo</string>
24
- <key>dependsOnTasks</key>
25
- <array>
26
- <string>another task</string>
27
- </array>
28
- </dict>
29
- </dict>
30
- </dict>
31
- </array>
32
- </plist>
33
- EOS
34
- end
1
+ require 'spec_helper'
35
2
 
36
3
  describe Girdle::Specification do
37
4
 
@@ -63,6 +30,36 @@ describe Girdle::Specification do
63
30
  end
64
31
 
65
32
  it 'must render itself as a plist' do
33
+ plist = <<-EOS
34
+ <?xml version="1.0"?>
35
+ <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
36
+ <plist version="1.0">
37
+ <array>
38
+ <dict>
39
+ <key>name</key>
40
+ <string>specification name</string>
41
+ <key>notificationEmail</key>
42
+ <string>email@example.com</string>
43
+ <key>taskSpecifications</key>
44
+ <dict>
45
+ <key>task name</key>
46
+ <dict>
47
+ <key>arguments</key>
48
+ <array>
49
+ <string>hello</string>
50
+ </array>
51
+ <key>command</key>
52
+ <string>/bin/echo</string>
53
+ <key>dependsOnTasks</key>
54
+ <array>
55
+ <string>another task</string>
56
+ </array>
57
+ </dict>
58
+ </dict>
59
+ </dict>
60
+ </array>
61
+ </plist>
62
+ EOS
66
63
  @spec.to_plist.must_equal plist
67
64
  end
68
65
 
@@ -1,4 +1,4 @@
1
- require_relative '../spec_helper'
1
+ require 'spec_helper'
2
2
 
3
3
  describe Girdle::Task do
4
4
 
@@ -1,4 +1,4 @@
1
- require_relative 'spec_helper'
1
+ require 'spec_helper'
2
2
 
3
3
  def plist
4
4
  <<-EOS
@@ -3,5 +3,4 @@ require 'minitest/autorun'
3
3
  require 'bundler'
4
4
  Bundler.require(:development)
5
5
 
6
-
7
- require_relative '../lib/girdle'
6
+ require 'girdle'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: girdle
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-08-18 00:00:00.000000000Z
12
+ date: 2011-08-19 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
16
- requirement: &70333927434400 !ruby/object:Gem::Requirement
16
+ requirement: &70127451669460 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *70333927434400
24
+ version_requirements: *70127451669460
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: guard
27
- requirement: &70333928166280 !ruby/object:Gem::Requirement
27
+ requirement: &70127451669040 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *70333928166280
35
+ version_requirements: *70127451669040
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: guard-minitest
38
- requirement: &70333928175280 !ruby/object:Gem::Requirement
38
+ requirement: &70127451692420 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *70333928175280
46
+ version_requirements: *70127451692420
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rb-fsevent
49
- requirement: &70333928243640 !ruby/object:Gem::Requirement
49
+ requirement: &70127451692000 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0'
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *70333928243640
57
+ version_requirements: *70127451692000
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: growl_notify
60
- requirement: &70333928324500 !ruby/object:Gem::Requirement
60
+ requirement: &70127451691580 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: '0'
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *70333928324500
68
+ version_requirements: *70127451691580
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: mocha
71
- requirement: &70333928431280 !ruby/object:Gem::Requirement
71
+ requirement: &70127451691160 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ! '>='
@@ -76,10 +76,10 @@ dependencies:
76
76
  version: '0'
77
77
  type: :development
78
78
  prerelease: false
79
- version_requirements: *70333928431280
79
+ version_requirements: *70127451691160
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: nokogiri
82
- requirement: &70333928542520 !ruby/object:Gem::Requirement
82
+ requirement: &70127451690740 !ruby/object:Gem::Requirement
83
83
  none: false
84
84
  requirements:
85
85
  - - ! '>='
@@ -87,10 +87,10 @@ dependencies:
87
87
  version: '0'
88
88
  type: :runtime
89
89
  prerelease: false
90
- version_requirements: *70333928542520
90
+ version_requirements: *70127451690740
91
91
  - !ruby/object:Gem::Dependency
92
92
  name: nokogiri-plist
93
- requirement: &70333928588860 !ruby/object:Gem::Requirement
93
+ requirement: &70127451690320 !ruby/object:Gem::Requirement
94
94
  none: false
95
95
  requirements:
96
96
  - - ! '>='
@@ -98,7 +98,7 @@ dependencies:
98
98
  version: '0'
99
99
  type: :runtime
100
100
  prerelease: false
101
- version_requirements: *70333928588860
101
+ version_requirements: *70127451690320
102
102
  description: An Xgrid client
103
103
  email:
104
104
  - jamiehodge@me.com