utils 0.0.99 → 0.0.100

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: 67939ce99b900f52e390e0a417750092cc04877f
4
- data.tar.gz: acfd86203297a5c4a7e2a216035d37c34c0b2457
3
+ metadata.gz: 480fb60da986380af2ebf724286e23f377893db2
4
+ data.tar.gz: b8094ae10a9b048bf1893e23c79f9556547de534
5
5
  SHA512:
6
- metadata.gz: 76e4fa870b13bce0fe920dea5516c57ad42b1e9a8f5ac0e27e74193c6b269d9e7e62abf3091b925348bb940a65b88b41bb6ea29d13635358fa695c6951a78efe
7
- data.tar.gz: 090fcc6f5f80202a1225abef6f87103a67acc17b9173742a72012403d975cc69a7f6735ac743e9b3368835d596c369000e304ce80465e37b0c5b5333ce58b1bf
6
+ metadata.gz: 41259059f1493fd2994f111dde35371edf43e3a2584766d04f150eaab1dce7fdb4677059b14c156cc3f8c410945dcc294ee57e0aa6afea3750485b44671332f2
7
+ data.tar.gz: ba71dc743cae3e3ba21fb1a3c32c384855a44006111edeb4c3a883e4391f6af314042822853ef25244e25d07a9c905a29f9b97c0692b979acb70eb502e2ae50b
data/.gitignore CHANGED
@@ -1,5 +1,6 @@
1
1
  .*.sw[pon]
2
2
  .AppleDouble
3
+ .bundle
3
4
  .rvmrc
4
5
  Gemfile.lock
5
6
  pkg
data/Gemfile CHANGED
@@ -5,5 +5,5 @@ source 'https://rubygems.org'
5
5
  gemspec
6
6
 
7
7
  group :developer do
8
- gem 'debugger', :platform => :ruby_19
8
+ gem 'byebug', :platform => :ruby
9
9
  end
data/Rakefile CHANGED
@@ -12,7 +12,7 @@ GemHadar do
12
12
  bindir 'bin'
13
13
  executables Dir['bin/*'].map(&File.method(:basename))
14
14
  test_dir 'tests'
15
- ignore '.*.sw[pon]', 'pkg', 'Gemfile.lock', '.rvmrc', '.AppleDouble', 'tags'
15
+ ignore '.*.sw[pon]', 'pkg', 'Gemfile.lock', '.rvmrc', '.AppleDouble', 'tags', '.bundle'
16
16
  readme 'README.rdoc'
17
17
 
18
18
  dependency 'tins', '~>0.8', '>=0.8.3'
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.99
1
+ 0.0.100
data/bin/chroot-libs CHANGED
@@ -17,6 +17,10 @@ libs.concat ARGV
17
17
  cd dir do
18
18
  cp executable, File.basename(executable)
19
19
  for l in libs
20
- cp l, File.basename(l)
20
+ begin
21
+ cp l, File.basename(l)
22
+ rescue Errno::ENOENT => e
23
+ warn "Caught #{e.class}: #{e}"
24
+ end
21
25
  end
22
26
  end
data/bin/ssh-tunnel CHANGED
@@ -2,9 +2,13 @@
2
2
 
3
3
  require 'fileutils'
4
4
  include FileUtils::Verbose
5
- require 'tins/go'
5
+ require 'tins/xt'
6
6
  include Tins::GO
7
7
  require 'utils'
8
+ require 'pstree'
9
+ require 'term/ansicolor'
10
+ include Term::ANSIColor
11
+ Term::ANSIColor.coloring = STDOUT.tty?
8
12
 
9
13
  SSH_CONFIG = <<SSH_CONFIG_END
10
14
  # ~/.ssh/config
@@ -20,31 +24,52 @@ def usage
20
24
  Usage: #{File.basename($0)} [OPTS] [user@]remote[:port]"
21
25
 
22
26
  OPTS is one of
