netsoul 2.4.5 → 2.5.0
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/.travis.yml +3 -4
- data/.versions.conf +1 -1
- data/Gemfile +1 -1
- data/Rakefile +6 -6
- data/bin/netsoul-ruby +11 -11
- data/ext/netsoul_kerberos/extconf.rb +7 -7
- data/lib/netsoul/client.rb +7 -7
- data/lib/netsoul/config.rb +7 -7
- data/lib/netsoul/logging.rb +1 -1
- data/lib/netsoul/message.rb +42 -42
- data/lib/netsoul/version.rb +1 -1
- data/netsoul.gemspec +21 -21
- metadata +11 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4e5416b8bd85d9a4c1b4d07f37d5324f3d71ca7b
|
4
|
+
data.tar.gz: d1d8ffa84fc7f46e83677d54f905ab77fc1f4d6c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1a0410aa83734c72fcc5506b45526e40aa765438ee6efd84ea5b47ff4befb059f9d4c49249b8194e9704c6fd0928006f014e35544fa03e5cad9303de25a3c1ae
|
7
|
+
data.tar.gz: 97c82221c5f18b170671b17a8b3a95ffe52bf18682c26fda481c2a2c87b767bac5cf09228e056151abca3e50405efe0c7de29e306233a941c3eccd8350b4c33a
|
data/.travis.yml
CHANGED
data/.versions.conf
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
ruby=2.
|
1
|
+
ruby=2.4.0
|
2
2
|
ruby-gemset=netsoul
|
data/Gemfile
CHANGED
data/Rakefile
CHANGED
@@ -4,17 +4,17 @@ require 'bundler/gem_tasks'
|
|
4
4
|
require 'rspec/core/rake_task'
|
5
5
|
require 'yard'
|
6
6
|
|
7
|
-
RSpec::Core::RakeTask.new('spec'
|
7
|
+
RSpec::Core::RakeTask.new('spec')
|
8
8
|
|
9
9
|
task default: :spec
|
10
10
|
|
11
11
|
require 'rake/extensiontask'
|
12
|
-
Rake::ExtensionTask.new 'netsoul_kerberos'
|
13
|
-
ext.lib_dir = 'lib'
|
12
|
+
Rake::ExtensionTask.new 'netsoul_kerberos' do |ext|
|
13
|
+
ext.lib_dir = 'lib'
|
14
14
|
end
|
15
15
|
|
16
|
-
desc 'Generate documentation'
|
16
|
+
desc 'Generate documentation'
|
17
17
|
YARD::Rake::YardocTask.new do |t|
|
18
|
-
t.files = %w(lib/**/*.rb - LICENSE.txt).map(&:freeze)
|
19
|
-
t.options = %w(--main README.md --no-private --protected).map(&:freeze)
|
18
|
+
t.files = %w(lib/**/*.rb - LICENSE.txt).map(&:freeze)
|
19
|
+
t.options = %w(--main README.md --no-private --protected).map(&:freeze)
|
20
20
|
end
|
data/bin/netsoul-ruby
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
# frozen_string_literal: true
|
3
3
|
|
4
|
-
lib = File.join(File.dirname(File.realpath(__FILE__)), '..'
|
4
|
+
lib = File.join(File.dirname(File.realpath(__FILE__)), '..', 'lib')
|
5
5
|
$LOAD_PATH.unshift File.expand_path(lib)
|
6
6
|
|
7
7
|
require 'netsoul/client'
|
@@ -9,20 +9,20 @@ require 'netsoul/client'
|
|
9
9
|
require 'optparse'
|
10
10
|
require 'yaml'
|
11
11
|
|
12
|
-
process_name_string = "#{__FILE__} #{ARGV.join(' '
|
12
|
+
process_name_string = "#{__FILE__} #{ARGV.join(' ')}"
|
13
13
|
Process.respond_to?(:setproctitle) ? Process.setproctitle(process_name_string) : $PROGRAM_NAME = process_name_string
|
14
14
|
|
15
15
|
options = {}
|
16
16
|
OptionParser.new do |opts|
|
17
|
-
opts.banner = 'Usage: netsoul-ruby [options]'
|
18
|
-
opts.separator ''
|
19
|
-
opts.separator 'Netsoul-Ruby options:'
|
17
|
+
opts.banner = 'Usage: netsoul-ruby [options]'
|
18
|
+
opts.separator ''
|
19
|
+
opts.separator 'Netsoul-Ruby options:'
|
20
20
|
|
21
|
-
opts.on('-c'
|
21
|
+
opts.on('-c', '--config FILE', 'Configuration file in YAML') do |file|
|
22
22
|
options[:user_opts] = YAML.load_file(file) if File.file?(file)
|
23
23
|
end
|
24
24
|
|
25
|
-
opts.on('-h'
|
25
|
+
opts.on('-h', '--help', 'Display this screen') do
|
26
26
|
puts opts
|
27
27
|
exit 42
|
28
28
|
end
|
@@ -30,16 +30,16 @@ end.parse!
|
|
30
30
|
|
31
31
|
if options.empty? || options[:user_opts].size == 0
|
32
32
|
unless ENV.to_a.count { |k, _v| %w(NETSOUL_LOGIN NETSOUL_SOCKS_PASSWORD NETSOUL_LOGIN NETSOUL_UNIX_PASSWORD NETSOUL_AUTH_METHOD).include?(k) } >= 2
|
33
|
-
puts '[ERROR] You have to specify a configuration file or environment variables'
|
33
|
+
puts '[ERROR] You have to specify a configuration file or environment variables'
|
34
34
|
exit 42
|
35
35
|
end
|
36
36
|
end
|
37
37
|
|
38
38
|
def trap_interrupt(client)
|
39
|
-
Signal.trap('INT'
|
39
|
+
Signal.trap('INT') do
|
40
40
|
exit 42 unless client.started
|
41
41
|
begin client.disconnect; end
|
42
|
-
puts '!!! [SIGINT] !!!'
|
42
|
+
puts '!!! [SIGINT] !!!'
|
43
43
|
exit 42
|
44
44
|
end
|
45
45
|
end
|
@@ -59,7 +59,7 @@ begin
|
|
59
59
|
retry_wait_time = 1.0
|
60
60
|
loop do
|
61
61
|
res = c.get
|
62
|
-
res != 'nothing'
|
62
|
+
res != 'nothing' ? log(:info, "[get ] #{res}") : log(:warn, '[get ] (<was empty!!!>)')
|
63
63
|
if res.to_s.match(/^ping.*/)
|
64
64
|
c.send res
|
65
65
|
log :info, "[send] #{res}"
|
@@ -2,11 +2,11 @@
|
|
2
2
|
|
3
3
|
require 'mkmf'
|
4
4
|
|
5
|
-
have_library('krb5'
|
6
|
-
have_library('gssapi_krb5'
|
7
|
-
have_header('string.h'
|
8
|
-
have_header('krb5.h'
|
9
|
-
have_header('gssapi/gssapi.h'
|
10
|
-
have_header('gssapi/gssapi_krb5.h'
|
5
|
+
have_library('krb5', 'krb5_init_context')
|
6
|
+
have_library('gssapi_krb5', 'gss_init_sec_context')
|
7
|
+
have_header('string.h')
|
8
|
+
have_header('krb5.h')
|
9
|
+
have_header('gssapi/gssapi.h')
|
10
|
+
have_header('gssapi/gssapi_krb5.h')
|
11
11
|
|
12
|
-
create_makefile('netsoul_kerberos'
|
12
|
+
create_makefile('netsoul_kerberos')
|
data/lib/netsoul/client.rb
CHANGED
@@ -17,7 +17,7 @@ module Netsoul
|
|
17
17
|
|
18
18
|
def auth_ag
|
19
19
|
send(Message.auth_ag)
|
20
|
-
raise Netsoul::IdentificationError, 'Identification failed.'
|
20
|
+
raise Netsoul::IdentificationError, 'Identification failed.' unless get.split(' ')[1] == '002'
|
21
21
|
end
|
22
22
|
private :auth_ag
|
23
23
|
|
@@ -27,8 +27,8 @@ module Netsoul
|
|
27
27
|
else
|
28
28
|
send(Message.standard_auth(@config))
|
29
29
|
end
|
30
|
-
raise Netsoul::AuthenticationError, 'Authentication failed. See your config file or environment variables'
|
31
|
-
unless get.split(' '
|
30
|
+
raise Netsoul::AuthenticationError, 'Authentication failed. See your config file or environment variables' \
|
31
|
+
unless get.split(' ')[1] == '002'
|
32
32
|
end
|
33
33
|
private :auth_method
|
34
34
|
|
@@ -40,7 +40,7 @@ module Netsoul
|
|
40
40
|
|
41
41
|
def connect
|
42
42
|
@socket = TCPSocket.new(@config.server_host, @config.server_port)
|
43
|
-
raise Netsoul::SocketError, 'Could not open a socket. Connection is unavailable.'
|
43
|
+
raise Netsoul::SocketError, 'Could not open a socket. Connection is unavailable.' unless @socket
|
44
44
|
_cmd, _socket_num, md5_hash, client_ip, client_port, _server_timestamp = get.split
|
45
45
|
|
46
46
|
@config.build_user_connection_info md5_hash: md5_hash, client_ip: client_ip, client_port: client_port
|
@@ -62,7 +62,7 @@ module Netsoul
|
|
62
62
|
def send(str)
|
63
63
|
_, sock = IO.select(nil, [@socket], nil, SOCKET_WRITE_TIMEOUT)
|
64
64
|
s = sock.first
|
65
|
-
raise Netsoul::SocketError, 'Timeout or raise on write socket'
|
65
|
+
raise Netsoul::SocketError, 'Timeout or raise on write socket' unless s
|
66
66
|
s.puts str
|
67
67
|
s.flush
|
68
68
|
end
|
@@ -70,12 +70,12 @@ module Netsoul
|
|
70
70
|
def get
|
71
71
|
sock, = IO.select([@socket], nil, nil, SOCKET_READ_TIMEOUT)
|
72
72
|
s = sock.first
|
73
|
-
raise Netsoul::SocketError, 'Timeout or raise on read socket'
|
73
|
+
raise Netsoul::SocketError, 'Timeout or raise on read socket' unless s
|
74
74
|
res = s.gets.chomp
|
75
75
|
if !res.empty?
|
76
76
|
res
|
77
77
|
else
|
78
|
-
'nothing'
|
78
|
+
'nothing' # Send some string and permit IO.select to thrown exception if something goes wrong.
|
79
79
|
end
|
80
80
|
end
|
81
81
|
|
data/lib/netsoul/config.rb
CHANGED
@@ -34,18 +34,18 @@ module Netsoul
|
|
34
34
|
#
|
35
35
|
# rubocop:disable all
|
36
36
|
def initialize(opts = {})
|
37
|
-
@server_host = ENV['NETSOUL_SERVER_HOST'] || opts.fetch(:server_host, 'ns-server.epita.fr'
|
37
|
+
@server_host = ENV['NETSOUL_SERVER_HOST'] || opts.fetch(:server_host, 'ns-server.epita.fr')
|
38
38
|
@server_port = Integer(ENV['NETSOUL_SERVER_PORT'] || opts.fetch(:server_port, 4242))
|
39
|
-
@login = ENV['NETSOUL_LOGIN'] || opts.fetch(:login, 'ionis'
|
40
|
-
@socks_password = ENV['NETSOUL_SOCKS_PASSWORD'] || opts.fetch(:socks_password, 'socks_password'
|
41
|
-
@unix_password = ENV['NETSOUL_UNIX_PASSWORD'] || opts.fetch(:unix_password, 'unix_password'
|
39
|
+
@login = ENV['NETSOUL_LOGIN'] || opts.fetch(:login, 'ionis')
|
40
|
+
@socks_password = ENV['NETSOUL_SOCKS_PASSWORD'] || opts.fetch(:socks_password, 'socks_password')
|
41
|
+
@unix_password = ENV['NETSOUL_UNIX_PASSWORD'] || opts.fetch(:unix_password, 'unix_password')
|
42
42
|
@auth_method = (ENV['NETSOUL_AUTH_METHOD'] || (AUTH_METHODS.include?(opts[:auth_method]) ? opts[:auth_method] : :std)).to_sym
|
43
43
|
@state = (ENV['NETSOUL_STATE'] || (USER_STATES.include?(opts[:state]) ? opts[:state] : :none)).to_sym
|
44
|
-
@location = ENV['NETSOUL_LOCATION'] || opts.fetch(:location, 'Home'
|
45
|
-
@user_group = ENV['NETSOUL_USER_GROUP'] || opts.fetch(:user_group, 'ETNA_2008'
|
44
|
+
@location = ENV['NETSOUL_LOCATION'] || opts.fetch(:location, 'Home')
|
45
|
+
@user_group = ENV['NETSOUL_USER_GROUP'] || opts.fetch(:user_group, 'ETNA_2008')
|
46
46
|
@user_connection_info = {}
|
47
47
|
|
48
|
-
@client_name = ENV['NETSOUL_CLIENT_NAME'] || opts.fetch(:client_name, "(Netsoul-Ruby v#{Netsoul::VERSION}) -> { Christian Kakesa, since 2009}"
|
48
|
+
@client_name = ENV['NETSOUL_CLIENT_NAME'] || opts.fetch(:client_name, "(Netsoul-Ruby v#{Netsoul::VERSION}) -> { Christian Kakesa, since 2009}")
|
49
49
|
end
|
50
50
|
# rubocop:enable all
|
51
51
|
|
data/lib/netsoul/logging.rb
CHANGED
@@ -16,7 +16,7 @@ module Netsoul
|
|
16
16
|
$stdout.sync = true
|
17
17
|
logger.level = Logger::INFO
|
18
18
|
logger.formatter = proc do |severity, datetime, _progname, msg|
|
19
|
-
"#{severity} [#{datetime.strftime('%Y-%m-%d %H:%M:%S.%L'
|
19
|
+
"#{severity} [#{datetime.strftime('%Y-%m-%d %H:%M:%S.%L')}] #{msg}\n"
|
20
20
|
end
|
21
21
|
end
|
22
22
|
end
|
data/lib/netsoul/message.rb
CHANGED
@@ -16,7 +16,7 @@ module Netsoul
|
|
16
16
|
|
17
17
|
def standard_auth(config)
|
18
18
|
client_ip = config.user_connection_info[:client_ip]
|
19
|
-
location = Message._escape(Location.get(client_ip) == 'ext'
|
19
|
+
location = Message._escape(Location.get(client_ip) == 'ext' ? config.location : Location.get(client_ip))
|
20
20
|
client_name = Message._escape(config.client_name)
|
21
21
|
"ext_user_log #{config.login} #{_standard_auth_string(config)} #{client_name} #{location}"
|
22
22
|
end
|
@@ -39,14 +39,14 @@ module Netsoul
|
|
39
39
|
|
40
40
|
def kerberos_auth(config)
|
41
41
|
unless _kerberos_get.build_token(config.login, config.unix_password)
|
42
|
-
raise Netsoul::Error, 'Impossible to retrieve the kerberos token.'
|
42
|
+
raise Netsoul::Error, 'Impossible to retrieve the kerberos token.'
|
43
43
|
end
|
44
44
|
_kerberos_auth_klog(config)
|
45
45
|
end
|
46
46
|
# :nocov:
|
47
47
|
|
48
48
|
def auth_ag
|
49
|
-
'auth_ag ext_user none none'
|
49
|
+
'auth_ag ext_user none none'
|
50
50
|
end
|
51
51
|
|
52
52
|
def send_message(user, msg)
|
@@ -74,7 +74,7 @@ module Netsoul
|
|
74
74
|
end
|
75
75
|
|
76
76
|
def attach
|
77
|
-
'user_cmd attach'
|
77
|
+
'user_cmd attach'
|
78
78
|
end
|
79
79
|
|
80
80
|
def user_state(state, timestamp)
|
@@ -102,16 +102,16 @@ module Netsoul
|
|
102
102
|
end
|
103
103
|
|
104
104
|
def ping
|
105
|
-
'pong'
|
105
|
+
'pong'
|
106
106
|
end
|
107
107
|
|
108
108
|
def ns_exit
|
109
|
-
'exit'
|
109
|
+
'exit'
|
110
110
|
end
|
111
111
|
|
112
112
|
def _escape(str)
|
113
|
-
str = URI.escape(str, Regexp.new("#{URI::PATTERN::ALNUM}[:graph:][:punct:][:cntrl:][:print:][:blank:]", false, 'N'
|
114
|
-
URI.escape(str, Regexp.new("[^#{URI::PATTERN::ALNUM}]", false, 'N'
|
113
|
+
str = URI.escape(str, Regexp.new("#{URI::PATTERN::ALNUM}[:graph:][:punct:][:cntrl:][:print:][:blank:]", false, 'N'))
|
114
|
+
URI.escape(str, Regexp.new("[^#{URI::PATTERN::ALNUM}]", false, 'N'))
|
115
115
|
end
|
116
116
|
|
117
117
|
def _unescape(str)
|
@@ -126,45 +126,45 @@ module Netsoul
|
|
126
126
|
locations.each do |key, val|
|
127
127
|
return key.to_s if ip =~ /^#{val}/
|
128
128
|
end
|
129
|
-
'ext'
|
129
|
+
'ext'
|
130
130
|
end
|
131
131
|
|
132
132
|
# rubocop:disable all
|
133
133
|
def locations
|
134
134
|
@locations ||= {
|
135
|
-
:'lab-cisco-mid-sr' => '10.251.'
|
136
|
-
etna: '10.245.'
|
137
|
-
lse: '10.227.42.'
|
138
|
-
:'sda-1' => '10.227.4.'
|
139
|
-
lab: '10.227.'
|
140
|
-
:'lab-tcom' => '10.226.7.'
|
141
|
-
:'lab-acu' => '10.226.6.'
|
142
|
-
:'lab-console' => '10.226.5.'
|
143
|
-
:'lab-mspe' => '10.226.'
|
144
|
-
epitanim: '10.225.19.'
|
145
|
-
epidemic: '10.225.18.'
|
146
|
-
:'sda-2' => '10.225.10.'
|
147
|
-
cycom: '10.225.8.'
|
148
|
-
epx: '10.225.7.'
|
149
|
-
prologin: '10.225.6.'
|
150
|
-
nomad: '10.225.2.'
|
151
|
-
assos: '10.225.'
|
152
|
-
sda: '10.224.14.'
|
153
|
-
www: '10.223.106.'
|
154
|
-
episport: '10.223.104.'
|
155
|
-
epicom: '10.223.103.'
|
156
|
-
:'bde-epita' => '10.223.100.'
|
157
|
-
omatis: '10.223.42.'
|
158
|
-
ipsa: '10.223.15.'
|
159
|
-
lrde: '10.223.13.'
|
160
|
-
cvi: '10.223.7.'
|
161
|
-
epi: '10.223.1.'
|
162
|
-
pasteur: '10.223.'
|
163
|
-
bocal: '10.42.42.'
|
164
|
-
sm: '10.42.'
|
165
|
-
vpn: '10.10.'
|
166
|
-
adm: '10.1.'
|
167
|
-
epita: '10.'
|
135
|
+
:'lab-cisco-mid-sr' => '10.251.',
|
136
|
+
etna: '10.245.',
|
137
|
+
lse: '10.227.42.',
|
138
|
+
:'sda-1' => '10.227.4.',
|
139
|
+
lab: '10.227.',
|
140
|
+
:'lab-tcom' => '10.226.7.',
|
141
|
+
:'lab-acu' => '10.226.6.',
|
142
|
+
:'lab-console' => '10.226.5.',
|
143
|
+
:'lab-mspe' => '10.226.',
|
144
|
+
epitanim: '10.225.19.',
|
145
|
+
epidemic: '10.225.18.',
|
146
|
+
:'sda-2' => '10.225.10.',
|
147
|
+
cycom: '10.225.8.',
|
148
|
+
epx: '10.225.7.',
|
149
|
+
prologin: '10.225.6.',
|
150
|
+
nomad: '10.225.2.',
|
151
|
+
assos: '10.225.',
|
152
|
+
sda: '10.224.14.',
|
153
|
+
www: '10.223.106.',
|
154
|
+
episport: '10.223.104.',
|
155
|
+
epicom: '10.223.103.',
|
156
|
+
:'bde-epita' => '10.223.100.',
|
157
|
+
omatis: '10.223.42.',
|
158
|
+
ipsa: '10.223.15.',
|
159
|
+
lrde: '10.223.13.',
|
160
|
+
cvi: '10.223.7.',
|
161
|
+
epi: '10.223.1.',
|
162
|
+
pasteur: '10.223.',
|
163
|
+
bocal: '10.42.42.',
|
164
|
+
sm: '10.42.',
|
165
|
+
vpn: '10.10.',
|
166
|
+
adm: '10.1.',
|
167
|
+
epita: '10.'
|
168
168
|
}
|
169
169
|
end
|
170
170
|
# rubocop:enable all
|
data/lib/netsoul/version.rb
CHANGED
data/netsoul.gemspec
CHANGED
@@ -1,38 +1,38 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
lib = File.expand_path('../lib'
|
3
|
+
lib = File.expand_path('../lib', __FILE__)
|
4
4
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
5
5
|
require 'netsoul/version'
|
6
6
|
|
7
7
|
Gem::Specification.new do |spec|
|
8
|
-
spec.name = 'netsoul'
|
8
|
+
spec.name = 'netsoul'
|
9
9
|
spec.version = Netsoul::VERSION
|
10
|
-
spec.authors = ['Christian Kakesa'
|
11
|
-
spec.email = ['christian.kakesa@gmail.com'
|
10
|
+
spec.authors = ['Christian Kakesa']
|
11
|
+
spec.email = ['christian.kakesa@gmail.com']
|
12
12
|
|
13
|
-
spec.summary = 'Netsoul client and library for ruby.'
|
13
|
+
spec.summary = 'Netsoul client and library for ruby.'
|
14
14
|
spec.description = spec.summary
|
15
|
-
spec.homepage = 'https://github.com/fenicks/netsoul-ruby'
|
16
|
-
spec.license = 'MIT'
|
15
|
+
spec.homepage = 'https://github.com/fenicks/netsoul-ruby'
|
16
|
+
spec.license = 'MIT'
|
17
17
|
|
18
18
|
# Prevent pushing this gem to RubyGems.org by setting 'allowed_push_host', or
|
19
19
|
# delete this section to allow pushing this gem to any host.
|
20
|
-
raise 'RubyGems 2.0 or newer is required to protect against public gem pushes.'
|
21
|
-
spec.metadata['allowed_push_host'] = 'https://rubygems.org'
|
20
|
+
raise 'RubyGems 2.0 or newer is required to protect against public gem pushes.' unless spec.respond_to?(:metadata)
|
21
|
+
spec.metadata['allowed_push_host'] = 'https://rubygems.org'
|
22
22
|
|
23
23
|
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
24
|
-
spec.bindir = 'bin'
|
24
|
+
spec.bindir = 'bin'
|
25
25
|
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
26
|
-
spec.require_paths = %w(lib ext bin).map(&:freeze)
|
27
|
-
spec.extensions = ['ext/netsoul_kerberos/extconf.rb'
|
26
|
+
spec.require_paths = %w(lib ext bin).map(&:freeze)
|
27
|
+
spec.extensions = ['ext/netsoul_kerberos/extconf.rb']
|
28
28
|
|
29
|
-
spec.add_development_dependency 'bundler'
|
30
|
-
spec.add_development_dependency 'rake'
|
31
|
-
spec.add_development_dependency 'rubocop'
|
32
|
-
spec.add_development_dependency 'rspec'
|
33
|
-
spec.add_development_dependency 'simplecov'
|
34
|
-
spec.add_development_dependency 'coveralls'
|
35
|
-
spec.add_development_dependency 'yard'
|
36
|
-
spec.add_development_dependency 'memory_profiler'
|
37
|
-
spec.add_development_dependency 'rake-compiler'
|
29
|
+
spec.add_development_dependency 'bundler', '~> 1.13', '>= 1.13.7'
|
30
|
+
spec.add_development_dependency 'rake', '~> 0'
|
31
|
+
spec.add_development_dependency 'rubocop', '~> 0'
|
32
|
+
spec.add_development_dependency 'rspec', '~> 3.5'
|
33
|
+
spec.add_development_dependency 'simplecov', '~> 0'
|
34
|
+
spec.add_development_dependency 'coveralls', '~> 0'
|
35
|
+
spec.add_development_dependency 'yard', '~> 0'
|
36
|
+
spec.add_development_dependency 'memory_profiler', '~> 0' if RUBY_VERSION >= '2.1.0'
|
37
|
+
spec.add_development_dependency 'rake-compiler', '~> 1.0.3'
|
38
38
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: netsoul
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Christian Kakesa
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-12-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -16,20 +16,20 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '1.
|
19
|
+
version: '1.13'
|
20
20
|
- - ">="
|
21
21
|
- !ruby/object:Gem::Version
|
22
|
-
version: 1.7
|
22
|
+
version: 1.13.7
|
23
23
|
type: :development
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
26
26
|
requirements:
|
27
27
|
- - "~>"
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
version: '1.
|
29
|
+
version: '1.13'
|
30
30
|
- - ">="
|
31
31
|
- !ruby/object:Gem::Version
|
32
|
-
version: 1.7
|
32
|
+
version: 1.13.7
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
34
|
name: rake
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|
@@ -64,14 +64,14 @@ dependencies:
|
|
64
64
|
requirements:
|
65
65
|
- - "~>"
|
66
66
|
- !ruby/object:Gem::Version
|
67
|
-
version: '3.
|
67
|
+
version: '3.5'
|
68
68
|
type: :development
|
69
69
|
prerelease: false
|
70
70
|
version_requirements: !ruby/object:Gem::Requirement
|
71
71
|
requirements:
|
72
72
|
- - "~>"
|
73
73
|
- !ruby/object:Gem::Version
|
74
|
-
version: '3.
|
74
|
+
version: '3.5'
|
75
75
|
- !ruby/object:Gem::Dependency
|
76
76
|
name: simplecov
|
77
77
|
requirement: !ruby/object:Gem::Requirement
|
@@ -134,14 +134,14 @@ dependencies:
|
|
134
134
|
requirements:
|
135
135
|
- - "~>"
|
136
136
|
- !ruby/object:Gem::Version
|
137
|
-
version: 0.
|
137
|
+
version: 1.0.3
|
138
138
|
type: :development
|
139
139
|
prerelease: false
|
140
140
|
version_requirements: !ruby/object:Gem::Requirement
|
141
141
|
requirements:
|
142
142
|
- - "~>"
|
143
143
|
- !ruby/object:Gem::Version
|
144
|
-
version: 0.
|
144
|
+
version: 1.0.3
|
145
145
|
description: Netsoul client and library for ruby.
|
146
146
|
email:
|
147
147
|
- christian.kakesa@gmail.com
|
@@ -197,9 +197,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
197
197
|
version: '0'
|
198
198
|
requirements: []
|
199
199
|
rubyforge_project:
|
200
|
-
rubygems_version: 2.
|
200
|
+
rubygems_version: 2.6.8
|
201
201
|
signing_key:
|
202
202
|
specification_version: 4
|
203
203
|
summary: Netsoul client and library for ruby.
|
204
204
|
test_files: []
|
205
|
-
has_rdoc:
|