utils 0.63.0 → 0.64.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/.utilsrc +30 -0
- data/Rakefile +2 -1
- data/bin/code_comment +1 -1
- data/bin/probe +6 -18
- data/lib/utils/probe_server.rb +103 -47
- data/lib/utils/version.rb +1 -1
- data/tests/test_helper.rb +2 -0
- data/tests/utils_test.rb +11 -0
- data/utils.gemspec +9 -7
- metadata +26 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 04c80c59e58b4eddfd99b4890f90e9b79197a3058650355e93317234ffdacb21
|
4
|
+
data.tar.gz: 6b169b24ba94fd2c8fa1d64c53d69b3d93c4c60ca5ee8bf85098492f9d446904
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3f0e39525fe0f42fe02cd834f436b09084d72532e47ee720eea97652420cf2f2502c47a265479c1a3501107fa945ec6433ff053cba78b6a148d7a4ffd797cfd1
|
7
|
+
data.tar.gz: b370aea11cc359cbf88261f305b2574764243d23c4f402fab14a5e1caf13b3328069a1e6dac82cf5809da6fc4c74fd51d830177d1a38a9ab5d6c961641d9e7e6
|
data/.utilsrc
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
# vim: set ft=ruby:
|
2
|
+
|
3
|
+
search do
|
4
|
+
prune_dirs /\A(\.svn|\.git|\.terraform|CVS|tmp|coverage|corpus|pkg|\.yardoc)\z/
|
5
|
+
skip_files /(\A\.|\.sw[pon]\z|\.(log|fnm|jpg|jpeg|png|pdf|svg)\z|\Atags\z|~\z)/i
|
6
|
+
end
|
7
|
+
|
8
|
+
discover do
|
9
|
+
prune_dirs /\A(\.svn|\.git|\.terraform|\.yardoc|CVS|tmp|coverage|corpus|pkg|\.yardoc)\z/
|
10
|
+
skip_files /(\A\.|\.sw[pon]\z|\.log\z|~\z)/
|
11
|
+
index_expire_after 3_600
|
12
|
+
end
|
13
|
+
|
14
|
+
strip_spaces do
|
15
|
+
prune_dirs /\A(\..*|CVS|pkg|\.yardoc)\z/
|
16
|
+
skip_files /(\A\.|\.sw[pon]\z|\.log\z|~\z)/
|
17
|
+
end
|
18
|
+
|
19
|
+
probe do
|
20
|
+
test_framework :'test-unit'
|
21
|
+
end
|
22
|
+
|
23
|
+
ssh_tunnel do
|
24
|
+
terminal_multiplexer :tmux
|
25
|
+
login_session "/home/#{ENV['USER']}"
|
26
|
+
end
|
27
|
+
|
28
|
+
classify do
|
29
|
+
shift_path_by_default 1
|
30
|
+
end
|
data/Rakefile
CHANGED
@@ -19,7 +19,7 @@ GemHadar do
|
|
19
19
|
readme 'README.md'
|
20
20
|
licenses << 'GPL-2.0'
|
21
21
|
|
22
|
-
dependency '
|
22
|
+
dependency 'unix_socks'
|
23
23
|
dependency 'webrick'
|
24
24
|
dependency 'tins', '~> 1.14'
|
25
25
|
dependency 'term-ansicolor', '~> 1.11'
|
@@ -32,6 +32,7 @@ GemHadar do
|
|
32
32
|
dependency 'kramdown-ansi', '~> 0.0.1'
|
33
33
|
dependency 'simplecov'
|
34
34
|
dependency 'debug'
|
35
|
+
development_dependency 'test-unit'
|
35
36
|
|
36
37
|
install_library do
|
37
38
|
libdir = CONFIG["sitelibdir"]
|
data/bin/code_comment
CHANGED
data/bin/probe
CHANGED
@@ -5,7 +5,6 @@ require 'tins/lines_file'
|
|
5
5
|
include Tins::GO
|
6
6
|
require 'utils'
|
7
7
|
include Utils
|
8
|
-
require 'drb'
|
9
8
|
require 'shellwords'
|
10
9
|
|
11
10
|
def usage
|
@@ -19,7 +18,6 @@ def usage
|
|
19
18
|
-c start probe as a client
|
20
19
|
-C FOO[=BAR] set/get env variable on probe server
|
21
20
|
-l start probe as a server
|
22
|
-
-u URI use this DRb URI communication
|
23
21
|
-h display this help
|
24
22
|
|
25
23
|
Version is #{File.basename($0)} #{Utils::VERSION}.
|
@@ -39,25 +37,17 @@ end
|
|
39
37
|
|
40
38
|
def start_server
|
41
39
|
Thread.abort_on_exception = $DEBUG
|
42
|
-
|
43
|
-
begin
|
44
|
-
DRb.start_service
|
45
|
-
DRbObject.new_with_uri($uri).shutdown
|
46
|
-
rescue DRb::DRbConnError
|
47
|
-
end
|
48
|
-
|
49
|
-
Utils::ProbeServer.new($uri).start
|
40
|
+
Utils::ProbeServer.new.start
|
50
41
|
end
|
51
42
|
|
52
43
|
def connect_server
|
53
|
-
|
54
|
-
probe_server = DRbObject.new_with_uri($uri)
|
44
|
+
probe_client = ProbeClient.new
|
55
45
|
if setting = $opts[?C]
|
56
46
|
case setting
|
57
47
|
when /\A([^=]+)=([^=]+)\z/
|
58
|
-
|
48
|
+
puts probe_client.env[$1] = $2
|
59
49
|
when /\A([^=]+)\z/
|
60
|
-
puts
|
50
|
+
puts probe_client.env[$1]
|
61
51
|
else
|
62
52
|
usage
|
63
53
|
end
|
@@ -66,7 +56,7 @@ def connect_server
|
|
66
56
|
opts = $opts.subhash(*%w[n t]).each_with_object([]) { |(k, v), a|
|
67
57
|
v.full? and a.concat [ "-#{k}", v ]
|
68
58
|
}
|
69
|
-
|
59
|
+
probe_client.enqueue opts + $args
|
70
60
|
exit
|
71
61
|
end
|
72
62
|
end
|
@@ -80,11 +70,9 @@ if i = ARGV.index('--')
|
|
80
70
|
else
|
81
71
|
$args = ARGV.dup
|
82
72
|
end
|
83
|
-
$opts = go 'lct:n:
|
73
|
+
$opts = go 'lct:n:C:h', $args
|
84
74
|
$opts[?h] and usage
|
85
75
|
|
86
|
-
$uri = $opts[?u] || 'drbunix:probe.socket'
|
87
|
-
|
88
76
|
case
|
89
77
|
when $opts[?l]
|
90
78
|
start_server
|
data/lib/utils/probe_server.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
require 'unix_socks'
|
1
2
|
require 'tins/xt'
|
2
3
|
require 'term/ansicolor'
|
3
4
|
class String
|
@@ -5,48 +6,91 @@ class String
|
|
5
6
|
end
|
6
7
|
|
7
8
|
module Utils
|
8
|
-
class
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
9
|
+
class ProcessJob
|
10
|
+
def initialize(args:, probe_server: nil)
|
11
|
+
@id = probe_server&.next_job_id
|
12
|
+
@args = Array(args)
|
13
|
+
end
|
14
|
+
|
15
|
+
attr_reader :id
|
16
|
+
|
17
|
+
attr_reader :args
|
18
|
+
|
19
|
+
attr_writer :ok
|
20
|
+
|
21
|
+
def type
|
22
|
+
'process_job'
|
23
|
+
end
|
24
|
+
|
25
|
+
def ok
|
26
|
+
case @ok
|
27
|
+
when false then 'n'
|
28
|
+
when true then 'y'
|
29
|
+
else '…'
|
13
30
|
end
|
31
|
+
end
|
14
32
|
|
15
|
-
|
33
|
+
def ok_colorize(string)
|
34
|
+
case @ok
|
35
|
+
when false then string.white.on_red
|
36
|
+
when true then string.black.on_green
|
37
|
+
else string
|
38
|
+
end
|
39
|
+
end
|
16
40
|
|
17
|
-
|
41
|
+
def inspect
|
42
|
+
ok_colorize("#{id} #{args.map { |a| a.include?(' ') ? a.inspect : a } * ' '}")
|
43
|
+
end
|
18
44
|
|
19
|
-
|
45
|
+
alias to_s inspect
|
20
46
|
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
47
|
+
def as_json(*)
|
48
|
+
{ type:, id:, args:, }
|
49
|
+
end
|
50
|
+
|
51
|
+
def to_json(*)
|
52
|
+
as_json.to_json(*)
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
class ProbeClient
|
57
|
+
class EnvProxy
|
58
|
+
def initialize(server)
|
59
|
+
@server = server
|
27
60
|
end
|
28
61
|
|
29
|
-
def
|
30
|
-
|
31
|
-
|
32
|
-
when true then string.black.on_green
|
33
|
-
else string
|
34
|
-
end
|
62
|
+
def []=(key, value)
|
63
|
+
response = @server.transmit_with_response(type: 'set_env', key:, value:)
|
64
|
+
response.env
|
35
65
|
end
|
36
66
|
|
37
|
-
def
|
38
|
-
|
67
|
+
def [](key)
|
68
|
+
response = @server.transmit_with_response(type: 'get_env', key:)
|
69
|
+
response.env
|
39
70
|
end
|
40
71
|
|
41
|
-
|
72
|
+
attr_reader :env
|
73
|
+
end
|
74
|
+
|
75
|
+
def initialize
|
76
|
+
@server = UnixSocks::Server.new(socket_name: 'probe.sock', runtime_dir: Dir.pwd)
|
77
|
+
end
|
78
|
+
|
79
|
+
def env
|
80
|
+
EnvProxy.new(@server)
|
81
|
+
end
|
82
|
+
|
83
|
+
def enqueue(args)
|
84
|
+
@server.transmit({ type: 'process_job', args: })
|
42
85
|
end
|
86
|
+
end
|
43
87
|
|
44
|
-
|
45
|
-
|
46
|
-
@
|
47
|
-
@
|
88
|
+
class ProbeServer
|
89
|
+
def initialize
|
90
|
+
@server = UnixSocks::Server.new(socket_name: 'probe.sock', runtime_dir: Dir.pwd)
|
91
|
+
@history = [].freeze
|
92
|
+
@jobs_queue = Queue.new
|
48
93
|
@current_job_id = 0
|
49
|
-
Thread.new { work_loop }
|
50
94
|
end
|
51
95
|
|
52
96
|
def print(*msg)
|
@@ -56,10 +100,15 @@ module Utils
|
|
56
100
|
end
|
57
101
|
|
58
102
|
def start
|
59
|
-
output_message "Starting probe server listening to #{@
|
60
|
-
|
103
|
+
output_message "Starting probe server listening to #{@server.server_socket_path}.", type: :info
|
104
|
+
work_loop = Thread.new do
|
105
|
+
loop do
|
106
|
+
job = @jobs_queue.pop
|
107
|
+
run_job job
|
108
|
+
end
|
109
|
+
end
|
61
110
|
begin
|
62
|
-
|
111
|
+
receive_loop.join
|
63
112
|
rescue Interrupt
|
64
113
|
ARGV.clear << '-f'
|
65
114
|
output_message %{\nEntering interactive mode.}, type: :info
|
@@ -70,7 +119,8 @@ module Utils
|
|
70
119
|
ensure
|
71
120
|
$VERBOSE = old
|
72
121
|
end
|
73
|
-
|
122
|
+
@server.remove_socket_path
|
123
|
+
output_message "Quitting interactive mode, but still listening to #{@server.server_socket_path}.", type: :info
|
74
124
|
retry
|
75
125
|
end
|
76
126
|
end
|
@@ -91,17 +141,17 @@ module Utils
|
|
91
141
|
docs_size = docs.map { |a| a.first.size }.max
|
92
142
|
format = "%-#{docs_size}s %-3s %s"
|
93
143
|
output_message [
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
144
|
+
(format % %w[ command sho description ]).on_color(20).white
|
145
|
+
] << docs.map { |cmd, doc|
|
146
|
+
shortcut = shortcut_of(cmd) and shortcut = "(#{shortcut})"
|
147
|
+
format % [ cmd, shortcut, doc ]
|
148
|
+
}
|
99
149
|
end
|
100
150
|
|
101
|
-
doc 'Enqueue a new job with the argument array <
|
151
|
+
doc 'Enqueue a new job with the argument array <args>.'
|
102
152
|
shortcut :e
|
103
|
-
def job_enqueue(
|
104
|
-
job =
|
153
|
+
def job_enqueue(args)
|
154
|
+
job = ProcessJob.new(args:, probe_server: self)
|
105
155
|
output_message " → #{job.inspect} enqueued.", type: :info
|
106
156
|
@jobs_queue.push job
|
107
157
|
end
|
@@ -118,7 +168,7 @@ module Utils
|
|
118
168
|
doc 'Repeat the job with <job_id> or the last, it will be assigned a new id, though.'
|
119
169
|
shortcut :r
|
120
170
|
def job_repeat(job_id = @history.last)
|
121
|
-
|
171
|
+
ProcessJob === job_id and job_id = job_id.id
|
122
172
|
if old_job = @history.find { |job| job.id == job_id }
|
123
173
|
job_enqueue old_job.args
|
124
174
|
true
|
@@ -209,15 +259,21 @@ module Utils
|
|
209
259
|
message << " and failed with exit status #{$?.exitstatus}!"
|
210
260
|
output_message message, type: :failure
|
211
261
|
end
|
212
|
-
@history += [
|
262
|
+
@history += [ job.freeze ]
|
213
263
|
@history.freeze
|
214
|
-
@job = nil
|
215
264
|
end
|
216
265
|
|
217
|
-
def
|
218
|
-
|
219
|
-
|
220
|
-
|
266
|
+
def receive_loop
|
267
|
+
@server.receive_in_background do |job|
|
268
|
+
case job.type
|
269
|
+
when 'process_job'
|
270
|
+
enqueue job.args
|
271
|
+
when 'set_env'
|
272
|
+
env[job.key] = job.value
|
273
|
+
job.respond(env: env[job.key])
|
274
|
+
when 'get_env'
|
275
|
+
job.respond(env: env[job.key])
|
276
|
+
end
|
221
277
|
end
|
222
278
|
end
|
223
279
|
|
data/lib/utils/version.rb
CHANGED
data/tests/utils_test.rb
ADDED
data/utils.gemspec
CHANGED
@@ -1,29 +1,31 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
|
-
# stub: utils 0.
|
2
|
+
# stub: utils 0.64.0 ruby lib
|
3
3
|
|
4
4
|
Gem::Specification.new do |s|
|
5
5
|
s.name = "utils".freeze
|
6
|
-
s.version = "0.
|
6
|
+
s.version = "0.64.0".freeze
|
7
7
|
|
8
8
|
s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
|
9
9
|
s.require_paths = ["lib".freeze]
|
10
10
|
s.authors = ["Florian Frank".freeze]
|
11
|
-
s.date = "
|
11
|
+
s.date = "1980-01-02"
|
12
12
|
s.description = "This ruby gem provides some useful command line utilities".freeze
|
13
13
|
s.email = "flori@ping.de".freeze
|
14
14
|
s.executables = ["ascii7".freeze, "blameline".freeze, "changes".freeze, "classify".freeze, "code_comment".freeze, "commit_message".freeze, "create_cstags".freeze, "create_tags".freeze, "discover".freeze, "edit".freeze, "edit_wait".freeze, "enum".freeze, "git-empty".freeze, "git-versions".freeze, "json_check".freeze, "long_lines".freeze, "myex".freeze, "number_files".freeze, "on_change".freeze, "path".freeze, "print_method".freeze, "probe".freeze, "rd2md".freeze, "search".freeze, "sedit".freeze, "serve".freeze, "ssh-tunnel".freeze, "strip_spaces".freeze, "sync_dir".freeze, "untest".freeze, "utils-utilsrc".freeze, "vcf2alias".freeze, "yaml_check".freeze]
|
15
15
|
s.extra_rdoc_files = ["README.md".freeze, "lib/utils.rb".freeze, "lib/utils/config_file.rb".freeze, "lib/utils/editor.rb".freeze, "lib/utils/finder.rb".freeze, "lib/utils/grepper.rb".freeze, "lib/utils/irb.rb".freeze, "lib/utils/line_blamer.rb".freeze, "lib/utils/line_formatter.rb".freeze, "lib/utils/md5.rb".freeze, "lib/utils/patterns.rb".freeze, "lib/utils/probe_server.rb".freeze, "lib/utils/ssh_tunnel_specification.rb".freeze, "lib/utils/version.rb".freeze, "lib/utils/xt/source_location_extension.rb".freeze]
|
16
|
-
s.files = [".github/dependabot.yml".freeze, ".github/workflows/codeql-analysis.yml".freeze, "COPYING".freeze, "Gemfile".freeze, "README.md".freeze, "Rakefile".freeze, "bin/ascii7".freeze, "bin/blameline".freeze, "bin/changes".freeze, "bin/classify".freeze, "bin/code_comment".freeze, "bin/commit_message".freeze, "bin/create_cstags".freeze, "bin/create_tags".freeze, "bin/discover".freeze, "bin/edit".freeze, "bin/edit_wait".freeze, "bin/enum".freeze, "bin/git-empty".freeze, "bin/git-versions".freeze, "bin/json_check".freeze, "bin/long_lines".freeze, "bin/myex".freeze, "bin/number_files".freeze, "bin/on_change".freeze, "bin/path".freeze, "bin/print_method".freeze, "bin/probe".freeze, "bin/rd2md".freeze, "bin/search".freeze, "bin/sedit".freeze, "bin/serve".freeze, "bin/ssh-tunnel".freeze, "bin/strip_spaces".freeze, "bin/sync_dir".freeze, "bin/untest".freeze, "bin/utils-utilsrc".freeze, "bin/vcf2alias".freeze, "bin/yaml_check".freeze, "lib/utils.rb".freeze, "lib/utils/config_file.rb".freeze, "lib/utils/editor.rb".freeze, "lib/utils/finder.rb".freeze, "lib/utils/grepper.rb".freeze, "lib/utils/irb.rb".freeze, "lib/utils/line_blamer.rb".freeze, "lib/utils/line_formatter.rb".freeze, "lib/utils/md5.rb".freeze, "lib/utils/patterns.rb".freeze, "lib/utils/probe_server.rb".freeze, "lib/utils/ssh_tunnel_specification.rb".freeze, "lib/utils/version.rb".freeze, "lib/utils/xt/source_location_extension.rb".freeze, "utils.gemspec".freeze]
|
16
|
+
s.files = [".github/dependabot.yml".freeze, ".github/workflows/codeql-analysis.yml".freeze, ".utilsrc".freeze, "COPYING".freeze, "Gemfile".freeze, "README.md".freeze, "Rakefile".freeze, "bin/ascii7".freeze, "bin/blameline".freeze, "bin/changes".freeze, "bin/classify".freeze, "bin/code_comment".freeze, "bin/commit_message".freeze, "bin/create_cstags".freeze, "bin/create_tags".freeze, "bin/discover".freeze, "bin/edit".freeze, "bin/edit_wait".freeze, "bin/enum".freeze, "bin/git-empty".freeze, "bin/git-versions".freeze, "bin/json_check".freeze, "bin/long_lines".freeze, "bin/myex".freeze, "bin/number_files".freeze, "bin/on_change".freeze, "bin/path".freeze, "bin/print_method".freeze, "bin/probe".freeze, "bin/rd2md".freeze, "bin/search".freeze, "bin/sedit".freeze, "bin/serve".freeze, "bin/ssh-tunnel".freeze, "bin/strip_spaces".freeze, "bin/sync_dir".freeze, "bin/untest".freeze, "bin/utils-utilsrc".freeze, "bin/vcf2alias".freeze, "bin/yaml_check".freeze, "lib/utils.rb".freeze, "lib/utils/config_file.rb".freeze, "lib/utils/editor.rb".freeze, "lib/utils/finder.rb".freeze, "lib/utils/grepper.rb".freeze, "lib/utils/irb.rb".freeze, "lib/utils/line_blamer.rb".freeze, "lib/utils/line_formatter.rb".freeze, "lib/utils/md5.rb".freeze, "lib/utils/patterns.rb".freeze, "lib/utils/probe_server.rb".freeze, "lib/utils/ssh_tunnel_specification.rb".freeze, "lib/utils/version.rb".freeze, "lib/utils/xt/source_location_extension.rb".freeze, "tests/test_helper.rb".freeze, "tests/utils_test.rb".freeze, "utils.gemspec".freeze]
|
17
17
|
s.homepage = "http://github.com/flori/utils".freeze
|
18
18
|
s.licenses = ["GPL-2.0".freeze]
|
19
19
|
s.rdoc_options = ["--title".freeze, "Utils - Some useful command line utilities".freeze, "--main".freeze, "README.md".freeze]
|
20
|
-
s.rubygems_version = "3.6.
|
20
|
+
s.rubygems_version = "3.6.9".freeze
|
21
21
|
s.summary = "Some useful command line utilities".freeze
|
22
|
+
s.test_files = ["tests/test_helper.rb".freeze, "tests/utils_test.rb".freeze]
|
22
23
|
|
23
24
|
s.specification_version = 4
|
24
25
|
|
25
|
-
s.add_development_dependency(%q<gem_hadar>.freeze, ["~> 1.
|
26
|
-
s.
|
26
|
+
s.add_development_dependency(%q<gem_hadar>.freeze, ["~> 1.20".freeze])
|
27
|
+
s.add_development_dependency(%q<test-unit>.freeze, [">= 0".freeze])
|
28
|
+
s.add_runtime_dependency(%q<unix_socks>.freeze, [">= 0".freeze])
|
27
29
|
s.add_runtime_dependency(%q<webrick>.freeze, [">= 0".freeze])
|
28
30
|
s.add_runtime_dependency(%q<tins>.freeze, ["~> 1.14".freeze])
|
29
31
|
s.add_runtime_dependency(%q<term-ansicolor>.freeze, ["~> 1.11".freeze])
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: utils
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.64.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Florian Frank
|
8
8
|
bindir: bin
|
9
9
|
cert_chain: []
|
10
|
-
date:
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
11
11
|
dependencies:
|
12
12
|
- !ruby/object:Gem::Dependency
|
13
13
|
name: gem_hadar
|
@@ -15,16 +15,30 @@ dependencies:
|
|
15
15
|
requirements:
|
16
16
|
- - "~>"
|
17
17
|
- !ruby/object:Gem::Version
|
18
|
-
version: '1.
|
18
|
+
version: '1.20'
|
19
19
|
type: :development
|
20
20
|
prerelease: false
|
21
21
|
version_requirements: !ruby/object:Gem::Requirement
|
22
22
|
requirements:
|
23
23
|
- - "~>"
|
24
24
|
- !ruby/object:Gem::Version
|
25
|
-
version: '1.
|
25
|
+
version: '1.20'
|
26
26
|
- !ruby/object:Gem::Dependency
|
27
|
-
name:
|
27
|
+
name: test-unit
|
28
|
+
requirement: !ruby/object:Gem::Requirement
|
29
|
+
requirements:
|
30
|
+
- - ">="
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0'
|
33
|
+
type: :development
|
34
|
+
prerelease: false
|
35
|
+
version_requirements: !ruby/object:Gem::Requirement
|
36
|
+
requirements:
|
37
|
+
- - ">="
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
version: '0'
|
40
|
+
- !ruby/object:Gem::Dependency
|
41
|
+
name: unix_socks
|
28
42
|
requirement: !ruby/object:Gem::Requirement
|
29
43
|
requirements:
|
30
44
|
- - ">="
|
@@ -261,6 +275,7 @@ extra_rdoc_files:
|
|
261
275
|
files:
|
262
276
|
- ".github/dependabot.yml"
|
263
277
|
- ".github/workflows/codeql-analysis.yml"
|
278
|
+
- ".utilsrc"
|
264
279
|
- COPYING
|
265
280
|
- Gemfile
|
266
281
|
- README.md
|
@@ -312,6 +327,8 @@ files:
|
|
312
327
|
- lib/utils/ssh_tunnel_specification.rb
|
313
328
|
- lib/utils/version.rb
|
314
329
|
- lib/utils/xt/source_location_extension.rb
|
330
|
+
- tests/test_helper.rb
|
331
|
+
- tests/utils_test.rb
|
315
332
|
- utils.gemspec
|
316
333
|
homepage: http://github.com/flori/utils
|
317
334
|
licenses:
|
@@ -335,7 +352,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
335
352
|
- !ruby/object:Gem::Version
|
336
353
|
version: '0'
|
337
354
|
requirements: []
|
338
|
-
rubygems_version: 3.6.
|
355
|
+
rubygems_version: 3.6.9
|
339
356
|
specification_version: 4
|
340
357
|
summary: Some useful command line utilities
|
341
|
-
test_files:
|
358
|
+
test_files:
|
359
|
+
- tests/test_helper.rb
|
360
|
+
- tests/utils_test.rb
|