23
- -N list all session names on the specified remote
24
- -n NAME name of the multiplexer session to attach to (defaults to $USER)
25
- -t [HOST[:PORT]] host:port to tunnel if different from LOCALPORT
26
- -m screen|tmux use sshscreen or tmux as a terminal multiplexer
27
- -l LOCALPORT the localport to forward to
28
- -C (ssh|rc)-default|rc output ssh or rc config file
29
- -h to display this help
27
+ -N list all session names on the specified remote
28
+ -n NAME name of the multiplexer session (default: $USER)
29
+ -T list current tunnels
30
+ -e VARIABLE=VALUE [...] set variables to values
31
+ -t [LHOST:][LPORT:][HOST:PORT|PORT] host:port to tunnel if different from LOCALPORT
32
+ -m screen|tmux use sshscreen or tmux as a terminal multiplexer
33
+ -C (ssh|rc)-default|rc output ssh or rc config file
34
+ -d enable debugging
35
+ -h to display this help
30
36
 
31
37
  EOT
32
38
  exit 1
33
39
  end
34
40
 
41
+ def cmd(string)
42
+ $DEBUG and warn "Executing: #{string.inspect}"
43
+ exec string
44
+ end
45
+
35
46
  config = Utils::Config::ConfigFile.new
36
47
 
37
48
  arguments = ARGV
38
- opts = go 'l:t:n:C:m:hN', arguments
49
+ opts = go 't:n:C:m:e:hNTd', arguments
50
+
51
+ $DEBUG = opts['d']
52
+
53
+ if opts['T']
54
+ tunnels = PSTree.new.select { |pt| pt.user == ENV['USER'] && pt.cmd =~ /ssh.*-L/ }
55
+ tunnels.map! do |pt|
56
+ cmd = pt.cmd
57
+ cmd.gsub!(/(?<=\s)[^\/\s]+@\S+/) { |t| red(t) }
58
+ cmd.gsub!(/-L\s+\S+/) { |t| green(t) }
59
+ "#{yellow(pt.pid.to_s)} #{cmd}"
60
+ end
61
+ STDOUT.puts tunnels
62
+ exit 0
63
+ end
39
64
 
40
65
  case opts['C']
41
66
  when 'ssh-default'
42
- puts SSH_CONFIG; exit
67
+ STDOUT.puts SSH_CONFIG; exit
43
68
  when 'rc-default'
44
- puts config.to_ruby; exit
69
+ STDOUT.puts config.to_ruby; exit
45
70
  when 'rc'
46
71
  config.configure_from_paths
47
- puts config.to_ruby; exit
72
+ STDOUT.puts config.to_ruby; exit
48
73
  end
49
74
 
50
75
  config.configure_from_paths
@@ -58,26 +83,13 @@ end
58
83
  user_remote = arguments.shift
59
84
  user, remote, rport =
60
85
  case user_remote
61
- when /\A(?:([^@:]+)@)?([^@:]+)(?::(\d+))?\Z/
86
+ when /\A(?:([^@:]+)@)?([^@:]+)(?::(\d+))?\z/
62
87
  user = $1 || ENV['USER']
63
88
  user.to_s.empty? and fail "user required to login"
64
89
  [ user, $2, $3 || '22' ]
65
90
  else
66
91
  usage
67
92
  end
68
- lport = opts['l']
69
- tunnel, tport = nil, nil
70
- if tunnel_port = opts['t']
71
- case tunnel_port
72
- when /\A([^:]+)(?::(\d+))?\Z/
73
- tunnel, tport = $1, $2 || '22'
74
- lport ||= tport
75
- else
76
- usage
77
- end
78
- else
79
- tunnel, tport = 'localhost', lport
80
- end
81
93
 
82
94
  ssh_dir = File.expand_path('~/.ssh')
83
95
  mkdir_p ssh_dir
@@ -88,23 +100,30 @@ else
88
100
  opts['n'] ||= 'session'
89
101
  end
90
102
  if opts['N']
91
- exec "ssh -p #{rport} -S #{sock_file} #{user}@#{remote} #{config.ssh_tunnel.multiplexer_list}"
103
+ cmd "ssh -p #{rport} -S #{sock_file} #{user}@#{remote} #{config.ssh_tunnel.multiplexer_list}"
92
104
  else
