utilrb 2.0.1 → 2.0.2.b1
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.
- data/Manifest.txt +1 -0
- data/Rakefile +10 -2
- data/ext/utilrb/extconf.rb +4 -2
- data/ext/utilrb/readline.c +52 -0
- data/ext/utilrb/utilrb.cc +2 -0
- data/lib/utilrb/common.rb +3 -3
- data/lib/utilrb/event_loop.rb +5 -0
- data/lib/utilrb/kernel/load_dsl_file.rb +2 -5
- data/lib/utilrb/kernel/with_module.rb +0 -15
- data/lib/utilrb/logger/root.rb +3 -3
- data/lib/utilrb/module/const_defined_here_p.rb +0 -6
- data/lib/utilrb/object/scoped_eval.rb +2 -11
- data/lib/utilrb/pkgconfig.rb +8 -8
- data/lib/utilrb/spawn.rb +2 -0
- data/lib/utilrb/thread_pool.rb +31 -0
- data/test/test_kernel.rb +0 -26
- metadata +41 -40
data/Manifest.txt
CHANGED
data/Rakefile
CHANGED
@@ -10,12 +10,21 @@ begin
|
|
10
10
|
developer "Sylvain Joyeux", "sylvain.joyeux@m4x.org"
|
11
11
|
self.readme_file = 'README.rd'
|
12
12
|
|
13
|
+
|
13
14
|
extra_deps <<
|
14
15
|
['facets', '>= 2.4.0'] <<
|
15
16
|
['rake', '>= 0.9'] <<
|
16
|
-
["
|
17
|
+
["hoe", ">= 3.7.1"] <<
|
17
18
|
["hoe-yard", ">= 0.1.2"]
|
18
19
|
|
20
|
+
if RUBY_VERSION < '2.0'
|
21
|
+
spec_extras[:required_ruby_version] = '~> 1.9'
|
22
|
+
extra_deps << ["rake-compiler", '~> 0.8.0']
|
23
|
+
else
|
24
|
+
spec_extras[:required_ruby_version] = '>= 2.0'
|
25
|
+
extra_deps << ["rake-compiler"]
|
26
|
+
end
|
27
|
+
|
19
28
|
extra_dev_deps <<
|
20
29
|
['flexmock', '>= 0.8.6'] <<
|
21
30
|
['debugger-ruby_core_source', '>= 0']
|
@@ -36,7 +45,6 @@ begin
|
|
36
45
|
ext.name = 'utilrb'
|
37
46
|
ext.ext_dir = 'ext/utilrb'
|
38
47
|
ext.lib_dir = 'lib/utilrb'
|
39
|
-
ext.config_options << "-DRUBINIUS"
|
40
48
|
ext.source_pattern ="*.{c,cc,cpp}"
|
41
49
|
end
|
42
50
|
|
data/ext/utilrb/extconf.rb
CHANGED
@@ -5,6 +5,7 @@ if try_link("int main() { }", "-module")
|
|
5
5
|
$LDFLAGS += " -module"
|
6
6
|
end
|
7
7
|
|
8
|
+
$LDFLAGS += " -lreadline"
|
8
9
|
if RUBY_VERSION < "1.9"
|
9
10
|
$CFLAGS += " -DRUBY_IS_18"
|
10
11
|
puts "not building with core source"
|
@@ -12,10 +13,11 @@ if RUBY_VERSION < "1.9"
|
|
12
13
|
else
|
13
14
|
begin
|
14
15
|
require 'debugger/ruby_core_source'
|
15
|
-
$CFLAGS += " -DHAS_RUBY_SOURCE"
|
16
16
|
hdrs = lambda { try_compile("#include <vm_core.h>") }
|
17
|
+
$CFLAGS += " -DHAS_RUBY_SOURCE"
|
17
18
|
Debugger::RubyCoreSource.create_makefile_with_core(hdrs, "utilrb/utilrb")
|
18
|
-
rescue
|
19
|
+
rescue Exception
|
20
|
+
$CFLAGS.gsub!(/ -DHAS_RUBY_SOURCE/, '')
|
19
21
|
puts "not building with core source"
|
20
22
|
create_makefile("utilrb/utilrb")
|
21
23
|
end
|
@@ -0,0 +1,52 @@
|
|
1
|
+
#include <stdio.h>
|
2
|
+
#include <readline/readline.h>
|
3
|
+
#include <ruby.h>
|
4
|
+
|
5
|
+
static VALUE readline_save_prompt(VALUE self)
|
6
|
+
{
|
7
|
+
rl_save_prompt();
|
8
|
+
return Qnil;
|
9
|
+
}
|
10
|
+
|
11
|
+
static VALUE readline_message(VALUE self, VALUE msg)
|
12
|
+
{
|
13
|
+
rl_message("%s", StringValuePtr(msg));
|
14
|
+
rl_redisplay();
|
15
|
+
return Qnil;
|
16
|
+
}
|
17
|
+
|
18
|
+
static VALUE readline_print(VALUE self, VALUE msg)
|
19
|
+
{
|
20
|
+
int need_hack = (rl_readline_state & RL_STATE_READCMD) > 0;
|
21
|
+
char *saved_line;
|
22
|
+
int saved_point;
|
23
|
+
if (need_hack)
|
24
|
+
{
|
25
|
+
saved_point = rl_point;
|
26
|
+
saved_line = rl_copy_text(0, rl_end);
|
27
|
+
rl_save_prompt();
|
28
|
+
rl_replace_line("", 0);
|
29
|
+
rl_redisplay();
|
30
|
+
}
|
31
|
+
|
32
|
+
printf("%s", StringValuePtr(msg));
|
33
|
+
|
34
|
+
if (need_hack)
|
35
|
+
{
|
36
|
+
rl_restore_prompt();
|
37
|
+
rl_replace_line(saved_line, 0);
|
38
|
+
rl_point = saved_point;
|
39
|
+
rl_redisplay();
|
40
|
+
free(saved_line);
|
41
|
+
}
|
42
|
+
return Qnil;
|
43
|
+
}
|
44
|
+
|
45
|
+
extern void Init_utilrb_readline()
|
46
|
+
{
|
47
|
+
VALUE mReadline = rb_define_module("Readline");
|
48
|
+
rb_define_singleton_method(mReadline, "save_prompt", readline_save_prompt, 0);
|
49
|
+
rb_define_singleton_method(mReadline, "message", readline_message, 1);
|
50
|
+
rb_define_singleton_method(mReadline, "print", readline_print, 1);
|
51
|
+
}
|
52
|
+
|
data/ext/utilrb/utilrb.cc
CHANGED
@@ -55,6 +55,7 @@ static VALUE kernel_crash(VALUE klass)
|
|
55
55
|
extern "C" void Init_value_set();
|
56
56
|
extern "C" void Init_weakref(VALUE mUtilrb);
|
57
57
|
extern "C" void Init_proc();
|
58
|
+
extern "C" void Init_utilrb_readline();
|
58
59
|
|
59
60
|
extern "C" void Init_utilrb()
|
60
61
|
{
|
@@ -73,5 +74,6 @@ extern "C" void Init_utilrb()
|
|
73
74
|
Init_proc();
|
74
75
|
|
75
76
|
Init_value_set();
|
77
|
+
Init_utilrb_readline();
|
76
78
|
}
|
77
79
|
|
data/lib/utilrb/common.rb
CHANGED
@@ -3,9 +3,7 @@
|
|
3
3
|
# the standard class extensions used by www.rock-robotics.org projects.
|
4
4
|
module Utilrb
|
5
5
|
unless defined? Utilrb::VERSION
|
6
|
-
VERSION = "2.0.
|
7
|
-
RUBY_IS_19 = (RUBY_VERSION >= "1.9.2")
|
8
|
-
RUBY_IS_191 = (RUBY_VERSION >= "1.9") && (RUBY_VERSION < "1.9.2")
|
6
|
+
VERSION = "2.0.2.b1"
|
9
7
|
end
|
10
8
|
|
11
9
|
LIB_DIR = File.expand_path(File.dirname(__FILE__))
|
@@ -16,6 +14,8 @@ module Utilrb
|
|
16
14
|
STDERR.puts "Utilrb: not loading the C extension"
|
17
15
|
else
|
18
16
|
begin
|
17
|
+
# We need readline
|
18
|
+
require 'readline'
|
19
19
|
require 'utilrb/utilrb'
|
20
20
|
UTILRB_EXT_MODE = true
|
21
21
|
STDERR.puts "Utilrb: loaded C extension" if ENV['UTILRB_EXT_MODE']
|
data/lib/utilrb/event_loop.rb
CHANGED
@@ -231,6 +231,11 @@ module Utilrb
|
|
231
231
|
thread_pool.sync(sync_key,*args,&block)
|
232
232
|
end
|
233
233
|
|
234
|
+
# (see ThreadPool#sync_timeout)
|
235
|
+
def sync_timeout(sync_key,timeout,*args,&block)
|
236
|
+
thread_pool.sync_timeout(sync_key,timeout,*args,&block)
|
237
|
+
end
|
238
|
+
|
234
239
|
def pretty_print(pp) # :nodoc:
|
235
240
|
pp.text "EventLoop "
|
236
241
|
end
|
@@ -160,10 +160,7 @@ module Kernel
|
|
160
160
|
end
|
161
161
|
end
|
162
162
|
|
163
|
-
old_constants, new_constants = nil
|
164
|
-
if !Utilrb::RUBY_IS_191
|
165
|
-
old_constants = Kernel.constants
|
166
|
-
end
|
163
|
+
old_constants, new_constants = Kernel.constants, nil
|
167
164
|
|
168
165
|
sandbox = sandbox.new(proxied_object)
|
169
166
|
sandbox.with_module(*context) do
|
@@ -184,7 +181,7 @@ module Kernel
|
|
184
181
|
|
185
182
|
# Check if the user defined new constants by using class K and/or
|
186
183
|
# mod Mod
|
187
|
-
if !
|
184
|
+
if !new_constants
|
188
185
|
new_constants = Kernel.constants
|
189
186
|
end
|
190
187
|
|
@@ -1,19 +1,5 @@
|
|
1
1
|
require 'utilrb/common'
|
2
2
|
module Kernel
|
3
|
-
if Utilrb::RUBY_IS_191
|
4
|
-
def with_module(*consts, &blk)
|
5
|
-
slf = self
|
6
|
-
|
7
|
-
l = if !block_given? && consts.last.respond_to?(:to_str)
|
8
|
-
eval_string = consts.pop
|
9
|
-
lambda { slf.instance_eval(eval_string) }
|
10
|
-
else
|
11
|
-
lambda { slf.instance_eval(&blk) }
|
12
|
-
end
|
13
|
-
|
14
|
-
consts.inject(l) {|l, k| lambda { k.class_eval(&l) } }.call
|
15
|
-
end
|
16
|
-
else
|
17
3
|
module WithModuleConstResolutionExtension
|
18
4
|
def const_missing(const_name)
|
19
5
|
if with_module_setup = Thread.current[:__with_module__]
|
@@ -48,6 +34,5 @@ module Kernel
|
|
48
34
|
ensure
|
49
35
|
Thread.current[:__with_module__].pop
|
50
36
|
end
|
51
|
-
end
|
52
37
|
end
|
53
38
|
|
data/lib/utilrb/logger/root.rb
CHANGED
@@ -42,7 +42,7 @@ class Logger
|
|
42
42
|
def self.Root(progname, base_level, &block)
|
43
43
|
begin
|
44
44
|
base_level = ENV['BASE_LOG_LEVEL'].upcase.to_sym if ENV['BASE_LOG_LEVEL']
|
45
|
-
base_level = Logger.const_get( base_level ) if base_level.is_a? Symbol
|
45
|
+
base_level = ::Logger.const_get( base_level ) if base_level.is_a? Symbol
|
46
46
|
rescue Exception => e
|
47
47
|
raise ArgumentError, "Log level #{base_level} is not available in the ruby Logger"
|
48
48
|
end
|
@@ -58,8 +58,8 @@ class Logger
|
|
58
58
|
end
|
59
59
|
|
60
60
|
Module.new do
|
61
|
-
include Logger::Forward
|
62
|
-
include Logger::HierarchyElement
|
61
|
+
include ::Logger::Forward
|
62
|
+
include ::Logger::HierarchyElement
|
63
63
|
|
64
64
|
def has_own_logger?; true end
|
65
65
|
|
@@ -1,17 +1,8 @@
|
|
1
1
|
require 'utilrb/common'
|
2
2
|
require 'utilrb/kernel/with_module'
|
3
3
|
class Object
|
4
|
-
|
5
|
-
|
6
|
-
modules = b.binding.eval "Module.nesting"
|
7
|
-
with_module(*modules) do
|
8
|
-
send(type, &b)
|
9
|
-
end
|
10
|
-
end
|
11
|
-
else
|
12
|
-
def scoped_eval(type = :instance_eval, &b)
|
13
|
-
send(type, &b)
|
14
|
-
end
|
4
|
+
def scoped_eval(type = :instance_eval, &b)
|
5
|
+
send(type, &b)
|
15
6
|
end
|
16
7
|
end
|
17
8
|
|
data/lib/utilrb/pkgconfig.rb
CHANGED
@@ -50,16 +50,16 @@ module Utilrb
|
|
50
50
|
end
|
51
51
|
@loaded_packages = Hash.new
|
52
52
|
|
53
|
-
def self.load(path)
|
53
|
+
def self.load(path, preset_variables)
|
54
54
|
pkg_name = File.basename(path, ".pc")
|
55
55
|
pkg = Class.instance_method(:new).bind(PkgConfig).call(pkg_name)
|
56
|
-
pkg.load(path)
|
56
|
+
pkg.load(path, preset_variables)
|
57
57
|
pkg
|
58
58
|
end
|
59
59
|
|
60
60
|
# Returns the pkg-config object that matches the given name, and
|
61
61
|
# optionally a version string
|
62
|
-
def self.get(name, version_spec = nil)
|
62
|
+
def self.get(name, version_spec = nil, preset_variables = Hash.new)
|
63
63
|
if !(candidates = loaded_packages[name])
|
64
64
|
paths = find_all_package_files(name)
|
65
65
|
if paths.empty?
|
@@ -68,7 +68,7 @@ module Utilrb
|
|
68
68
|
|
69
69
|
candidates = loaded_packages[name] = Array.new
|
70
70
|
paths.each do |p|
|
71
|
-
candidates << PkgConfig.load(p)
|
71
|
+
candidates << PkgConfig.load(p, preset_variables)
|
72
72
|
end
|
73
73
|
end
|
74
74
|
|
@@ -84,8 +84,8 @@ module Utilrb
|
|
84
84
|
# ...
|
85
85
|
# @return [PkgConfig] the pkg-config description
|
86
86
|
# @raise [NotFound] if the package is not found
|
87
|
-
def self.new(name, version_spec = nil)
|
88
|
-
get(name, version_spec)
|
87
|
+
def self.new(name, version_spec = nil, options = Hash.new)
|
88
|
+
get(name, version_spec, options)
|
89
89
|
end
|
90
90
|
|
91
91
|
# Returns the first package in +candidates+ that match the given version
|
@@ -206,11 +206,11 @@ module Utilrb
|
|
206
206
|
SHELL_VARS = %w{Cflags Libs Libs.private}
|
207
207
|
|
208
208
|
# Loads the information contained in +path+
|
209
|
-
def load(path)
|
209
|
+
def load(path, preset_variables = Hash.new)
|
210
210
|
@path = path
|
211
211
|
@file = File.readlines(path).map(&:strip)
|
212
212
|
|
213
|
-
raw_variables =
|
213
|
+
raw_variables = preset_variables.dup
|
214
214
|
raw_fields = Hash.new
|
215
215
|
|
216
216
|
running_line = nil
|
data/lib/utilrb/spawn.rb
CHANGED
data/lib/utilrb/thread_pool.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
require 'thread'
|
2
2
|
require 'set'
|
3
3
|
require 'utilrb/kernel/options'
|
4
|
+
require 'timeout'
|
4
5
|
|
5
6
|
module Utilrb
|
6
7
|
# ThreadPool implementation inspired by
|
@@ -448,6 +449,36 @@ module Utilrb
|
|
448
449
|
result
|
449
450
|
end
|
450
451
|
|
452
|
+
# Same as sync but raises Timeout::Error if sync_key cannot be obtained after
|
453
|
+
# the given execution time.
|
454
|
+
#
|
455
|
+
# @param [Object] sync_key The sync key
|
456
|
+
# @param [Float] timeout The timeout
|
457
|
+
# @yield [*args] the code block block
|
458
|
+
# @return [Object] The result of the code block
|
459
|
+
def sync_timeout(sync_key,timeout,*args,&block)
|
460
|
+
raise ArgumentError,"no sync key" unless sync_key
|
461
|
+
|
462
|
+
Timeout::timeout(timeout) do
|
463
|
+
@mutex.synchronize do
|
464
|
+
while(!@sync_keys.add?(sync_key))
|
465
|
+
@cond_sync_key.wait @mutex #wait until someone has removed a key
|
466
|
+
end
|
467
|
+
end
|
468
|
+
end
|
469
|
+
begin
|
470
|
+
result = block.call(*args)
|
471
|
+
ensure
|
472
|
+
@mutex.synchronize do
|
473
|
+
@sync_keys.delete sync_key
|
474
|
+
end
|
475
|
+
@cond_sync_key.signal
|
476
|
+
@cond.signal # worker threads are just waiting for work no matter if it is
|
477
|
+
# because of a deletion of a sync_key or a task was added
|
478
|
+
end
|
479
|
+
result
|
480
|
+
end
|
481
|
+
|
451
482
|
# Processes the given {Task} as soon as the next thread is available
|
452
483
|
#
|
453
484
|
# @param [Task] task The task.
|
data/test/test_kernel.rb
CHANGED
@@ -180,32 +180,6 @@ class TC_Kernel < Test::Unit::TestCase
|
|
180
180
|
end
|
181
181
|
end
|
182
182
|
|
183
|
-
if !Utilrb::RUBY_IS_19
|
184
|
-
def test_eval_dsl_file_does_not_allow_class_definition
|
185
|
-
obj = Class.new do
|
186
|
-
def real_method
|
187
|
-
@real_method_called = true
|
188
|
-
end
|
189
|
-
end.new
|
190
|
-
|
191
|
-
Tempfile.open('test_eval_dsl_file') do |io|
|
192
|
-
io.puts <<-EOD
|
193
|
-
class NewClass
|
194
|
-
end
|
195
|
-
EOD
|
196
|
-
io.flush
|
197
|
-
|
198
|
-
begin
|
199
|
-
eval_dsl_file(io.path, obj, [], false)
|
200
|
-
flunk("NewClass has been defined")
|
201
|
-
rescue NameError => e
|
202
|
-
assert e.message =~ /NewClass/, e.message
|
203
|
-
assert e.backtrace.first =~ /#{io.path}:1/, "wrong backtrace when checking constant definition detection: #{e.backtrace[0]}, expected #{io.path}:1"
|
204
|
-
end
|
205
|
-
end
|
206
|
-
end
|
207
|
-
end
|
208
|
-
|
209
183
|
def test_dsl_exec
|
210
184
|
obj = Class.new do
|
211
185
|
def real_method_called?; !!@real_method_called end
|
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: utilrb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
5
|
-
prerelease:
|
4
|
+
version: 2.0.2.b1
|
5
|
+
prerelease: 6
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Sylvain Joyeux
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2014-06-13 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: facets
|
@@ -44,21 +44,21 @@ dependencies:
|
|
44
44
|
- !ruby/object:Gem::Version
|
45
45
|
version: '0.9'
|
46
46
|
- !ruby/object:Gem::Dependency
|
47
|
-
name:
|
47
|
+
name: hoe
|
48
48
|
requirement: !ruby/object:Gem::Requirement
|
49
49
|
none: false
|
50
50
|
requirements:
|
51
|
-
- -
|
51
|
+
- - ! '>='
|
52
52
|
- !ruby/object:Gem::Version
|
53
|
-
version:
|
53
|
+
version: 3.7.1
|
54
54
|
type: :runtime
|
55
55
|
prerelease: false
|
56
56
|
version_requirements: !ruby/object:Gem::Requirement
|
57
57
|
none: false
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - ! '>='
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
61
|
+
version: 3.7.1
|
62
62
|
- !ruby/object:Gem::Dependency
|
63
63
|
name: hoe-yard
|
64
64
|
requirement: !ruby/object:Gem::Requirement
|
@@ -76,29 +76,29 @@ dependencies:
|
|
76
76
|
- !ruby/object:Gem::Version
|
77
77
|
version: 0.1.2
|
78
78
|
- !ruby/object:Gem::Dependency
|
79
|
-
name:
|
79
|
+
name: rake-compiler
|
80
80
|
requirement: !ruby/object:Gem::Requirement
|
81
81
|
none: false
|
82
82
|
requirements:
|
83
|
-
- -
|
83
|
+
- - ~>
|
84
84
|
- !ruby/object:Gem::Version
|
85
|
-
version: 0.8.
|
86
|
-
type: :
|
85
|
+
version: 0.8.0
|
86
|
+
type: :runtime
|
87
87
|
prerelease: false
|
88
88
|
version_requirements: !ruby/object:Gem::Requirement
|
89
89
|
none: false
|
90
90
|
requirements:
|
91
|
-
- -
|
91
|
+
- - ~>
|
92
92
|
- !ruby/object:Gem::Version
|
93
|
-
version: 0.8.
|
93
|
+
version: 0.8.0
|
94
94
|
- !ruby/object:Gem::Dependency
|
95
|
-
name:
|
95
|
+
name: flexmock
|
96
96
|
requirement: !ruby/object:Gem::Requirement
|
97
97
|
none: false
|
98
98
|
requirements:
|
99
99
|
- - ! '>='
|
100
100
|
- !ruby/object:Gem::Version
|
101
|
-
version:
|
101
|
+
version: 0.8.6
|
102
102
|
type: :development
|
103
103
|
prerelease: false
|
104
104
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -106,23 +106,23 @@ dependencies:
|
|
106
106
|
requirements:
|
107
107
|
- - ! '>='
|
108
108
|
- !ruby/object:Gem::Version
|
109
|
-
version:
|
109
|
+
version: 0.8.6
|
110
110
|
- !ruby/object:Gem::Dependency
|
111
|
-
name:
|
111
|
+
name: debugger-ruby_core_source
|
112
112
|
requirement: !ruby/object:Gem::Requirement
|
113
113
|
none: false
|
114
114
|
requirements:
|
115
|
-
- -
|
115
|
+
- - ! '>='
|
116
116
|
- !ruby/object:Gem::Version
|
117
|
-
version: '
|
117
|
+
version: '0'
|
118
118
|
type: :development
|
119
119
|
prerelease: false
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
121
121
|
none: false
|
122
122
|
requirements:
|
123
|
-
- -
|
123
|
+
- - ! '>='
|
124
124
|
- !ruby/object:Gem::Version
|
125
|
-
version: '
|
125
|
+
version: '0'
|
126
126
|
description: ! 'Utilrb is yet another Ruby toolkit, in the spirit of facets. It includes
|
127
127
|
all
|
128
128
|
|
@@ -147,6 +147,7 @@ files:
|
|
147
147
|
- bm/speed.rb
|
148
148
|
- ext/utilrb/extconf.rb
|
149
149
|
- ext/utilrb/proc.c
|
150
|
+
- ext/utilrb/readline.c
|
150
151
|
- ext/utilrb/ruby_allocator.hh
|
151
152
|
- ext/utilrb/utilrb.cc
|
152
153
|
- ext/utilrb/value_set.cc
|
@@ -274,41 +275,41 @@ require_paths:
|
|
274
275
|
required_ruby_version: !ruby/object:Gem::Requirement
|
275
276
|
none: false
|
276
277
|
requirements:
|
277
|
-
- -
|
278
|
+
- - ~>
|
278
279
|
- !ruby/object:Gem::Version
|
279
|
-
version: '
|
280
|
+
version: '1.9'
|
280
281
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
281
282
|
none: false
|
282
283
|
requirements:
|
283
|
-
- - ! '
|
284
|
+
- - ! '>'
|
284
285
|
- !ruby/object:Gem::Version
|
285
|
-
version:
|
286
|
+
version: 1.3.1
|
286
287
|
requirements: []
|
287
|
-
rubyforge_project:
|
288
|
+
rubyforge_project:
|
288
289
|
rubygems_version: 1.8.23
|
289
290
|
signing_key:
|
290
291
|
specification_version: 3
|
291
292
|
summary: Utilrb is yet another Ruby toolkit, in the spirit of facets
|
292
293
|
test_files:
|
294
|
+
- test/test_objectstats.rb
|
295
|
+
- test/test_gc.rb
|
296
|
+
- test/test_array.rb
|
297
|
+
- test/test_enumerable.rb
|
293
298
|
- test/test_weakref.rb
|
299
|
+
- test/test_config.rb
|
300
|
+
- test/test_event_loop.rb
|
294
301
|
- test/test_unbound_method.rb
|
295
|
-
- test/
|
296
|
-
- test/test_exception.rb
|
297
|
-
- test/test_objectstats.rb
|
302
|
+
- test/test_set.rb
|
298
303
|
- test/test_models.rb
|
299
|
-
- test/test_dir.rb
|
300
304
|
- test/test_time.rb
|
301
|
-
- test/
|
302
|
-
- test/test_set.rb
|
303
|
-
- test/test_config.rb
|
304
|
-
- test/test_logger.rb
|
305
|
+
- test/test_kernel.rb
|
305
306
|
- test/test_proc.rb
|
306
|
-
- test/test_hash.rb
|
307
|
-
- test/test_array.rb
|
308
307
|
- test/test_object.rb
|
309
308
|
- test/test_thread_pool.rb
|
309
|
+
- test/test_dir.rb
|
310
|
+
- test/test_hash.rb
|
311
|
+
- test/test_exception.rb
|
312
|
+
- test/test_logger.rb
|
313
|
+
- test/test_misc.rb
|
310
314
|
- test/test_module.rb
|
311
|
-
- test/test_event_loop.rb
|
312
|
-
- test/test_kernel.rb
|
313
315
|
- test/test_pkgconfig.rb
|
314
|
-
- test/test_gc.rb
|