drbqs 0.1.0 → 0.1.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.
- checksums.yaml +4 -4
- data/drbqs.gemspec +22 -23
- data/lib/drbqs.rb +1 -0
- data/lib/drbqs/command_line/command_ssh.rb +1 -0
- data/lib/drbqs/manage/manage.rb +6 -4
- data/lib/drbqs/manage/send_signal.rb +8 -0
- data/lib/drbqs/manage/ssh_execute.rb +31 -6
- data/lib/drbqs/manage/ssh_shell.rb +4 -3
- data/lib/drbqs/server/message.rb +11 -0
- data/lib/drbqs/server/server.rb +2 -0
- data/lib/drbqs/setting/ssh.rb +2 -1
- data/lib/drbqs/version.rb +1 -1
- data/spec/manage/send_signal_spec.rb +9 -0
- data/spec/server/message_spec.rb +17 -0
- metadata +28 -27
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cda668d2f4eb4adb76ec3bfa7a86f9259f6648ca
|
4
|
+
data.tar.gz: c292472af4ff45420dc7458cf9fd221cb91a3e20
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6b739f04e4e4f954b6bfe4de3f843787f1a2067c1201e52901d65f9076e0edd2e7b461ddcee5eb72087a7b84c4f52a5f2a7a19cfe5384483a209f6986aea69a1
|
7
|
+
data.tar.gz: a8fded1572bbc275f4db48ebe1577c07fdcc0e102fa55ef8e6b3cbf58799f18d9c2efff6ebfa9c0910ef837b8c3a28ceffe94bc759202514a5aead8e6eba99d1
|
data/drbqs.gemspec
CHANGED
@@ -2,30 +2,29 @@
|
|
2
2
|
$:.push File.expand_path("../lib", __FILE__)
|
3
3
|
require "drbqs/version"
|
4
4
|
|
5
|
-
Gem::Specification.new do |
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
5
|
+
Gem::Specification.new do |spec|
|
6
|
+
spec.name = "drbqs"
|
7
|
+
spec.version = DRbQS::VERSION
|
8
|
+
spec.authors = ["Takayuki YAMAGUCHI"]
|
9
|
+
spec.email = ["d@ytak.info"]
|
10
|
+
spec.homepage = ""
|
11
|
+
spec.summary = "dRuby Queueing System"
|
12
|
+
spec.description = "Task queuing system over network that is implemented by dRuby."
|
13
|
+
spec.license = "GPLv3"
|
13
14
|
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
19
|
-
s.require_paths = ["lib"]
|
15
|
+
spec.files = `git ls-files`.split("\n")
|
16
|
+
spec.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
17
|
+
spec.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
18
|
+
spec.require_paths = ["lib"]
|
20
19
|
|
21
20
|
# specify any dependencies here; for example:
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
21
|
+
spec.add_development_dependency "rspec", ">= 2.14.1"
|
22
|
+
spec.add_development_dependency "yard", ">= 0.7.2"
|
23
|
+
spec.add_runtime_dependency 'filename', '>= 0.1.0'
|
24
|
+
spec.add_runtime_dependency "user_config", ">= 0.0.2"
|
25
|
+
spec.add_runtime_dependency 'net-ssh', '>= 2.1.0'
|
26
|
+
spec.add_runtime_dependency 'net-ssh-shell', '>= 0.2.0'
|
27
|
+
spec.add_runtime_dependency "net-sftp", ">= 2.0.5"
|
28
|
+
spec.add_runtime_dependency "sys-proctable"
|
29
|
+
spec.add_runtime_dependency "activesupport"
|
31
30
|
end
|
data/lib/drbqs.rb
CHANGED
@@ -28,6 +28,7 @@ HELP
|
|
28
28
|
set(:rvm_init, '--rvm-init PATH', String, 'Path of script to initialize RVM over ssh.')
|
29
29
|
set(:output, '-o DIR', '--output DIR', String, 'Directory path that a server and nodes output.')
|
30
30
|
set(:nice, '--nice NUM', Integer, 'Set the value of nice for a server and nodes. The default is 10.')
|
31
|
+
set(:bundler, '--bundler', 'Use bundler to execute filename-create, drbqs-server, and drbqs-node.')
|
31
32
|
end
|
32
33
|
setting.set_argument(*args)
|
33
34
|
case setting.get_argument[0]
|
data/lib/drbqs/manage/manage.rb
CHANGED
@@ -57,20 +57,22 @@ module DRbQS
|
|
57
57
|
config.save_sample
|
58
58
|
end
|
59
59
|
|
60
|
-
[:get_status, :get_history, :send_exit_signal, :send_node_exit_after_task,
|
60
|
+
[:get_status, :get_response, :get_history, :send_exit_signal, :send_node_exit_after_task,
|
61
61
|
:send_node_wake, :send_node_sleep, :send_data].each do |method_name|
|
62
62
|
def_delegator :signal_sender, method_name, method_name
|
63
63
|
end
|
64
64
|
|
65
65
|
def server_respond?
|
66
|
+
ret = nil
|
66
67
|
begin
|
67
|
-
|
68
|
-
|
68
|
+
if get_response
|
69
|
+
ret = true
|
70
|
+
end
|
69
71
|
rescue DRbQS::Manage::NotSetURI
|
70
72
|
raise
|
71
73
|
rescue
|
72
|
-
nil
|
73
74
|
end
|
75
|
+
ret
|
74
76
|
end
|
75
77
|
|
76
78
|
# If the server responds, this method returns true.
|
@@ -3,10 +3,27 @@ require 'drbqs/manage/ssh_shell'
|
|
3
3
|
module DRbQS
|
4
4
|
class Manage
|
5
5
|
class SSHExecute
|
6
|
+
COMMAND_NICE = "nice"
|
7
|
+
COMMAND_DRBQS_SERVER = "drbqs-server"
|
8
|
+
COMMAND_DRBQS_NODE = "drbqs-node"
|
9
|
+
COMMAND_FILENAME_CREATE = "filename-create"
|
10
|
+
|
11
|
+
# @param [String] dest Destination name
|
12
|
+
# @param [Hash] opts Option hash
|
13
|
+
# @option opts [boolean] :bundler Use bundler to execute commands: filename-create, drbqs-server, and drbqs-node
|
14
|
+
# @option opts [String] :shell Same as options DRbQS::Manage::SSHShell
|
15
|
+
# @option opts [String] :keys Same as options DRbQS::Manage::SSHShell
|
16
|
+
# @option opts [IO] :io Same as options DRbQS::Manage::SSHShell
|
17
|
+
# @option opts [String] :directory Same as options DRbQS::Manage::SSHShell
|
18
|
+
# @option opts [String] :rvm Same as options DRbQS::Manage::SSHShell
|
19
|
+
# @option opts [String] :rvm_init Same as options DRbQS::Manage::SSHShell
|
20
|
+
# @option opts [Hash] :env Same as options DRbQS::Manage::SSHShell
|
6
21
|
def initialize(dest, opts = {})
|
7
22
|
@ssh_host = DRbQS::Config.new.ssh_host
|
23
|
+
opts = opts.dup
|
8
24
|
path, options = @ssh_host.get_options(dest)
|
9
25
|
dest = options.delete(:dest) || dest
|
26
|
+
@bundler = opts.delete(:bundler)
|
10
27
|
@ssh_shell = DRbQS::Manage::SSHShell.new(dest, options.merge(opts))
|
11
28
|
end
|
12
29
|
|
@@ -18,20 +35,28 @@ module DRbQS
|
|
18
35
|
@ssh_shell.get_environment
|
19
36
|
end
|
20
37
|
|
38
|
+
# Add "bundle exec" if \@bundler is true
|
39
|
+
def command_ruby(cmd)
|
40
|
+
if @bundler
|
41
|
+
cmd = "bundle exec #{cmd}"
|
42
|
+
end
|
43
|
+
cmd
|
44
|
+
end
|
45
|
+
private :command_ruby
|
46
|
+
|
21
47
|
# Keys are :nice and :daemon.
|
22
48
|
def add_command_options(cmd, daemon, nice)
|
49
|
+
s = ''
|
23
50
|
if nice
|
24
|
-
s
|
51
|
+
s << "nice "
|
25
52
|
s << "-n #{nice.to_s} " if Integer === nice
|
26
|
-
else
|
27
|
-
s = ''
|
28
53
|
end
|
29
54
|
s << cmd << " --daemon " << daemon
|
30
55
|
end
|
31
56
|
private :add_command_options
|
32
57
|
|
33
58
|
def create_new_directory(sh, dir)
|
34
|
-
process, result = sh.exec("
|
59
|
+
process, result = sh.exec("#{command_ruby(COMMAND_FILENAME_CREATE)} new -a always -D self -t time #{dir}", :check => true)
|
35
60
|
result.strip!
|
36
61
|
end
|
37
62
|
private :create_new_directory
|
@@ -41,7 +66,7 @@ module DRbQS
|
|
41
66
|
ret = nil
|
42
67
|
@ssh_shell.start do |sh|
|
43
68
|
dir = create_new_directory(sh, opts[:daemon] || 'drbqs_server_log')
|
44
|
-
cmd = add_command_options(
|
69
|
+
cmd = add_command_options(command_ruby(COMMAND_DRBQS_SERVER), File.join(dir, 'daemon_server.log'), opts[:nice])
|
45
70
|
cmd << " --log-file " << File.join(dir, 'server.log') << ' '
|
46
71
|
cmd << cmd_options.join(' ')
|
47
72
|
process, result = sh.exec(cmd)
|
@@ -55,7 +80,7 @@ module DRbQS
|
|
55
80
|
ret = nil
|
56
81
|
@ssh_shell.start do |sh|
|
57
82
|
dir = create_new_directory(sh, opts[:daemon] || 'drbqs_node_log')
|
58
|
-
cmd = add_command_options(
|
83
|
+
cmd = add_command_options(command_ruby(COMMAND_DRBQS_NODE), File.join(dir, 'daemon_node.log'), opts[:nice])
|
59
84
|
cmd << ' --log-prefix ' << File.join(dir, 'node') << ' ' << cmd_options.join(' ')
|
60
85
|
process, result = sh.exec(cmd)
|
61
86
|
ret = (process.exit_status == 0)
|
@@ -63,19 +63,20 @@ module DRbQS
|
|
63
63
|
# @option opts [String] :shell The shell to use.
|
64
64
|
# @option opts [String] :keys Path of a ssh key.
|
65
65
|
# @option opts [IO] :io IO to output results of commands.
|
66
|
-
# @option opts [Hash] :env Same as options DRbQS::Manage::SSHShell::RubyEnvironment.
|
67
66
|
# @option opts [String] :directory Same as options DRbQS::Manage::SSHShell::RubyEnvironment.
|
68
67
|
# @option opts [String] :rvm Same as options DRbQS::Manage::SSHShell::RubyEnvironment.
|
69
68
|
# @option opts [String] :rvm_init Same as options DRbQS::Manage::SSHShell::RubyEnvironment.
|
69
|
+
# @option opts [Hash] :env Same as options DRbQS::Manage::SSHShell::RubyEnvironment.
|
70
70
|
def initialize(dest, opts = {})
|
71
71
|
@user, @host, @port = split_destination(dest)
|
72
72
|
if !(@host && @user)
|
73
73
|
raise ArgumentError, "Invalid ssh server: host=#{@host.inspect}, user=#{@user.inspect}."
|
74
74
|
end
|
75
|
+
opts = opts.dup
|
75
76
|
@keys = opts.delete(:keys)
|
76
77
|
@shell = opts.delete(:shell) || DEFAULT_SHELL
|
77
|
-
@
|
78
|
-
@
|
78
|
+
@out = opts.delete(:io)
|
79
|
+
@ruby_environment = DRbQS::Manage::SSHShell::RubyEnvironment.new(opts.slice(:directory, :rvm, :rvm_init, :env))
|
79
80
|
@ssh = nil
|
80
81
|
end
|
81
82
|
|
data/lib/drbqs/server/message.rb
CHANGED
@@ -49,6 +49,9 @@ module DRbQS
|
|
49
49
|
return [mes, arg]
|
50
50
|
when :request_status
|
51
51
|
@logger.info("Get status request from #{arg.to_s}")
|
52
|
+
when :request_response
|
53
|
+
@logger.info("Get respond request from #{arg[0].to_s} at #{arg[1].to_s}")
|
54
|
+
return [mes, arg]
|
52
55
|
when :request_history
|
53
56
|
@logger.info("Get history request from #{arg.to_s}")
|
54
57
|
when :sleep_node
|
@@ -130,6 +133,14 @@ module DRbQS
|
|
130
133
|
@message.write([:status, server_status_string])
|
131
134
|
end
|
132
135
|
|
136
|
+
def send_only_response(sender_id, request_time)
|
137
|
+
begin
|
138
|
+
@message.take([:response, sender_id, nil], 0)
|
139
|
+
rescue Rinda::RequestExpiredError
|
140
|
+
end
|
141
|
+
@message.write([:response, sender_id, request_time])
|
142
|
+
end
|
143
|
+
|
133
144
|
def send_history(history_string)
|
134
145
|
begin
|
135
146
|
@message.take([:history, nil], 0)
|
data/lib/drbqs/server/server.rb
CHANGED
data/lib/drbqs/setting/ssh.rb
CHANGED
@@ -10,6 +10,7 @@ module DRbQS
|
|
10
10
|
[:directory, :shell, :rvm, :rvm_init, :output, :connect].each do |key|
|
11
11
|
register_key(key, :check => 1)
|
12
12
|
end
|
13
|
+
register_key(:bundler, :bool => true)
|
13
14
|
register_key(:nice, :check => 1, :default => [10])
|
14
15
|
set_argument_condition(:>=, 0)
|
15
16
|
end
|
@@ -66,7 +67,7 @@ module DRbQS
|
|
66
67
|
# this method raises an error.
|
67
68
|
def parse!
|
68
69
|
super
|
69
|
-
[:directory, :shell, :rvm, :rvm_init, :nice].each do |key|
|
70
|
+
[:directory, :shell, :rvm, :rvm_init, :nice, :bundler].each do |key|
|
70
71
|
if val = get_first(key)
|
71
72
|
@options[key] = val
|
72
73
|
end
|
data/lib/drbqs/version.rb
CHANGED
@@ -44,4 +44,13 @@ describe DRbQS::Manage::SendSignal do
|
|
44
44
|
@ts.take([:server, :new_data, data], 0)
|
45
45
|
end.should_not raise_error
|
46
46
|
end
|
47
|
+
|
48
|
+
it "should send request of response." do
|
49
|
+
t = Time.now
|
50
|
+
Time.should_receive(:now).and_return(t)
|
51
|
+
sender_id = @send_signal.sender_id
|
52
|
+
@ts.should_receive(:write).with([:server, :request_response, [sender_id, t]])
|
53
|
+
@ts.should_receive(:take).once.and_return([:response, [sender_id, t]])
|
54
|
+
@send_signal.get_response
|
55
|
+
end
|
47
56
|
end
|
data/spec/server/message_spec.rb
CHANGED
@@ -62,6 +62,13 @@ describe DRbQS::Server::Message do
|
|
62
62
|
@message_server.get_message.should == [:request_status]
|
63
63
|
end
|
64
64
|
|
65
|
+
it "should get :request_response message" do
|
66
|
+
t = Time.now
|
67
|
+
sender_id = "sender_id"
|
68
|
+
@message.write([:server, :request_response, [sender_id, t]])
|
69
|
+
@message_server.get_message.should == [:request_response, [sender_id, t]]
|
70
|
+
end
|
71
|
+
|
65
72
|
it "should get :node_error message" do
|
66
73
|
node_id = 74
|
67
74
|
@message.write([:server, :node_error, [node_id, 'Error occurs.']])
|
@@ -115,6 +122,16 @@ describe DRbQS::Server::Message do
|
|
115
122
|
status.should be_an_instance_of String
|
116
123
|
end
|
117
124
|
|
125
|
+
it "should send only response" do
|
126
|
+
sender_id = "sender_id"
|
127
|
+
t = Time.now
|
128
|
+
@message_server.send_only_response(sender_id, t)
|
129
|
+
sym, sender_id2, t2 = @message.take([:response, sender_id, nil])
|
130
|
+
sym.should == :response
|
131
|
+
sender_id2.should == sender_id
|
132
|
+
t2.should == t
|
133
|
+
end
|
134
|
+
|
118
135
|
after(:all) do
|
119
136
|
clear_all_node
|
120
137
|
end
|
metadata
CHANGED
@@ -1,139 +1,139 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: drbqs
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Takayuki YAMAGUCHI
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-
|
11
|
+
date: 2013-11-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: 2.14.1
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: 2.14.1
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: yard
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: 0.7.2
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: 0.7.2
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: filename
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: 0.1.0
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: 0.1.0
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: user_config
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - ">="
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: 0.0.2
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- -
|
66
|
+
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: 0.0.2
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: net-ssh
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- -
|
73
|
+
- - ">="
|
74
74
|
- !ruby/object:Gem::Version
|
75
75
|
version: 2.1.0
|
76
76
|
type: :runtime
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- -
|
80
|
+
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: 2.1.0
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: net-ssh-shell
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
|
-
- -
|
87
|
+
- - ">="
|
88
88
|
- !ruby/object:Gem::Version
|
89
89
|
version: 0.2.0
|
90
90
|
type: :runtime
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
|
-
- -
|
94
|
+
- - ">="
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: 0.2.0
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
name: net-sftp
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
|
-
- -
|
101
|
+
- - ">="
|
102
102
|
- !ruby/object:Gem::Version
|
103
103
|
version: 2.0.5
|
104
104
|
type: :runtime
|
105
105
|
prerelease: false
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
|
-
- -
|
108
|
+
- - ">="
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: 2.0.5
|
111
111
|
- !ruby/object:Gem::Dependency
|
112
112
|
name: sys-proctable
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
114
114
|
requirements:
|
115
|
-
- -
|
115
|
+
- - ">="
|
116
116
|
- !ruby/object:Gem::Version
|
117
117
|
version: '0'
|
118
118
|
type: :runtime
|
119
119
|
prerelease: false
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
121
121
|
requirements:
|
122
|
-
- -
|
122
|
+
- - ">="
|
123
123
|
- !ruby/object:Gem::Version
|
124
124
|
version: '0'
|
125
125
|
- !ruby/object:Gem::Dependency
|
126
126
|
name: activesupport
|
127
127
|
requirement: !ruby/object:Gem::Requirement
|
128
128
|
requirements:
|
129
|
-
- -
|
129
|
+
- - ">="
|
130
130
|
- !ruby/object:Gem::Version
|
131
131
|
version: '0'
|
132
132
|
type: :runtime
|
133
133
|
prerelease: false
|
134
134
|
version_requirements: !ruby/object:Gem::Requirement
|
135
135
|
requirements:
|
136
|
-
- -
|
136
|
+
- - ">="
|
137
137
|
- !ruby/object:Gem::Version
|
138
138
|
version: '0'
|
139
139
|
description: Task queuing system over network that is implemented by dRuby.
|
@@ -148,9 +148,9 @@ executables:
|
|
148
148
|
extensions: []
|
149
149
|
extra_rdoc_files: []
|
150
150
|
files:
|
151
|
-
- .gitignore
|
152
|
-
- .rspec
|
153
|
-
- .yardopts
|
151
|
+
- ".gitignore"
|
152
|
+
- ".rspec"
|
153
|
+
- ".yardopts"
|
154
154
|
- Gemfile
|
155
155
|
- LICENSE.txt
|
156
156
|
- README.md
|
@@ -323,7 +323,8 @@ files:
|
|
323
323
|
- spec/worker/worker_process_set_spec.rb
|
324
324
|
- spec/worker/worker_spec.rb
|
325
325
|
homepage: ''
|
326
|
-
licenses:
|
326
|
+
licenses:
|
327
|
+
- GPLv3
|
327
328
|
metadata: {}
|
328
329
|
post_install_message:
|
329
330
|
rdoc_options: []
|
@@ -331,16 +332,16 @@ require_paths:
|
|
331
332
|
- lib
|
332
333
|
required_ruby_version: !ruby/object:Gem::Requirement
|
333
334
|
requirements:
|
334
|
-
- -
|
335
|
+
- - ">="
|
335
336
|
- !ruby/object:Gem::Version
|
336
337
|
version: '0'
|
337
338
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
338
339
|
requirements:
|
339
|
-
- -
|
340
|
+
- - ">="
|
340
341
|
- !ruby/object:Gem::Version
|
341
342
|
version: '0'
|
342
343
|
requirements: []
|
343
|
-
rubyforge_project:
|
344
|
+
rubyforge_project:
|
344
345
|
rubygems_version: 2.0.3
|
345
346
|
signing_key:
|
346
347
|
specification_version: 4
|