93
- env = []
94
105
  File.exist? sock_file and rm_f sock_file
95
- r = config.ssh_tunnel.copy_paste.full? do |t|
106
+ env, tunnels = [], []
107
+ config.ssh_tunnel.copy_paste.full? do |t|
96
108
  env << "COPY_REMOTE_HOST_PORT='#{t.bind_address}:#{t.port}'"
97
- " -R #{t}"
109
+ tunnels << "-R #{t}"
98
110
  end
99
- env *= ' '
100
- if lport
101
- exec "ssh -p #{rport} -Mt -L localhost:#{lport}:#{tunnel}:#{tport}#{r} "\
102
- "-S #{sock_file} #{user}@#{remote} "\
103
- "'env #{env} #{config.ssh_tunnel.multiplexer_new(opts['n'])} || "\
104
- "#{config.ssh_tunnel.multiplexer_attach(opts['n'])}'"
105
- else
106
- exec "ssh -p #{rport} -Mt -S #{sock_file} #{user}@#{remote}#{r} "\
107
- "'env #{env} #{config.ssh_tunnel.multiplexer_new(opts['n'])} || "\
108
- "#{config.ssh_tunnel.multiplexer_attach(opts['n'])}'"
111
+ opts['t'].to_a.each do |tunnel_spec|
112
+ if arg = Utils::SshTunnelSpecification.new(tunnel_spec).valid?
113
+ tunnels << "-L #{arg}"
114
+ else
115
+ usage
116
+ end
117
+ end
118
+ config.ssh_tunnel.env.each do |var, val|
119
+ ENV[var.to_s] = val.to_s
109
120
  end
121
+ opts['e'].to_a.each do |setting|
122
+ var, val = setting.split('=', 2)
123
+ ENV[var] = val
124
+ end
125
+ cmd "ssh -p #{rport} -Mt "\
126
+ "-S #{sock_file} #{user}@#{remote} #{tunnels * ' '} "\
127
+ "'env #{env * ' '} #{config.ssh_tunnel.multiplexer_new(opts['n'])} || "\
128
+ "#{config.ssh_tunnel.multiplexer_attach(opts['n'])}'"
110
129
  end
data/lib/utils.rb CHANGED
@@ -9,4 +9,5 @@ module Utils
9
9
  require 'utils/finder'
10
10
  require 'utils/grepper'
11
11
  require 'utils/probe_server'
12
+ require 'utils/ssh_tunnel_specification'
12
13
  end
@@ -156,6 +156,8 @@ class Utils::Config::ConfigFile
156
156
  class SshTunnel < BlockConfig
157
157
  config :terminal_multiplexer, 'screen'
158
158
 
159
+ config :env, {}
160
+
159
161
  def initialize
160
162
  super
161
163
  self.terminal_multiplexer = terminal_multiplexer
@@ -0,0 +1,47 @@
1
+ module Utils
2
+ class SshTunnelSpecification
3
+ def initialize(spec_string)
4
+ interpret_spec(spec_string)
5
+ end
6
+
7
+ attr_reader :local_addr
8
+
9
+ attr_reader :local_port
10
+
11
+ attr_reader :remote_addr
12
+
13
+ attr_reader :remote_port
14
+
15
+ def to_a
16
+ [ local_addr, local_port, remote_addr, remote_port ]
17
+ end
18
+
19
+ def valid?
20
+ if to_a.all?
21
+ to_s
22
+ end
23
+ end
24
+
25
+ def to_s
26
+ to_a * ':'
27
+ end
28
+
29
+ private
30
+
31
+ def interpret_spec(spec_string)
32
+ @local_addr, @local_port, @remote_addr, @remote_port =
33
+ case spec_string
34
+ when /\A(\d+)\z/
35
+ [ 'localhost', $1.to_i, 'localhost', $1.to_i ]
36
+ when /\A(\[[^\]]+\]|[^:]+):(\d+)\z/
37
+ [ 'localhost', $2.to_i, $1, $2.to_i ]
38
+ when /\A(\d+):(\[[^\]]+\]|[^:]+):(\d+)\z/
39
+ [ 'localhost', $1.to_i, $2, $3.to_i ]
40
+ when /\A(\[[^\]]+\]|[^:]+):(\[[^\]]+\]|[^:]+):(\d+)\z/
41
+ [ $1, $3.to_i, $2, $3.to_i ]
42
+ when /\A(\[[^\]]+\]|[^:]+):(\d+):(\[[^\]]+\]|[^:]+):(\d+)\z/
43
+ [ $1, $2.to_i, $3, $4.to_i ]
44
+ end
45
+ end
46
+ end
47
+ end
data/lib/utils/version.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  module Utils
2
2
  # Utils version
