off_the_grid 0.0.1 → 0.0.4

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.
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.