obfusk-util 0.0.1.SNAPSHOT.20130725000153 → 0.4.2
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 +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
|