3
- VERSION = '0.0.99'
4
- VERSION_ARRAY = VERSION.split(/\./).map { |x| x.to_i } # :nodoc:
3
+ VERSION = '0.0.100'
4
+ VERSION_ARRAY = VERSION.split('.').map(&:to_i) # :nodoc:
5
5
  VERSION_MAJOR = VERSION_ARRAY[0] # :nodoc:
6
6
  VERSION_MINOR = VERSION_ARRAY[1] # :nodoc:
7
7
  VERSION_BUILD = VERSION_ARRAY[2] # :nodoc:
data/utils.gemspec CHANGED
@@ -1,36 +1,36 @@
1
1
  # -*- encoding: utf-8 -*-
2
- # stub: utils 0.0.99 ruby lib
2
+ # stub: utils 0.0.100 ruby lib
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = "utils"
6
- s.version = "0.0.99"
6
+ s.version = "0.0.100"
7
7
 
8
8
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
9
+ s.require_paths = ["lib"]
9
10
  s.authors = ["Florian Frank"]
10
- s.date = "2013-10-09"
11
+ s.date = "2014-01-30"
11
12
  s.description = "This ruby gem provides some useful command line utilities"
12
13
  s.email = "flori@ping.de"
13
- s.executables = ["brakeman2err", "chroot-exec", "chroot-libs", "classify", "create_tags", "discover", "edit", "edit_wait", "enum", "errf", "git-empty", "irb_connect", "myex", "number_files", "on_change", "path", "probe", "remote_copy", "same_files", "search", "sedit", "ssh-tunnel", "strip_spaces", "unquarantine_apps", "untest", "utils-install-config", "utils-utilsrc", "vacuum_firefox_sqlite", "xmp"]
14
- s.extra_rdoc_files = ["README.rdoc", "lib/utils.rb", "lib/utils/config.rb", "lib/utils/config/config_file.rb", "lib/utils/editor.rb", "lib/utils/file_xt.rb", "lib/utils/finder.rb", "lib/utils/grepper.rb", "lib/utils/irb.rb", "lib/utils/md5.rb", "lib/utils/patterns.rb", "lib/utils/probe_server.rb", "lib/utils/version.rb"]
15
- s.files = [".gitignore", "COPYING", "Gemfile", "README.rdoc", "Rakefile", "TODO", "VERSION", "bin/brakeman2err", "bin/chroot-exec", "bin/chroot-libs", "bin/classify", "bin/create_tags", "bin/discover", "bin/edit", "bin/edit_wait", "bin/enum", "bin/errf", "bin/git-empty", "bin/irb_connect", "bin/myex", "bin/number_files", "bin/on_change", "bin/path", "bin/probe", "bin/remote_copy", "bin/same_files", "bin/search", "bin/sedit", "bin/ssh-tunnel", "bin/strip_spaces", "bin/unquarantine_apps", "bin/untest", "bin/utils-install-config", "bin/utils-utilsrc", "bin/vacuum_firefox_sqlite", "bin/xmp", "lib/utils.rb", "lib/utils/config.rb", "lib/utils/config/config_file.rb", "lib/utils/config/gdb/asm", "lib/utils/config/gdb/ruby", "lib/utils/config/gdbinit", "lib/utils/config/irbrc", "lib/utils/config/rdebugrc", "lib/utils/config/rvmrc", "lib/utils/config/screenrc", "lib/utils/config/utilsrc", "lib/utils/editor.rb", "lib/utils/file_xt.rb", "lib/utils/finder.rb", "lib/utils/grepper.rb", "lib/utils/irb.rb", "lib/utils/md5.rb", "lib/utils/patterns.rb", "lib/utils/probe_server.rb", "lib/utils/version.rb", "utils.gemspec"]
14
+ s.executables = ["create_tags", "untest", "chroot-libs", "edit_wait", "chroot-exec", "irb_connect", "number_files", "search", "strip_spaces", "path", "enum", "brakeman2err", "edit", "git-empty", "classify", "utils-install-config", "xmp", "discover", "ssh-tunnel", "myex", "probe", "remote_copy", "errf", "same_files", "utils-utilsrc", "unquarantine_apps", "vacuum_firefox_sqlite", "on_change", "sedit"]
15
+ s.extra_rdoc_files = ["README.rdoc", "lib/utils.rb", "lib/utils/config.rb", "lib/utils/config/config_file.rb", "lib/utils/editor.rb", "lib/utils/file_xt.rb", "lib/utils/finder.rb", "lib/utils/grepper.rb", "lib/utils/irb.rb", "lib/utils/md5.rb", "lib/utils/patterns.rb", "lib/utils/probe_server.rb", "lib/utils/ssh_tunnel_specification.rb", "lib/utils/version.rb"]
16
+ s.files = [".gitignore", "COPYING", "Gemfile", "README.rdoc", "Rakefile", "TODO", "VERSION", "bin/brakeman2err", "bin/chroot-exec", "bin/chroot-libs", "bin/classify", "bin/create_tags", "bin/discover", "bin/edit", "bin/edit_wait", "bin/enum", "bin/errf", "bin/git-empty", "bin/irb_connect", "bin/myex", "bin/number_files", "bin/on_change", "bin/path", "bin/probe", "bin/remote_copy", "bin/same_files", "bin/search", "bin/sedit", "bin/ssh-tunnel", "bin/strip_spaces", "bin/unquarantine_apps", "bin/untest", "bin/utils-install-config", "bin/utils-utilsrc", "bin/vacuum_firefox_sqlite", "bin/xmp", "lib/utils.rb", "lib/utils/config.rb", "lib/utils/config/config_file.rb", "lib/utils/config/gdb/asm", "lib/utils/config/gdb/ruby", "lib/utils/config/gdbinit", "lib/utils/config/irbrc", "lib/utils/config/rdebugrc", "lib/utils/config/rvmrc", "lib/utils/config/screenrc", "lib/utils/config/utilsrc", "lib/utils/editor.rb", "lib/utils/file_xt.rb", "lib/utils/finder.rb", "lib/utils/grepper.rb", "lib/utils/irb.rb", "lib/utils/md5.rb", "lib/utils/patterns.rb", "lib/utils/probe_server.rb", "lib/utils/ssh_tunnel_specification.rb", "lib/utils/version.rb", "utils.gemspec"]
16
17
  s.homepage = "http://github.com/flori/utils"
