off_the_grid 0.0.1 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 07155e2121e33460113166ae7876130af5698fff
4
- data.tar.gz: ef80d7252bedc9328729276b1a2e0c8cd78b760a
3
+ metadata.gz: 6881c4a5452077d50f7d2c7d4db4ddd27d0e5b6d
4
+ data.tar.gz: a138ce342b3dd379b7906ea4998b8bd460830e50
5
5
  SHA512:
6
- metadata.gz: cfd6d1f0c1b1ef367c6b1fdcee8aa5a09ff6cdeaee40245ed719138ec91edd62f9c7bdaafee36a7c5b909cae9974bc12b8d09200e378ccb3e519f79e6cb5da4d
7
- data.tar.gz: a9e08a7cc9ace51e28536cd0b272edbe481b7c5bf1df299ab3f77437716e6df9b7a04ea2115118f82c06124df09d84c1d84b1c6ca6c5654cebcd132aa891e5fe
6
+ metadata.gz: 9c2345b54b7baffcb27c20e1f1f537eebc6b419c28f675fa706781cd0542f08d63d7caa5dfa60eb8e71c57862201ca06a1c8875e3d247abad3d30b6d68f6c99d
7
+ data.tar.gz: b4aff831f03ce3d673d2796affee3931498fcb2d7a1ff184563c9be0c76657d6f4d0c397e53c57051643f49a751f27973e0d4dd893ba5a1da7dcebd9c71792b8
data/.gitignore ADDED
@@ -0,0 +1,12 @@
1
+ # Ignore Mac stuff
2
+ .DS_Store
3
+
4
+ # Ignore temporary stuff
5
+ tmp/
6
+
7
+ # Ignore built gem files
8
+ *.gem
9
+
10
+ # Ignore doc files
11
+ doc/
12
+ .yardoc
data/.rubocop.yml ADDED
@@ -0,0 +1,17 @@
1
+ Metrics/LineLength:
2
+ Max: 100
3
+
4
+ Metrics/ClassLength:
5
+ Max: 150
6
+
7
+ Metrics/AbcSize:
8
+ Max: 22
9
+
10
+ Metrics/MethodLength:
11
+ Max: 20
12
+
13
+ Metrics/CyclomaticComplexity:
14
+ Max: 10
15
+
16
+ Metrics/PerceivedComplexity:
17
+ Max: 8
data/.travis.yml ADDED
@@ -0,0 +1,14 @@
1
+ sudo: false
2
+ language: ruby
3
+ rvm:
4
+ - 2.2.5
5
+ - 2.3.3
6
+ before_install: gem install bundler -v 1.12.5
7
+ deploy:
8
+ provider: rubygems
9
+ api_key:
10
+ secure: FQ3MMkgUAucMVhEgVDptcalMBh9WUVfTZkn6CPttY7GEWDXWKARjFy3TopVz7Eh8y7uy8fuP8gSDdaOmWcnDqGQ8eW9c4TfPaoC5Ttd4f7+1G/y/VvVeeaE/dSucsHTWpobwUAOGLHhArrcRggXHAyNcftbnyfLwha0PgaWXDPTdweNh/f4nbdD72c7TotjjZwUS44ffv+CWNMMVX8zQs5tZ+XTSsWH1RJzjjLK3Mb9adKYA8IkVL2Jitn4TIj95h4r9pqPRHWPdBY6frZ5yF1vZ/7Rny1R7MZ8gST+t2vYO458nVkJYJvkZ4vIJ9bROVXL84iBu2XEuRoB66HSkGYgOcdRBx6joznvf7U4/1qq4mnkaYQijQ3xdy6AmNaymDST2jMKwPIFHm+mKFc5xF8j+ehjE5C3TOX5MQD90mnz4piADey9ha1oy2839gEzOp1mXs/PQcOcPyLtrcoKNfkGENqBguGSOY239c1BAMNhP2IgqW5BzomXieQcw4njLIk3GYXt2ENigQUghTHyzuzNbTu+DgXIbymBYhY/CMs2zIAHE0+Qg2f878VpyAiESK4Ydd5vxFFir+8V9vEXtzqhhsG8el5HC+n5An2eOKvZ5eOSNswNvaqhnsOPkCf9BD6RYEYKfpdS8l7lU95s0BVnnOHMUrzOjLAmNaWy5oS8=
11
+ gem: off_the_grid
12
+ on:
13
+ tags: true
14
+ repo: knuedge/off_the_grid
data/CONTRIBUTING.md ADDED
@@ -0,0 +1,16 @@
1
+ ## Welcome!
2
+
3
+ We're so glad you're thinking about contributing to a KnuEdge open source project! If you're unsure about anything, just ask -- or submit the issue or pull request anyway. The worst that can happen is you'll be politely asked to change something. We love all friendly contributions.
4
+
5
+ We want to ensure a welcoming environment for all of our projects. Our IT staff encourage ethical contribution to our open source projects and all contributors should do the same.
6
+
7
+ We encourage you to read this project's CONTRIBUTING policy (you are here), its [LICENSE](LICENSE), and its [README](README.md).
8
+
9
+ If you have any questions just [shoot us an email](mailto:opensource@knuedge.com).
10
+
11
+ ## Licensing
12
+
13
+ This project and all code contained within it are released under the [MIT License](https://opensource.org/licenses/MIT).
14
+
15
+ All contributions to this project will be released under the [MIT License](https://opensource.org/licenses/MIT). By submitting a pull request, you are agreeing to comply
16
+ with this license and for any contributions to be released under it.
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in off_the_grid.gemspec
4
+ gemspec
data/Gemfile.lock ADDED
@@ -0,0 +1,101 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ off_the_grid (0.0.3)
5
+
6
+ GEM
7
+ remote: https://rubygems.org/
8
+ specs:
9
+ addressable (2.5.0)
10
+ public_suffix (~> 2.0, >= 2.0.2)
11
+ ast (2.3.0)
12
+ backports (3.6.8)
13
+ diff-lcs (1.2.5)
14
+ docile (1.1.5)
15
+ ethon (0.9.1)
16
+ ffi (>= 1.3.0)
17
+ faraday (0.9.2)
18
+ multipart-post (>= 1.2, < 3)
19
+ faraday_middleware (0.10.0)
20
+ faraday (>= 0.7.4, < 0.10)
21
+ ffi (1.9.14)
22
+ gh (0.14.0)
23
+ addressable
24
+ backports
25
+ faraday (~> 0.8)
26
+ multi_json (~> 1.0)
27
+ net-http-persistent (>= 2.7)
28
+ net-http-pipeline
29
+ highline (1.7.8)
30
+ json (2.0.2)
31
+ launchy (2.4.3)
32
+ addressable (~> 2.3)
33
+ multi_json (1.12.1)
34
+ multipart-post (2.0.0)
35
+ net-http-persistent (2.9.4)
36
+ net-http-pipeline (1.0.1)
37
+ parser (2.3.1.4)
38
+ ast (~> 2.2)
39
+ powerpack (0.1.1)
40
+ public_suffix (2.0.4)
41
+ pusher-client (0.6.2)
42
+ json
43
+ websocket (~> 1.0)
44
+ rainbow (2.1.0)
45
+ rake (10.5.0)
46
+ rspec (3.5.0)
47
+ rspec-core (~> 3.5.0)
48
+ rspec-expectations (~> 3.5.0)
49
+ rspec-mocks (~> 3.5.0)
50
+ rspec-core (3.5.4)
51
+ rspec-support (~> 3.5.0)
52
+ rspec-expectations (3.5.0)
53
+ diff-lcs (>= 1.2.0, < 2.0)
54
+ rspec-support (~> 3.5.0)
55
+ rspec-mocks (3.5.0)
56
+ diff-lcs (>= 1.2.0, < 2.0)
57
+ rspec-support (~> 3.5.0)
58
+ rspec-support (3.5.0)
59
+ rubocop (0.45.0)
60
+ parser (>= 2.3.1.1, < 3.0)
61
+ powerpack (~> 0.1)
62
+ rainbow (>= 1.99.1, < 3.0)
63
+ ruby-progressbar (~> 1.7)
64
+ unicode-display_width (~> 1.0, >= 1.0.1)
65
+ ruby-progressbar (1.8.1)
66
+ simplecov (0.12.0)
67
+ docile (~> 1.1.0)
68
+ json (>= 1.8, < 3)
69
+ simplecov-html (~> 0.10.0)
70
+ simplecov-html (0.10.0)
71
+ travis (1.8.4)
72
+ backports
73
+ faraday (~> 0.9)
74
+ faraday_middleware (~> 0.9, >= 0.9.1)
75
+ gh (~> 0.13)
76
+ highline (~> 1.6)
77
+ launchy (~> 2.1)
78
+ net-http-persistent (~> 2.9)
79
+ pusher-client (~> 0.4)
80
+ typhoeus (~> 0.6, >= 0.6.8)
81
+ typhoeus (0.8.0)
82
+ ethon (>= 0.8.0)
83
+ unicode-display_width (1.1.1)
84
+ websocket (1.2.3)
85
+ yard (0.9.5)
86
+
87
+ PLATFORMS
88
+ ruby
89
+
90
+ DEPENDENCIES
91
+ bundler (~> 1.12)
92
+ off_the_grid!
93
+ rake (~> 10.0)
94
+ rspec (~> 3.1)
95
+ rubocop (~> 0.35)
96
+ simplecov
97
+ travis (~> 1.8)
98
+ yard (~> 0.8)
99
+
100
+ BUNDLED WITH
101
+ 1.12.5
data/README.md ADDED
@@ -0,0 +1,15 @@
1
+ # Off the Grid
2
+
3
+ A Ruby library for interacting with SGE ([Sun / Oracle Grid Engine](https://en.wikipedia.org/wiki/Oracle_Grid_Engine), [Son of Grid Engine](https://arc.liv.ac.uk/trac/SGE), [Open Grid Scheduler](http://gridscheduler.sourceforge.net/), etc.), providing full-fledged Ruby objects and familiar Ruby constructs and paradigms.
4
+
5
+ There is still much work to be done and contributions are welcome. The goal is to ease automation around configuring and querying the grid.
6
+
7
+ ## Contributing
8
+
9
+ See [CONTRIBUTING](CONTRIBUTING.md) for additional information.
10
+
11
+ ## Licensing
12
+
13
+ This project and all code contained within it are released under the [MIT License](https://opensource.org/licenses/MIT). As stated in [CONTRIBUTING](CONTRIBUTING.md):
14
+
15
+ > All contributions to this project will be released under the [MIT License](https://opensource.org/licenses/MIT). By submitting a pull request, you are agreeing to comply with this license and for any contributions to be released under it.
data/Rakefile ADDED
@@ -0,0 +1,10 @@
1
+ require 'bundler/gem_tasks'
2
+ require 'rspec/core/rake_task'
3
+ require 'rubocop/rake_task'
4
+ require 'yard'
5
+
6
+ RSpec::Core::RakeTask.new(:spec)
7
+ RuboCop::RakeTask.new(:rubocop)
8
+ YARD::Rake::YardocTask.new
9
+
10
+ task default: [:spec, :rubocop, :yard]
@@ -1,11 +1,9 @@
1
1
  module OffTheGrid
2
- class AccessList
3
- attr_reader :name
4
- include GridResource
5
-
2
+ # A class to represent SGE Access Lists
3
+ class AccessList < NamedResource
6
4
  # Get the list of SGE access lists
7
5
  def self.list
8
- `qconf -sul`.chomp.split("\n").sort.collect {|name| self.new(name) }
6
+ `qconf -sul`.chomp.split("\n").sort.collect { |name| new(name) }
9
7
  end
10
8
 
11
9
  def details
@@ -17,7 +15,7 @@ module OffTheGrid
17
15
  @unsaved_users ||= []
18
16
  else
19
17
  # Only returns users
20
- extract_detail(:entries).select {|e| !e.match /^@/ }.collect {|user| User.new(user) }
18
+ extract_detail(:entries).select { |e| !e.match(/^@/) }.collect { |user| User.new(user) }
21
19
  end
22
20
  end
23
21
 
@@ -38,7 +36,7 @@ module OffTheGrid
38
36
 
39
37
  # Add an SGE access list
40
38
  def add
41
- fail "Creating ACL Requires One or More Users" if users.empty?
39
+ raise 'Creating ACL Requires One or More Users' if users.empty?
42
40
  system("qconf -au #{users.map(&:name).join(',')} #{name}")
43
41
  end
44
42
 
@@ -1,8 +1,9 @@
1
1
  module OffTheGrid
2
+ # A class to represent SGE Admin Hosts
2
3
  class AdminHost < Host
3
4
  # Get the list of SGE adminstrative hosts
4
5
  def self.list
5
- `qconf -sh`.chomp.split("\n").sort.collect {|name| self.new(name) }
6
+ `qconf -sh`.chomp.split("\n").sort.collect { |name| new(name) }
6
7
  end
7
8
 
8
9
  private
@@ -1,7 +1,8 @@
1
1
  module OffTheGrid
2
+ # ERB related helper methods
2
3
  module ErbHelpers
3
4
  def render(template_data)
4
- ERB.new(template_data.gsub(/^(\t|\s)+<%/, '<%'), 0, "<>").result(binding)
5
+ ERB.new(template_data.gsub(/^(\t|\s)+<%/, '<%'), 0, '<>').result(binding)
5
6
  end
6
7
  end
7
8
  end
@@ -1,8 +1,9 @@
1
1
  module OffTheGrid
2
+ # A class to represent SGE Execute Hosts
2
3
  class ExecuteHost < Host
3
4
  # Get the list of SGE execute hosts
4
5
  def self.list
5
- `qconf -sel`.chomp.split("\n").sort.collect {|name| self.new(name) }
6
+ `qconf -sel`.chomp.split("\n").sort.collect { |name| new(name) }
6
7
  end
7
8
 
8
9
  def details
@@ -19,19 +20,19 @@ module OffTheGrid
19
20
 
20
21
  def processors
21
22
  value = extract_detail(:processors).last
22
- value.match(/[0-9]+/) ? Integer(value) : value
23
+ value =~ /[0-9]+/ ? Integer(value) : value
23
24
  end
24
25
 
25
26
  # very slow method for now
26
27
  def host_groups
27
- HostGroup.list.select {|group| group.hosts.include?(self) }
28
+ HostGroup.list.select { |group| group.hosts.include?(self) }
28
29
  end
29
30
 
30
31
  private
31
32
 
32
33
  # Add an SGE execution host
33
34
  def add
34
- # TODO construct a template
35
+ # TODO: construct a template
35
36
  Tempfile.open do |tmpfile|
36
37
  tmpfile.puts render(Templates::ExecuteHost::ERB)
37
38
  tmpfile.flush
@@ -1,11 +1,9 @@
1
1
  module OffTheGrid
2
+ # Handy helper methods for all Grid-related Resources
3
+ # Serves as a mixable base
2
4
  module GridResource
3
5
  include Comparable
4
6
 
5
- def initalize(name)
6
- @name = name
7
- end
8
-
9
7
  def self.list
10
8
  []
11
9
  end
@@ -15,21 +13,13 @@ module OffTheGrid
15
13
  end
16
14
 
17
15
  def save(safe = true)
18
- if safe
19
- raise "Validation Failed" unless validate_before_save
20
- add
21
- else
22
- add # don't bother checking if the resource exists
23
- end
16
+ raise 'Validation Failed' if safe && !validate_before_save
17
+ add
24
18
  end
25
19
 
26
20
  def delete(safe = true)
27
- if safe
28
- raise "Validation Failed" unless validate_before_delete
29
- remove
30
- else
31
- remove # don't bother checking if the resource exists
32
- end
21
+ raise 'Validation Failed' if safe && !validate_before_delete
22
+ remove
33
23
  end
34
24
 
35
25
  def extract_detail(detail, options = {})
@@ -38,11 +28,11 @@ module OffTheGrid
38
28
 
39
29
  values = []
40
30
  details.split("\n").each do |line|
41
- if values.size > 0
31
+ unless values.empty?
42
32
  # Add follow-up lines from the weird word-wrapped output
43
- line.match(/^( ){8}/) ? values << line : break
33
+ line =~ /^( ){8}/ ? values << line : break
44
34
  end
45
- values << line if line.match /^#{detail.to_s} /
35
+ values << line if line =~ /^#{detail.to_s} /
46
36
  end
47
37
  values.join
48
38
  .gsub(/(#{detail.to_s} |\\|\s{2,})/, '')
@@ -1,4 +1,5 @@
1
1
  module OffTheGrid
2
+ # A base class for all SGE Host-type classes
2
3
  class Host
3
4
  attr_reader :hostname
4
5
  include GridResource
@@ -12,7 +13,7 @@ module OffTheGrid
12
13
  end
13
14
 
14
15
  def name=(hname)
15
- hostname = hname
16
+ @hostname = hname
16
17
  end
17
18
  end
18
19
  end
@@ -1,11 +1,9 @@
1
1
  module OffTheGrid
2
- class HostGroup
3
- attr_reader :name
4
- include GridResource
5
-
2
+ # A class to represent SGE Host Groups
3
+ class HostGroup < NamedResource
6
4
  # Get the list of SGE host groups
7
5
  def self.list
8
- `qconf -shgrpl`.chomp.split("\n").sort.collect {|name| self.new(name)}
6
+ `qconf -shgrpl`.chomp.split("\n").sort.collect { |name| new(name) }
9
7
  end
10
8
 
11
9
  def details
@@ -17,10 +15,10 @@ module OffTheGrid
17
15
  end
18
16
 
19
17
  def hosts
20
- extract_detail(:hostlist).map {|host| ExecuteHost.new(host) }
18
+ extract_detail(:hostlist).map { |host| ExecuteHost.new(host) }
21
19
  end
22
20
 
23
- # TODO Adding a Host to a HostGroup...
21
+ # TODO: Adding a Host to a HostGroup...
24
22
 
25
23
  private
26
24
 
@@ -0,0 +1,12 @@
1
+ module OffTheGrid
2
+ # A base class for all resources keyed off of a #name attribute
3
+ class NamedResource
4
+ include GridResource
5
+
6
+ attr_reader :name
7
+
8
+ def initalize(name)
9
+ @name = name
10
+ end
11
+ end
12
+ end
@@ -1,11 +1,9 @@
1
1
  module OffTheGrid
2
- class Project
3
- attr_reader :name
4
- include GridResource
5
-
2
+ # A class to represent SGE Projects
3
+ class Project < NamedResource
6
4
  # Get the list of SGE projects
7
5
  def self.list
8
- `qconf -sprjl`.chomp.split("\n").sort.collect {|name| self.new(name) }
6
+ `qconf -sprjl`.chomp.split("\n").sort.collect { |name| new(name) }
9
7
  end
10
8
 
11
9
  def details
@@ -34,7 +32,7 @@ module OffTheGrid
34
32
 
35
33
  # Add an SGE project
36
34
  def add
37
- # TODO construct a template
35
+ # TODO: construct a template
38
36
  Tempfile.open do |tmpfile|
39
37
  tmpfile.puts render(Templates::Project::ERB)
40
38
  tmpfile.flush
@@ -1,8 +1,9 @@
1
1
  module OffTheGrid
2
+ # A class to represent SGE Submit Hosts
2
3
  class SubmitHost < Host
3
4
  # Get the list of SGE submit hosts
4
5
  def self.list
5
- `qconf -ss`.chomp.split("\n").sort.collect {|name| self.new(name)}
6
+ `qconf -ss`.chomp.split("\n").sort.collect { |name| new(name) }
6
7
  end
7
8
 
8
9
  private
@@ -1,7 +1,7 @@
1
1
  module OffTheGrid
2
2
  module Templates
3
3
  module ExecuteHost
4
- ERB = <<EOF
4
+ ERB = <<EOF.freeze
5
5
  hostname <%= @hostname %>
6
6
  load_scaling NONE
7
7
  complex_values NONE
@@ -1,7 +1,7 @@
1
1
  module OffTheGrid
2
2
  module Templates
3
3
  module Project
4
- ERB = <<EOF
4
+ ERB = <<EOF.freeze
5
5
  name <%= @name %>
6
6
  oticket 0
7
7
  fshare 0
@@ -1,7 +1,7 @@
1
1
  module OffTheGrid
2
2
  module Templates
3
3
  module User
4
- ERB = <<EOF
4
+ ERB = <<EOF.freeze
5
5
  name <%= @name %>
6
6
  oticket 0
7
7
  fshare 0
@@ -1,17 +1,14 @@
1
1
  module OffTheGrid
2
- class User
3
- attr_reader :name
4
-
5
- include GridResource
6
-
2
+ # A class to represent SGE Users
3
+ class User < NamedResource
7
4
  # Get the list of all SGE users
8
5
  def self.list
9
- `qconf -suserl`.chomp.split("\n").sort.collect {|name| self.new(name)}
6
+ `qconf -suserl`.chomp.split("\n").sort.collect { |name| new(name) }
10
7
  end
11
8
 
12
9
  # Get the list of admin users
13
10
  def self.admins
14
- `qconf -sm`.chomp.split("\n").sort.collect {|name| self.new(name)}
11
+ `qconf -sm`.chomp.split("\n").sort.collect { |name| new(name) }
15
12
  end
16
13
 
17
14
  # An alias for admins
@@ -21,29 +18,25 @@ module OffTheGrid
21
18
 
22
19
  # Get the list of operator users
23
20
  def self.operators
24
- `qconf -so`.chomp.split("\n").sort.collect {|name| self.new(name)}
21
+ `qconf -so`.chomp.split("\n").sort.collect { |name| new(name) }
25
22
  end
26
23
 
27
24
  def details
28
25
  `qconf -suser #{name}`.chomp
29
26
  end
30
27
 
31
- def default_project=(project)
32
- @default_project = project
33
- end
28
+ attr_writer :default_project
34
29
 
35
- def default_project
36
- @default_project
37
- end
30
+ attr_reader :default_project
38
31
 
39
32
  def admin?
40
33
  admins.include?(self)
41
34
  end
42
35
 
43
- alias_method :manager?, :admin?
36
+ alias manager? admin?
44
37
 
45
38
  def operator?
46
- # TODO learn more about the difference between "operator" and "manager"
39
+ # TODO: learn more about the difference between "operator" and "manager"
47
40
  # Maybe admins are always operators?
48
41
  operators.include?(self)
49
42
  end
@@ -1,5 +1,6 @@
1
+ # The base namespace for the OffTheGrid library
1
2
  module OffTheGrid
2
3
  def self.version
3
- '0.0.1'
4
+ '0.0.4'
4
5
  end
5
6
  end
data/lib/off_the_grid.rb CHANGED
@@ -9,6 +9,7 @@ require 'off_the_grid/templates/execute_host'
9
9
  require 'off_the_grid/templates/project'
10
10
  require 'off_the_grid/templates/user'
11
11
  require 'off_the_grid/grid_resource'
12
+ require 'off_the_grid/named_resource'
12
13
  require 'off_the_grid/host'
13
14
  require 'off_the_grid/host_group'
14
15
  require 'off_the_grid/access_list'
@@ -0,0 +1,38 @@
1
+ require_relative 'lib/off_the_grid/version'
2
+
3
+ # rubocop:disable Metrics/BlockLength
4
+ Gem::Specification.new do |s|
5
+ s.description = 'The Ruby library for interacting with Son of Grid Engine'
6
+ s.name = 'off_the_grid'
7
+ s.version = OffTheGrid.version.to_s
8
+ s.date = Time.now.strftime('%Y-%m-%d')
9
+ s.summary = 'Off The Grid can perform basic management tasks for SGE.'
10
+ s.authors = ['Jonathan Gnagy', 'Daniel Schaaff']
11
+ s.email = 'jgnagy@knuedge.com'
12
+ s.files = `git ls-files -z`.split("\x0").reject do |f|
13
+ f.match(%r{^(test|spec|features)/})
14
+ end
15
+
16
+ s.license = 'MIT'
17
+ s.platform = Gem::Platform::RUBY
18
+
19
+ s.required_ruby_version = '~> 2.2'
20
+ s.post_install_message = 'Thanks for installing Off The Grid!'
21
+ s.homepage = 'https://github.com/knuedge/off_the_grid'
22
+
23
+ s.bindir = 'exe'
24
+ s.executables = s.files.grep(%r{^exe/}) { |f| File.basename(f) }
25
+ s.require_paths = ['lib']
26
+
27
+ s.metadata['yard.run'] = 'yri'
28
+
29
+ # Dependencies
30
+
31
+ s.add_development_dependency 'bundler', '~> 1.12'
32
+ s.add_development_dependency 'rake', '~> 10.0'
33
+ s.add_development_dependency 'rspec', '~> 3.1'
34
+ s.add_development_dependency 'rubocop', '~> 0.35'
35
+ s.add_development_dependency 'yard', '~> 0.8'
36
+ s.add_development_dependency 'travis', '~> 1.8'
37
+ s.add_development_dependency 'simplecov'
38
+ end
metadata CHANGED
@@ -1,16 +1,44 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: off_the_grid
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jonathan Gnagy
8
8
  - Daniel Schaaff
9
9
  autorequire:
10
- bindir: bin
10
+ bindir: exe
11
11
  cert_chain: []
12
- date: 2016-10-30 00:00:00.000000000 Z
12
+ date: 2016-12-31 00:00:00.000000000 Z
13
13
  dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: bundler
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - "~>"
19
+ - !ruby/object:Gem::Version
20
+ version: '1.12'
21
+ type: :development
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - "~>"
26
+ - !ruby/object:Gem::Version
27
+ version: '1.12'
28
+ - !ruby/object:Gem::Dependency
29
+ name: rake
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - "~>"
33
+ - !ruby/object:Gem::Version
34
+ version: '10.0'
35
+ type: :development
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - "~>"
40
+ - !ruby/object:Gem::Version
41
+ version: '10.0'
14
42
  - !ruby/object:Gem::Dependency
15
43
  name: rspec
16
44
  requirement: !ruby/object:Gem::Requirement
@@ -53,13 +81,49 @@ dependencies:
53
81
  - - "~>"
54
82
  - !ruby/object:Gem::Version
55
83
  version: '0.8'
84
+ - !ruby/object:Gem::Dependency
85
+ name: travis
86
+ requirement: !ruby/object:Gem::Requirement
87
+ requirements:
88
+ - - "~>"
89
+ - !ruby/object:Gem::Version
90
+ version: '1.8'
91
+ type: :development
92
+ prerelease: false
93
+ version_requirements: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - "~>"
96
+ - !ruby/object:Gem::Version
97
+ version: '1.8'
98
+ - !ruby/object:Gem::Dependency
99
+ name: simplecov
100
+ requirement: !ruby/object:Gem::Requirement
101
+ requirements:
102
+ - - ">="
103
+ - !ruby/object:Gem::Version
104
+ version: '0'
105
+ type: :development
106
+ prerelease: false
107
+ version_requirements: !ruby/object:Gem::Requirement
108
+ requirements:
109
+ - - ">="
110
+ - !ruby/object:Gem::Version
111
+ version: '0'
56
112
  description: The Ruby library for interacting with Son of Grid Engine
57
113
  email: jgnagy@knuedge.com
58
114
  executables: []
59
115
  extensions: []
60
116
  extra_rdoc_files: []
61
117
  files:
118
+ - ".gitignore"
119
+ - ".rubocop.yml"
120
+ - ".travis.yml"
121
+ - CONTRIBUTING.md
122
+ - Gemfile
123
+ - Gemfile.lock
62
124
  - LICENSE
125
+ - README.md
126
+ - Rakefile
63
127
  - lib/off_the_grid.rb
64
128
  - lib/off_the_grid/access_list.rb
65
129
  - lib/off_the_grid/admin_host.rb
@@ -68,6 +132,7 @@ files:
68
132
  - lib/off_the_grid/grid_resource.rb
69
133
  - lib/off_the_grid/host.rb
70
134
  - lib/off_the_grid/host_group.rb
135
+ - lib/off_the_grid/named_resource.rb
71
136
  - lib/off_the_grid/project.rb
72
137
  - lib/off_the_grid/submit_host.rb
73
138
  - lib/off_the_grid/templates/execute_host.rb
@@ -75,10 +140,12 @@ files:
75
140
  - lib/off_the_grid/templates/user.rb
76
141
  - lib/off_the_grid/user.rb
77
142
  - lib/off_the_grid/version.rb
143
+ - off_the_grid.gemspec
78
144
  homepage: https://github.com/knuedge/off_the_grid
79
145
  licenses:
80
146
  - MIT
81
- metadata: {}
147
+ metadata:
148
+ yard.run: yri
82
149
  post_install_message: Thanks for installing Off The Grid!
83
150
  rdoc_options: []
84
151
  require_paths:
@@ -95,7 +162,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
95
162
  version: '0'
96
163
  requirements: []
97
164
  rubyforge_project:
98
- rubygems_version: 2.5.1
165
+ rubygems_version: 2.4.8
99
166
  signing_key:
100
167
  specification_version: 4
101
168
  summary: Off The Grid can perform basic management tasks for SGE.