obfusk-util 0.0.1.SNAPSHOT.20130725000153 → 0.4.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/README.md +132 -39
- data/Rakefile +16 -0
- data/lib/obfusk/util/all.rb +4 -3
- data/lib/obfusk/util/cmd.rb +3 -3
- data/lib/obfusk/util/data.rb +4 -4
- data/lib/obfusk/util/die.rb +3 -3
- data/lib/obfusk/util/fs.rb +3 -3
- data/lib/obfusk/util/message.rb +6 -12
- data/lib/obfusk/util/misc.rb +3 -3
- data/lib/obfusk/util/module.rb +11 -3
- data/lib/obfusk/util/opt.rb +3 -3
- data/lib/obfusk/util/os.rb +3 -3
- data/lib/obfusk/util/process.rb +3 -3
- data/lib/obfusk/util/run.rb +102 -9
- data/lib/obfusk/util/sh.rb +102 -0
- data/lib/obfusk/util/spec.rb +3 -3
- data/lib/obfusk/util/struct.rb +5 -4
- data/lib/obfusk/util/term.rb +3 -3
- data/lib/obfusk/util/valid.rb +4 -4
- data/lib/obfusk/util/version.rb +2 -2
- data/obfusk-util.gemspec +1 -3
- data/spec/obfusk/util/cmd_spec.rb +3 -3
- data/spec/obfusk/util/data_spec.rb +3 -3
- data/spec/obfusk/util/die_spec.rb +3 -3
- data/spec/obfusk/util/fs_spec.rb +3 -3
- data/spec/obfusk/util/message_spec.rb +3 -3
- data/spec/obfusk/util/module_spec.rb +19 -3
- data/spec/obfusk/util/opt_spec.rb +3 -3
- data/spec/obfusk/util/os_spec.rb +4 -4
- data/spec/obfusk/util/process_spec.rb +4 -4
- data/spec/obfusk/util/run_spec.rb +164 -8
- data/spec/obfusk/util/sh_spec.rb +125 -0
- data/spec/obfusk/util/spec_spec.rb +3 -3
- data/spec/obfusk/util/struct_spec.rb +3 -3
- data/spec/obfusk/util/term_spec.rb +3 -3
- data/spec/obfusk/util/valid_spec.rb +3 -3
- metadata +48 -46
data/lib/obfusk/util/run.rb
CHANGED
@@ -2,10 +2,10 @@
|
|
2
2
|
#
|
3
3
|
# File : obfusk/util/run.rb
|
4
4
|
# Maintainer : Felix C. Stegerman <flx@obfusk.net>
|
5
|
-
# Date :
|
5
|
+
# Date : 2014-02-19
|
6
6
|
#
|
7
|
-
# Copyright : Copyright (C)
|
8
|
-
# Licence :
|
7
|
+
# Copyright : Copyright (C) 2014 Felix C. Stegerman
|
8
|
+
# Licence : LGPLv3+
|
9
9
|
#
|
10
10
|
# -- ; }}}1
|
11
11
|
|
@@ -23,7 +23,7 @@ module Obfusk; module Util
|
|
23
23
|
# @raise RunError on ENOENT
|
24
24
|
def self.exec(*args)
|
25
25
|
_enoent_to_run('exec', args) do |a|
|
26
|
-
Kernel.exec
|
26
|
+
Kernel.exec(*_spawn_args(*a))
|
27
27
|
end
|
28
28
|
end
|
29
29
|
|
@@ -34,7 +34,7 @@ module Obfusk; module Util
|
|
34
34
|
# @raise RunError on ENOENT
|
35
35
|
def self.spawn(*args)
|
36
36
|
_enoent_to_run('spawn', args) do |a|
|
37
|
-
Kernel.spawn
|
37
|
+
Kernel.spawn(*_spawn_args(*a))
|
38
38
|
end
|
39
39
|
end
|
40
40
|
|
@@ -46,18 +46,102 @@ module Obfusk; module Util
|
|
46
46
|
# better Kernel.system; returns true/false; see exec, spawn, spawn_w
|
47
47
|
# @raise RunError on failure (Kernel.system -> nil)
|
48
48
|
def self.system(*args)
|
49
|
-
r = Kernel.system
|
49
|
+
r = Kernel.system(*_spawn_args(*args))
|
50
50
|
raise RunError, "failed to run command #{args} (#$?)" if r.nil?
|
51
51
|
r
|
52
52
|
end
|
53
53
|
|
54
54
|
# --
|
55
55
|
|
56
|
+
# better Open3.capture2; see capture3
|
57
|
+
# @raise RunError on ENOENT
|
58
|
+
def self.capture2(*args)
|
59
|
+
_enoent_to_run('capture2', args) do |a|
|
60
|
+
Open3.capture2(*_spawn_args(*a))
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
# better Open3.capture2e; see capture3
|
65
|
+
# @raise RunError on ENOENT
|
66
|
+
def self.capture2e(*args)
|
67
|
+
_enoent_to_run('capture2e', args) do |a|
|
68
|
+
Open3.capture2e(*_spawn_args(*a))
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
# better Open3.capture3; see popen3
|
73
|
+
# @raise RunError on ENOENT
|
74
|
+
def self.capture3(*args)
|
75
|
+
_enoent_to_run('capture3', args) do |a|
|
76
|
+
Open3.capture3(*_spawn_args(*a))
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
# --
|
81
|
+
|
82
|
+
# better Open3.pipeline; see exec, popen3
|
83
|
+
# @raise RunError on ENOENT
|
84
|
+
def self.pipeline(*args)
|
85
|
+
_enoent_to_run('pipeline', args) do |a|
|
86
|
+
Open3.pipeline(*_pipeline_args(*a))
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
# better Open3.pipeline_r; see pipeline_rw
|
91
|
+
# @raise RunError on ENOENT
|
92
|
+
def self.pipeline_r(*args, &b)
|
93
|
+
_enoent_to_run('pipeline_r', args) do |a|
|
94
|
+
Open3.pipeline_r(*_pipeline_args(*a), &b)
|
95
|
+
end
|
96
|
+
end
|
97
|
+
|
98
|
+
# better Open3.pipeline_rw; see popen3
|
99
|
+
# @raise RunError on ENOENT
|
100
|
+
def self.pipeline_rw(*args, &b)
|
101
|
+
_enoent_to_run('pipeline_rw', args) do |a|
|
102
|
+
Open3.pipeline_rw(*_pipeline_args(*a), &b)
|
103
|
+
end
|
104
|
+
end
|
105
|
+
|
106
|
+
# better Open3.pipeline_start; see popen3
|
107
|
+
# @raise RunError on ENOENT
|
108
|
+
def self.pipeline_start(*args, &b)
|
109
|
+
_enoent_to_run('pipeline_start', args) do |a|
|
110
|
+
Open3.pipeline_start(*_pipeline_args(*a), &b)
|
111
|
+
end
|
112
|
+
end
|
113
|
+
|
114
|
+
# better Open3.pipeline_w; see pipeline_rw
|
115
|
+
# @raise RunError on ENOENT
|
116
|
+
def self.pipeline_w(*args, &b)
|
117
|
+
_enoent_to_run('pipeline_w', args) do |a|
|
118
|
+
Open3.pipeline_w(*_pipeline_args(*a), &b)
|
119
|
+
end
|
120
|
+
end
|
121
|
+
|
122
|
+
# --
|
123
|
+
|
124
|
+
# better Open3.popen2; see popen3
|
125
|
+
# @raise RunError on ENOENT
|
126
|
+
def self.popen2(*args, &b)
|
127
|
+
_enoent_to_run('popen2', args) do |a|
|
128
|
+
Open3.popen2(*_spawn_args(*a), &b)
|
129
|
+
end
|
130
|
+
end
|
131
|
+
|
132
|
+
# better Open3.popen2e; see popen3
|
133
|
+
# @raise RunError on ENOENT
|
134
|
+
def self.popen2e(*args, &b)
|
135
|
+
_enoent_to_run('popen2e', args) do |a|
|
136
|
+
Open3.popen2e(*_spawn_args(*a), &b)
|
137
|
+
end
|
138
|
+
end
|
139
|
+
|
56
140
|
# better Open3.popen3; see exec, spawn, spawn_w, system
|
57
141
|
# @raise RunError on ENOENT
|
58
142
|
def self.popen3(*args, &b)
|
59
143
|
_enoent_to_run('popen3', args) do |a|
|
60
|
-
Open3.popen3
|
144
|
+
Open3.popen3(*_spawn_args(*a), &b)
|
61
145
|
end
|
62
146
|
end
|
63
147
|
|
@@ -65,12 +149,12 @@ module Obfusk; module Util
|
|
65
149
|
|
66
150
|
# ohai + spawn; requires `obfusk/util/message`
|
67
151
|
def self.ospawn(*args)
|
68
|
-
::Obfusk::Util.ohai _spawn_rm_opts(args)*' '; spawn
|
152
|
+
::Obfusk::Util.ohai _spawn_rm_opts(args)*' '; spawn(*args)
|
69
153
|
end
|
70
154
|
|
71
155
|
# ohai + spawn_w; requires `obfusk/util/message`
|
72
156
|
def self.ospawn_w(*args)
|
73
|
-
::Obfusk::Util.ohai _spawn_rm_opts(args)*' '; spawn_w
|
157
|
+
::Obfusk::Util.ohai _spawn_rm_opts(args)*' '; spawn_w(*args)
|
74
158
|
end
|
75
159
|
|
76
160
|
# --
|
@@ -114,6 +198,15 @@ module Obfusk; module Util
|
|
114
198
|
end
|
115
199
|
end # }}}1
|
116
200
|
|
201
|
+
# helper
|
202
|
+
def self._pipeline_args(*args) # {{{1
|
203
|
+
if args.last && (l = args.last.dup).is_a?(Hash)
|
204
|
+
args[0..-2].map { |c| _spawn_args(*c) } + [l]
|
205
|
+
else
|
206
|
+
args.map { |c| _spawn_args(*c) }
|
207
|
+
end
|
208
|
+
end # }}}1
|
209
|
+
|
117
210
|
# helper
|
118
211
|
def self._spawn_rm_opts(args)
|
119
212
|
args.last.is_a?(Hash) ? args[0..-2] : args
|
@@ -0,0 +1,102 @@
|
|
1
|
+
# -- ; {{{1
|
2
|
+
#
|
3
|
+
# File : obfusk/util/sh.rb
|
4
|
+
# Maintainer : Felix C. Stegerman <flx@obfusk.net>
|
5
|
+
# Date : 2014-02-19
|
6
|
+
#
|
7
|
+
# Copyright : Copyright (C) 2014 Felix C. Stegerman
|
8
|
+
# Licence : LGPLv3+
|
9
|
+
#
|
10
|
+
# -- ; }}}1
|
11
|
+
|
12
|
+
require 'obfusk/util/run'
|
13
|
+
|
14
|
+
# my namespace
|
15
|
+
module Obfusk; module Util
|
16
|
+
|
17
|
+
# shell command result
|
18
|
+
class Sh < Struct.new(:cmd, :status, :stdout, :stderr) # {{{1
|
19
|
+
|
20
|
+
# was the exitstatus zero?
|
21
|
+
def ok?
|
22
|
+
status.exitstatus == 0
|
23
|
+
end
|
24
|
+
|
25
|
+
# @raise RunError when exitstatus non-zero
|
26
|
+
def ok!
|
27
|
+
::Obfusk::Util.chk_exitstatus cmd, status.exitstatus
|
28
|
+
end
|
29
|
+
|
30
|
+
# ... TODO ...
|
31
|
+
|
32
|
+
end # }}}1
|
33
|
+
|
34
|
+
# --
|
35
|
+
|
36
|
+
# run a command using bash (w/ arguments)
|
37
|
+
#
|
38
|
+
# ```
|
39
|
+
# sh 'echo "$0" ">>$1<<" ">>$FOO<<"', '"one"', 'FOO' => 'foo'
|
40
|
+
# # => bash >>"one"<< >>foo<<
|
41
|
+
# ```
|
42
|
+
#
|
43
|
+
# @param [Hash] args.last
|
44
|
+
# * `:shell` the shell to use (default: `'bash'`)
|
45
|
+
# * `:print` whether to pass `-x` to the shell (default: `false`)
|
46
|
+
# * `:exit` whether to pass `-e` to the shell (default: `false`)
|
47
|
+
# * `:merge` whether to merge stdout and stderr (default: `false`)
|
48
|
+
# * `:env` the environment
|
49
|
+
# * any other `String` key is added to the `env`
|
50
|
+
# * any other `Symbol` key is passed as an option to `capture3`
|
51
|
+
# @return [Sh]
|
52
|
+
def self.sh(cmd, *args) # {{{1
|
53
|
+
a, o = args.last && (l = args.last.dup).is_a?(Hash) ?
|
54
|
+
[args[0..-2],l] : [args,{}]
|
55
|
+
shell = o.delete(:shell) || 'bash'
|
56
|
+
print = o.delete :print
|
57
|
+
exit = o.delete :exit
|
58
|
+
merge = o.delete :merge
|
59
|
+
env = o.delete(:env) || {}
|
60
|
+
syms = o.select { |k,v| Symbol === k }
|
61
|
+
strs = o.select { |k,v| String === k }
|
62
|
+
opts = syms.merge env: env.merge(strs)
|
63
|
+
c = [shell] + (print ? %w{-x} : []) + (exit ? %w{-e} : []) +
|
64
|
+
['-c', cmd, shell] + a
|
65
|
+
if merge
|
66
|
+
stderr = nil; stdout, status = capture2e *c, opts
|
67
|
+
else
|
68
|
+
stdout, stderr, status = capture3 *c, opts
|
69
|
+
end
|
70
|
+
Sh.new c, status, stdout, stderr
|
71
|
+
end # }}}1
|
72
|
+
|
73
|
+
# `sh(...).ok?`
|
74
|
+
def self.sh?(cmd, *args)
|
75
|
+
sh(cmd, *args).ok?
|
76
|
+
end
|
77
|
+
|
78
|
+
# `sh(...).ok!`
|
79
|
+
def self.sh!(cmd, *args)
|
80
|
+
sh(cmd, *args).ok!
|
81
|
+
end
|
82
|
+
|
83
|
+
# --
|
84
|
+
|
85
|
+
# ohai + sh; requires `obfusk/util/message`
|
86
|
+
def self.osh(*args)
|
87
|
+
::Obfusk::Util.ohai _spawn_rm_opts(args)*' '; sh(*args)
|
88
|
+
end
|
89
|
+
|
90
|
+
# ohai + sh?; requires `obfusk/util/message`
|
91
|
+
def self.osh?(*args)
|
92
|
+
::Obfusk::Util.ohai _spawn_rm_opts(args)*' '; sh?(*args)
|
93
|
+
end
|
94
|
+
|
95
|
+
# ohai + sh!; requires `obfusk/util/message`
|
96
|
+
def self.osh!(*args)
|
97
|
+
::Obfusk::Util.ohai _spawn_rm_opts(args)*' '; sh!(*args)
|
98
|
+
end
|
99
|
+
|
100
|
+
end; end
|
101
|
+
|
102
|
+
# vim: set tw=70 sw=2 sts=2 et fdm=marker :
|
data/lib/obfusk/util/spec.rb
CHANGED
@@ -2,10 +2,10 @@
|
|
2
2
|
#
|
3
3
|
# File : obfusk/util/spec.rb
|
4
4
|
# Maintainer : Felix C. Stegerman <flx@obfusk.net>
|
5
|
-
# Date :
|
5
|
+
# Date : 2014-02-19
|
6
6
|
#
|
7
|
-
# Copyright : Copyright (C)
|
8
|
-
# Licence :
|
7
|
+
# Copyright : Copyright (C) 2014 Felix C. Stegerman
|
8
|
+
# Licence : LGPLv3+
|
9
9
|
#
|
10
10
|
# -- ; }}}1
|
11
11
|
|
data/lib/obfusk/util/struct.rb
CHANGED
@@ -2,10 +2,10 @@
|
|
2
2
|
#
|
3
3
|
# File : obfusk/util/struct.rb
|
4
4
|
# Maintainer : Felix C. Stegerman <flx@obfusk.net>
|
5
|
-
# Date :
|
5
|
+
# Date : 2014-02-19
|
6
6
|
#
|
7
|
-
# Copyright : Copyright (C)
|
8
|
-
# Licence :
|
7
|
+
# Copyright : Copyright (C) 2014 Felix C. Stegerman
|
8
|
+
# Licence : LGPLv3+
|
9
9
|
#
|
10
10
|
# -- ; }}}1
|
11
11
|
|
@@ -24,6 +24,7 @@ module Obfusk; module Util
|
|
24
24
|
base.extend ClassMethods
|
25
25
|
end
|
26
26
|
|
27
|
+
# class methods
|
27
28
|
module ClassMethods # {{{2
|
28
29
|
|
29
30
|
# new, block, freeze, return
|
@@ -73,7 +74,7 @@ module Obfusk; module Util
|
|
73
74
|
h.each { |k,v| self[k] = v }
|
74
75
|
end
|
75
76
|
|
76
|
-
self.class_eval
|
77
|
+
self.class_eval(&b) if b
|
77
78
|
|
78
79
|
end
|
79
80
|
end # }}}1
|
data/lib/obfusk/util/term.rb
CHANGED
@@ -2,10 +2,10 @@
|
|
2
2
|
#
|
3
3
|
# File : obfusk/util/term.rb
|
4
4
|
# Maintainer : Felix C. Stegerman <flx@obfusk.net>
|
5
|
-
# Date :
|
5
|
+
# Date : 2014-02-19
|
6
6
|
#
|
7
|
-
# Copyright : Copyright (C)
|
8
|
-
# Licence :
|
7
|
+
# Copyright : Copyright (C) 2014 Felix C. Stegerman
|
8
|
+
# Licence : LGPLv3+
|
9
9
|
#
|
10
10
|
# -- ; }}}1
|
11
11
|
|
data/lib/obfusk/util/valid.rb
CHANGED
@@ -2,10 +2,10 @@
|
|
2
2
|
#
|
3
3
|
# File : obfusk/util/valid.rb
|
4
4
|
# Maintainer : Felix C. Stegerman <flx@obfusk.net>
|
5
|
-
# Date :
|
5
|
+
# Date : 2014-02-19
|
6
6
|
#
|
7
|
-
# Copyright : Copyright (C)
|
8
|
-
# Licence :
|
7
|
+
# Copyright : Copyright (C) 2014 Felix C. Stegerman
|
8
|
+
# Licence : LGPLv3+
|
9
9
|
#
|
10
10
|
# -- ; }}}1
|
11
11
|
|
@@ -35,7 +35,7 @@ module Obfusk; module Util; module Valid
|
|
35
35
|
# validate value against regex
|
36
36
|
# @raise ValidationError on no match
|
37
37
|
def self.validate!(x, rx, name)
|
38
|
-
x.to_s.match
|
38
|
+
x.to_s.match(/^(#{rx})$/) or invalid! "invalid #{name}"
|
39
39
|
end
|
40
40
|
|
41
41
|
end; end; end
|
data/lib/obfusk/util/version.rb
CHANGED
data/obfusk-util.gemspec
CHANGED
@@ -7,8 +7,6 @@ Gem::Specification.new do |s|
|
|
7
7
|
|
8
8
|
s.description = <<-END.gsub(/^ {4}/, '')
|
9
9
|
miscellaneous utility library for ruby
|
10
|
-
|
11
|
-
...
|
12
10
|
END
|
13
11
|
|
14
12
|
s.version = Obfusk::Util::VERSION
|
@@ -17,7 +15,7 @@ Gem::Specification.new do |s|
|
|
17
15
|
s.authors = [ 'Felix C. Stegerman' ]
|
18
16
|
s.email = %w{ flx@obfusk.net }
|
19
17
|
|
20
|
-
s.
|
18
|
+
s.licenses = %w{ LGPLv3+ }
|
21
19
|
|
22
20
|
s.files = %w{ .yardopts README.md Rakefile } \
|
23
21
|
+ %w{ obfusk-util.gemspec } \
|
@@ -2,10 +2,10 @@
|
|
2
2
|
#
|
3
3
|
# File : obfusk/util/cmd_spec.rb
|
4
4
|
# Maintainer : Felix C. Stegerman <flx@obfusk.net>
|
5
|
-
# Date :
|
5
|
+
# Date : 2014-02-19
|
6
6
|
#
|
7
|
-
# Copyright : Copyright (C)
|
8
|
-
# Licence :
|
7
|
+
# Copyright : Copyright (C) 2014 Felix C. Stegerman
|
8
|
+
# Licence : LGPLv3+
|
9
9
|
#
|
10
10
|
# -- ; }}}1
|
11
11
|
|
@@ -2,10 +2,10 @@
|
|
2
2
|
#
|
3
3
|
# File : obfusk/util/data_spec.rb
|
4
4
|
# Maintainer : Felix C. Stegerman <flx@obfusk.net>
|
5
|
-
# Date :
|
5
|
+
# Date : 2014-02-19
|
6
6
|
#
|
7
|
-
# Copyright : Copyright (C)
|
8
|
-
# Licence :
|
7
|
+
# Copyright : Copyright (C) 2014 Felix C. Stegerman
|
8
|
+
# Licence : LGPLv3+
|
9
9
|
#
|
10
10
|
# -- ; }}}1
|
11
11
|
|
@@ -2,10 +2,10 @@
|
|
2
2
|
#
|
3
3
|
# File : obfusk/util/die_spec.rb
|
4
4
|
# Maintainer : Felix C. Stegerman <flx@obfusk.net>
|
5
|
-
# Date :
|
5
|
+
# Date : 2014-02-19
|
6
6
|
#
|
7
|
-
# Copyright : Copyright (C)
|
8
|
-
# Licence :
|
7
|
+
# Copyright : Copyright (C) 2014 Felix C. Stegerman
|
8
|
+
# Licence : LGPLv3+
|
9
9
|
#
|
10
10
|
# -- ; }}}1
|
11
11
|
|
data/spec/obfusk/util/fs_spec.rb
CHANGED
@@ -2,10 +2,10 @@
|
|
2
2
|
#
|
3
3
|
# File : obfusk/util/fs_spec.rb
|
4
4
|
# Maintainer : Felix C. Stegerman <flx@obfusk.net>
|
5
|
-
# Date :
|
5
|
+
# Date : 2014-02-19
|
6
6
|
#
|
7
|
-
# Copyright : Copyright (C)
|
8
|
-
# Licence :
|
7
|
+
# Copyright : Copyright (C) 2014 Felix C. Stegerman
|
8
|
+
# Licence : LGPLv3+
|
9
9
|
#
|
10
10
|
# -- ; }}}1
|
11
11
|
|
@@ -2,10 +2,10 @@
|
|
2
2
|
#
|
3
3
|
# File : obfusk/util/message_spec.rb
|
4
4
|
# Maintainer : Felix C. Stegerman <flx@obfusk.net>
|
5
|
-
# Date :
|
5
|
+
# Date : 2014-02-19
|
6
6
|
#
|
7
|
-
# Copyright : Copyright (C)
|
8
|
-
# Licence :
|
7
|
+
# Copyright : Copyright (C) 2014 Felix C. Stegerman
|
8
|
+
# Licence : LGPLv3+
|
9
9
|
#
|
10
10
|
# -- ; }}}1
|
11
11
|
|
@@ -2,10 +2,10 @@
|
|
2
2
|
#
|
3
3
|
# File : obfusk/util/module_spec.rb
|
4
4
|
# Maintainer : Felix C. Stegerman <flx@obfusk.net>
|
5
|
-
# Date :
|
5
|
+
# Date : 2014-02-19
|
6
6
|
#
|
7
|
-
# Copyright : Copyright (C)
|
8
|
-
# Licence :
|
7
|
+
# Copyright : Copyright (C) 2014 Felix C. Stegerman
|
8
|
+
# Licence : LGPLv3+
|
9
9
|
#
|
10
10
|
# -- ; }}}1
|
11
11
|
|
@@ -23,6 +23,22 @@ ms = ou::Module__Spec
|
|
23
23
|
|
24
24
|
describe 'obfusk/util/module' do
|
25
25
|
|
26
|
+
context 'link_mod_method' do # {{{1
|
27
|
+
it 'link_mod_method' do
|
28
|
+
x = Module.new; y = Module.new
|
29
|
+
x.module_eval do
|
30
|
+
def self.foo; 42; end
|
31
|
+
def self.bar; 37; end
|
32
|
+
end
|
33
|
+
y.module_eval do
|
34
|
+
ou.link_mod_method x, :foo, self
|
35
|
+
ou.link_mod_method x, :bar, self, :baz
|
36
|
+
end
|
37
|
+
y.foo.should == 42
|
38
|
+
y.baz.should == 37
|
39
|
+
end
|
40
|
+
end # }}}1
|
41
|
+
|
26
42
|
context 'require_all' do # {{{1
|
27
43
|
it 'require_all' do
|
28
44
|
Dir.mktmpdir do |dir|
|
@@ -2,10 +2,10 @@
|
|
2
2
|
#
|
3
3
|
# File : obfusk/util/opt_spec.rb
|
4
4
|
# Maintainer : Felix C. Stegerman <flx@obfusk.net>
|
5
|
-
# Date :
|
5
|
+
# Date : 2014-02-19
|
6
6
|
#
|
7
|
-
# Copyright : Copyright (C)
|
8
|
-
# Licence :
|
7
|
+
# Copyright : Copyright (C) 2014 Felix C. Stegerman
|
8
|
+
# Licence : LGPLv3+
|
9
9
|
#
|
10
10
|
# -- ; }}}1
|
11
11
|
|
data/spec/obfusk/util/os_spec.rb
CHANGED
@@ -2,10 +2,10 @@
|
|
2
2
|
#
|
3
3
|
# File : obfusk/util/os_spec.rb
|
4
4
|
# Maintainer : Felix C. Stegerman <flx@obfusk.net>
|
5
|
-
# Date :
|
5
|
+
# Date : 2014-02-19
|
6
6
|
#
|
7
|
-
# Copyright : Copyright (C)
|
8
|
-
# Licence :
|
7
|
+
# Copyright : Copyright (C) 2014 Felix C. Stegerman
|
8
|
+
# Licence : LGPLv3+
|
9
9
|
#
|
10
10
|
# -- ; }}}1
|
11
11
|
|
@@ -32,7 +32,7 @@ describe 'obfusk/util/os' do
|
|
32
32
|
|
33
33
|
context 'now' do # {{{1
|
34
34
|
it 'now' do
|
35
|
-
os.now.should match
|
35
|
+
os.now.should match(/^\d\d\d\d-\d\d-\d\d \d\d:\d\d:\d\d$/)
|
36
36
|
end
|
37
37
|
end # }}}1
|
38
38
|
|
@@ -2,10 +2,10 @@
|
|
2
2
|
#
|
3
3
|
# File : obfusk/util/process_spec.rb
|
4
4
|
# Maintainer : Felix C. Stegerman <flx@obfusk.net>
|
5
|
-
# Date :
|
5
|
+
# Date : 2014-02-19
|
6
6
|
#
|
7
|
-
# Copyright : Copyright (C)
|
8
|
-
# Licence :
|
7
|
+
# Copyright : Copyright (C) 2014 Felix C. Stegerman
|
8
|
+
# Licence : LGPLv3+
|
9
9
|
#
|
10
10
|
# -- ; }}}1
|
11
11
|
|
@@ -19,7 +19,7 @@ describe 'obfusk/util/process' do
|
|
19
19
|
it 'age' do
|
20
20
|
pid = spawn 'sleep 100'
|
21
21
|
begin
|
22
|
-
pr.age(pid).should match
|
22
|
+
pr.age(pid).should match(/^00:0\d$/) # ????
|
23
23
|
ensure
|
24
24
|
Process.kill 'TERM', pid; Process.wait pid
|
25
25
|
end
|