17
18
  s.rdoc_options = ["--title", "Utils - Some useful command line utilities", "--main", "README.rdoc"]
18
- s.require_paths = ["lib"]
19
- s.rubygems_version = "2.1.5"
19
+ s.rubygems_version = "2.2.1"
20
20
  s.summary = "Some useful command line utilities"
21
21
 
22
22
  if s.respond_to? :specification_version then
23
23
  s.specification_version = 4
24
24
 
25
25
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
26
- s.add_development_dependency(%q<gem_hadar>, ["~> 0.1.8"])
26
+ s.add_development_dependency(%q<gem_hadar>, ["~> 0.3.2"])
27
27
  s.add_runtime_dependency(%q<tins>, [">= 0.8.3", "~> 0.8"])
28
28
  s.add_runtime_dependency(%q<term-ansicolor>, [">= 1.2.2", "~> 1.2"])
29
29
  s.add_runtime_dependency(%q<dslkit>, ["~> 0.2.10"])
30
30
  s.add_runtime_dependency(%q<pstree>, [">= 0"])
31
31
  s.add_runtime_dependency(%q<pry-editline>, [">= 0"])
32
32
  else
33
- s.add_dependency(%q<gem_hadar>, ["~> 0.1.8"])
33
+ s.add_dependency(%q<gem_hadar>, ["~> 0.3.2"])
34
34
  s.add_dependency(%q<tins>, [">= 0.8.3", "~> 0.8"])
35
35
  s.add_dependency(%q<term-ansicolor>, [">= 1.2.2", "~> 1.2"])
36
36
  s.add_dependency(%q<dslkit>, ["~> 0.2.10"])
@@ -38,7 +38,7 @@ Gem::Specification.new do |s|
38
38
  s.add_dependency(%q<pry-editline>, [">= 0"])
39
39
  end
40
40
  else
41
- s.add_dependency(%q<gem_hadar>, ["~> 0.1.8"])
41
+ s.add_dependency(%q<gem_hadar>, ["~> 0.3.2"])
42
42
  s.add_dependency(%q<tins>, [">= 0.8.3", "~> 0.8"])
43
43
  s.add_dependency(%q<term-ansicolor>, [">= 1.2.2", "~> 1.2"])
44
44
  s.add_dependency(%q<dslkit>, ["~> 0.2.10"])
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: utils
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.99
4
+ version: 0.0.100
5
5
  platform: ruby
6
6
  authors:
7
7
  - Florian Frank
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-10-09 00:00:00.000000000 Z
11
+ date: 2014-01-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: gem_hadar
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - ~>
18
18
  - !ruby/object:Gem::Version
19
- version: 0.1.8
19
+ version: 0.3.2
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
- version: 0.1.8
26
+ version: 0.3.2
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: tins
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -109,35 +109,35 @@ dependencies:
109
109
  description: This ruby gem provides some useful command line utilities
110
110
  email: flori@ping.de
111
111
  executables:
112
- - brakeman2err
113
- - chroot-exec
114
- - chroot-libs
115
- - classify
116
112
  - create_tags
117
- - discover
118
- - edit
113
+ - untest
114
+ - chroot-libs
119
115
  - edit_wait
120
- - enum
121
- - errf
122
- - git-empty
116
+ - chroot-exec
123
117
  - irb_connect
124
- - myex
125
118
  - number_files
126
- - on_change
119
+ - search
120
+ - strip_spaces
127
121
  - path
122
+ - enum
123
+ - brakeman2err
124
+ - edit
125
+ - git-empty
126
+ - classify
127
+ - utils-install-config
128
+ - xmp
129
+ - discover
130
+ - ssh-tunnel
131
+ - myex
128
132
  - probe
129
133
  - remote_copy
134
+ - errf
130
135
  - same_files
131
- - search
132
- - sedit
133
- - ssh-tunnel
134
- - strip_spaces
135
- - unquarantine_apps
136
- - untest
137
- - utils-install-config
138
136
  - utils-utilsrc
137
+ - unquarantine_apps
139
138
  - vacuum_firefox_sqlite
140
- - xmp
139
+ - on_change
140
+ - sedit
141
141
  extensions: []
142
142
  extra_rdoc_files:
143
143
  - README.rdoc
@@ -152,6 +152,7 @@ extra_rdoc_files:
152
152
  - lib/utils/md5.rb
153
153
  - lib/utils/patterns.rb
154
154
  - lib/utils/probe_server.rb
155
+ - lib/utils/ssh_tunnel_specification.rb
155
156
  - lib/utils/version.rb
156
157
  files:
157
158
  - .gitignore
@@ -209,6 +210,7 @@ files:
209
210
  - lib/utils/md5.rb
210
211
  - lib/utils/patterns.rb
211
212
  - lib/utils/probe_server.rb
213
+ - lib/utils/ssh_tunnel_specification.rb
212
214
  - lib/utils/version.rb
213
215
  - utils.gemspec
214
216
  homepage: http://github.com/flori/utils
@@ -234,7 +236,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
234
236
  version: '0'
235
237
  requirements: []
236
238
  rubyforge_project:
237
- rubygems_version: 2.1.5
239
+ rubygems_version: 2.2.1
238
240
  signing_key:
239
241
  specification_version: 4
240
242
  summary: Some useful command line utilities