rdbi 1.1.0 → 1.2.0.pre1
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/Manifest.txt +17 -7
- data/Rakefile +10 -48
- data/lib/rdbi.rb +31 -4
- data/lib/rdbi/database.rb +2 -0
- data/lib/rdbi/version.rb +3 -0
- data/rdbi.gemspec +26 -84
- data/test/helper.rb +4 -3
- data/test/test_database.rb +2 -2
- data/test/test_implicit_load.rb +118 -0
- data/test/test_pool.rb +15 -18
- data/test/testlib/rdbi-driver-stringhyphen.rb +7 -0
- data/test/testlib/rdbi-driver-stringhyphencached.rb +7 -0
- data/test/testlib/rdbi-driver-symbolhyphen.rb +7 -0
- data/test/testlib/rdbi-driver-symbolhyphencached.rb +7 -0
- data/test/testlib/rdbi/driver/stringsubdir.rb +7 -0
- data/test/testlib/rdbi/driver/stringsubdircached.rb +7 -0
- data/test/testlib/rdbi/driver/symbolsubdir.rb +7 -0
- data/test/testlib/rdbi/driver/symbolsubdircached.rb +7 -0
- metadata +48 -132
- data/.gemtest +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0873bbb513296fc6589e4b310c3f1a63b67487a6
|
4
|
+
data.tar.gz: 0dd9ac54aa4530e9d3c889e994f5aa40200fe02b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d0b599a20c5d811e4dd75c37b484ed7f2bd90ce20f55e904ad686ecf2cf123ad3e1d3f3451d3cea062c9aa459a70f474ec77d40bd5c77e42953d738b82549ed2
|
7
|
+
data.tar.gz: 614843267785b03369c0019e9a413ba895b0b59c9fb5273501fa48c6c64f0d6ba7dcd3001340c8baea564a0ff0c5a6c7f39a11fc5fbba0957a8b1794db123cd5
|
data/Manifest.txt
CHANGED
@@ -1,25 +1,35 @@
|
|
1
|
-
.gemtest
|
2
|
-
History.txt
|
3
|
-
LICENSE
|
4
|
-
Manifest.txt
|
5
|
-
README.txt
|
6
|
-
Rakefile
|
7
1
|
docs/external-api.pdf
|
8
2
|
docs/external-api.texi
|
9
|
-
|
3
|
+
.gemtest
|
4
|
+
History.txt
|
10
5
|
lib/rdbi/cursor.rb
|
11
6
|
lib/rdbi/database.rb
|
12
7
|
lib/rdbi/driver.rb
|
13
8
|
lib/rdbi/pool.rb
|
9
|
+
lib/rdbi.rb
|
14
10
|
lib/rdbi/result.rb
|
15
11
|
lib/rdbi/schema.rb
|
16
12
|
lib/rdbi/statement.rb
|
17
13
|
lib/rdbi/types.rb
|
14
|
+
lib/rdbi/version.rb
|
15
|
+
LICENSE
|
16
|
+
Manifest.txt
|
18
17
|
perf/bench.rb
|
19
18
|
perf/profile.rb
|
19
|
+
Rakefile
|
20
20
|
rdbi.gemspec
|
21
|
+
README.txt
|
21
22
|
test/helper.rb
|
22
23
|
test/test_database.rb
|
24
|
+
test/test_implicit_load.rb
|
25
|
+
test/testlib/rdbi-driver-stringhyphencached.rb
|
26
|
+
test/testlib/rdbi-driver-stringhyphen.rb
|
27
|
+
test/testlib/rdbi/driver/stringsubdircached.rb
|
28
|
+
test/testlib/rdbi/driver/stringsubdir.rb
|
29
|
+
test/testlib/rdbi-driver-symbolhyphencached.rb
|
30
|
+
test/testlib/rdbi-driver-symbolhyphen.rb
|
31
|
+
test/testlib/rdbi/driver/symbolsubdircached.rb
|
32
|
+
test/testlib/rdbi/driver/symbolsubdir.rb
|
23
33
|
test/test_pool.rb
|
24
34
|
test/test_rdbi.rb
|
25
35
|
test/test_result.rb
|
data/Rakefile
CHANGED
@@ -1,53 +1,15 @@
|
|
1
|
-
|
1
|
+
require 'rake/testtask'
|
2
|
+
require 'rubygems/package_task'
|
2
3
|
|
3
|
-
require '
|
4
|
-
require 'hoe'
|
4
|
+
require File.expand_path('../lib/rdbi/version', __FILE__)
|
5
5
|
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
Hoe.plugin :reek
|
11
|
-
|
12
|
-
spec = Hoe.spec 'rdbi' do
|
13
|
-
developer 'Erik Hollensbe', 'erik@hollensbe.org'
|
14
|
-
|
15
|
-
self.rubyforge_name = nil
|
16
|
-
|
17
|
-
self.description = <<-EOF
|
18
|
-
RDBI is a database interface built out of small parts. A micro framework for
|
19
|
-
databases, RDBI works with and extends libraries like 'typelib' and 'epoxy'
|
20
|
-
to provide type conversion and binding facilities. Via a driver/adapter
|
21
|
-
system it provides database access. RDBI itself provides pooling and other
|
22
|
-
enhanced database features.
|
23
|
-
EOF
|
24
|
-
|
25
|
-
self.summary = 'RDBI is a database interface built out of small parts.'
|
26
|
-
self.urls = %w[http://github.com/rdbi/rdbi]
|
27
|
-
|
28
|
-
require_ruby_version ">= 1.8.7"
|
29
|
-
|
30
|
-
extra_dev_deps << ['rdbi-driver-mock']
|
31
|
-
extra_dev_deps << ['test-unit']
|
32
|
-
extra_dev_deps << ['rdoc']
|
33
|
-
extra_dev_deps << ['hanna-nouveau']
|
34
|
-
extra_dev_deps << ['fastercsv']
|
35
|
-
extra_dev_deps << ['hoe-roodi']
|
36
|
-
extra_dev_deps << ['hoe-reek']
|
37
|
-
extra_dev_deps << ['minitest']
|
38
|
-
|
39
|
-
extra_deps << ['epoxy', '>= 0.3.1']
|
40
|
-
extra_deps << ['typelib']
|
41
|
-
|
42
|
-
# waiting on a patch from hoe for this
|
43
|
-
#self.extra_rdoc_args = lambda do |rd|
|
44
|
-
#rd.generator = "hanna"
|
45
|
-
#end
|
46
|
-
|
47
|
-
desc "install a gem without sudo"
|
6
|
+
Rake::TestTask.new do |t|
|
7
|
+
t.libs << 'test'
|
8
|
+
#t.warning = true
|
9
|
+
t.verbose = true
|
48
10
|
end
|
49
11
|
|
50
|
-
|
51
|
-
sh "gem install pkg/#{spec.name}-#{spec.version}.gem"
|
12
|
+
Gem::PackageTask.new(eval(File.read("rdbi.gemspec"))) do
|
52
13
|
end
|
53
|
-
|
14
|
+
|
15
|
+
task :default => :test
|
data/lib/rdbi.rb
CHANGED
@@ -1,9 +1,7 @@
|
|
1
|
-
require '
|
1
|
+
require 'rdbi/version'
|
2
2
|
|
3
3
|
module RDBI
|
4
4
|
|
5
|
-
VERSION = '1.1.0'
|
6
|
-
|
7
5
|
class << self
|
8
6
|
#
|
9
7
|
# The last database handle allocated. This may come from pooled connections or regular ones.
|
@@ -28,7 +26,14 @@ module RDBI
|
|
28
26
|
# connection will be automatically disconnected at the end of the block.
|
29
27
|
def self.connect(klass, *args)
|
30
28
|
|
31
|
-
klass =
|
29
|
+
klass = case klass
|
30
|
+
when ::Class
|
31
|
+
klass
|
32
|
+
when ::String, ::Symbol
|
33
|
+
Util.resolve_driver(klass)
|
34
|
+
else
|
35
|
+
raise ArgumentError.new("Invalid driver specification")
|
36
|
+
end
|
32
37
|
|
33
38
|
driver = klass.new(*args)
|
34
39
|
dbh = self.last_dbh = driver.new_handle
|
@@ -121,6 +126,28 @@ module RDBI::Util
|
|
121
126
|
raise LoadError, "The '#{lib}' gem is required to use this driver. Please install it."
|
122
127
|
end
|
123
128
|
|
129
|
+
# Require and swallow errors. Returns true if module loaded (for the first
|
130
|
+
# time), false if already loaded or unable to load
|
131
|
+
def self.naive_require(lib)
|
132
|
+
require lib
|
133
|
+
rescue LoadError
|
134
|
+
nil
|
135
|
+
end
|
136
|
+
|
137
|
+
# Given a short driver name (e.g., :FauxSQL), return the corresponding
|
138
|
+
# class, attempting to load the driver library if needed.
|
139
|
+
def self.resolve_driver(driver)
|
140
|
+
loop do
|
141
|
+
return ::RDBI::Driver.const_get(driver.to_sym) if ::RDBI::Driver.const_defined?(driver.to_sym)
|
142
|
+
# const_defined? will throw a NameError if driver is not a valid
|
143
|
+
# constant name
|
144
|
+
redo if naive_require("rdbi-driver-#{driver.to_s.downcase}")
|
145
|
+
redo if naive_require("rdbi/driver/#{driver.to_s.downcase}")
|
146
|
+
break
|
147
|
+
end
|
148
|
+
raise ArgumentError.new("Unable to qualify driver #{driver}")
|
149
|
+
end
|
150
|
+
|
124
151
|
#
|
125
152
|
# This is the loading logic we use to import drivers of various natures.
|
126
153
|
#
|
data/lib/rdbi/database.rb
CHANGED
data/lib/rdbi/version.rb
ADDED
data/rdbi.gemspec
CHANGED
@@ -1,92 +1,34 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
|
-
# -*- encoding: utf-8 -*-
|
1
|
+
require 'rake' # FileList
|
2
|
+
require File.expand_path('../lib/rdbi/version', __FILE__)
|
5
3
|
|
6
4
|
Gem::Specification.new do |s|
|
7
|
-
s.name
|
8
|
-
s.version
|
9
|
-
|
10
|
-
s.
|
11
|
-
s.
|
12
|
-
s.
|
5
|
+
s.name = %q{rdbi}
|
6
|
+
s.version = RDBI::VERSION
|
7
|
+
s.platform = Gem::Platform::RUBY
|
8
|
+
s.authors = ["Mike Pomraning", "Erik Hollensbe"]
|
9
|
+
s.date = %q{2013-06-05}
|
10
|
+
s.homepage = %q{http://github.com/RDBI/rdbi}
|
11
|
+
s.summary = "A ruby database abstraction layer"
|
13
12
|
s.description = %q{RDBI is a rearchitecture of the Ruby/DBI project by its maintainer and others. It intends to fully supplant Ruby/DBI in the future for similar database access needs.}
|
14
|
-
s.email
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
]
|
19
|
-
s.files = [
|
20
|
-
"LICENSE",
|
21
|
-
"README.txt",
|
22
|
-
"Rakefile",
|
23
|
-
"docs/external-api.pdf",
|
24
|
-
"docs/external-api.texi",
|
25
|
-
"lib/rdbi.rb",
|
26
|
-
"lib/rdbi/cursor.rb",
|
27
|
-
"lib/rdbi/database.rb",
|
28
|
-
"lib/rdbi/driver.rb",
|
29
|
-
"lib/rdbi/pool.rb",
|
30
|
-
"lib/rdbi/result.rb",
|
31
|
-
"lib/rdbi/schema.rb",
|
32
|
-
"lib/rdbi/statement.rb",
|
33
|
-
"lib/rdbi/types.rb",
|
34
|
-
"perf/bench.rb",
|
35
|
-
"perf/profile.rb",
|
36
|
-
"rdbi.gemspec",
|
37
|
-
"test/helper.rb",
|
38
|
-
"test/test_database.rb",
|
39
|
-
"test/test_pool.rb",
|
40
|
-
"test/test_rdbi.rb",
|
41
|
-
"test/test_result.rb",
|
42
|
-
"test/test_statement.rb",
|
43
|
-
"test/test_types.rb",
|
44
|
-
"test/test_util.rb"
|
45
|
-
]
|
46
|
-
s.homepage = %q{http://github.com/RDBI/rdbi}
|
13
|
+
s.email = ["mjp@pilcrow.madison.wi.us"]
|
14
|
+
|
15
|
+
s.required_rubygems_version = ">= 1.3.6"
|
16
|
+
|
47
17
|
s.require_paths = ["lib"]
|
48
|
-
s.rubygems_version = %q{1.3.7}
|
49
|
-
s.summary = %q{RDBI provides sane query-level database access with low magic.}
|
50
|
-
s.test_files = [
|
51
|
-
"test/helper.rb",
|
52
|
-
"test/test_database.rb",
|
53
|
-
"test/test_pool.rb",
|
54
|
-
"test/test_rdbi.rb",
|
55
|
-
"test/test_result.rb",
|
56
|
-
"test/test_statement.rb",
|
57
|
-
"test/test_types.rb",
|
58
|
-
"test/test_util.rb"
|
59
|
-
]
|
60
18
|
|
61
|
-
|
62
|
-
|
63
|
-
|
19
|
+
s.files = FileList["{lib,docs,perf,test}/**/*.*",
|
20
|
+
"rdbi.gemspec",
|
21
|
+
"History.txt",
|
22
|
+
"Manifest.txt",
|
23
|
+
"Rakefile",
|
24
|
+
"LICENSE"].to_a
|
25
|
+
s.test_files = FileList["test/**/*.*"].to_a
|
26
|
+
s.extra_rdoc_files = [ "LICENSE", "README.txt" ]
|
64
27
|
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
s.add_runtime_dependency(%q<methlab>, [">= 0.0.9"])
|
71
|
-
s.add_runtime_dependency(%q<epoxy>, [">= 0.3.1"])
|
72
|
-
s.add_runtime_dependency(%q<typelib>, [">= 0"])
|
73
|
-
else
|
74
|
-
s.add_dependency(%q<rdbi-driver-mock>, [">= 0"])
|
75
|
-
s.add_dependency(%q<test-unit>, [">= 0"])
|
76
|
-
s.add_dependency(%q<rdoc>, [">= 0"])
|
77
|
-
s.add_dependency(%q<fastercsv>, [">= 0"])
|
78
|
-
s.add_dependency(%q<methlab>, [">= 0.0.9"])
|
79
|
-
s.add_dependency(%q<epoxy>, [">= 0.3.1"])
|
80
|
-
s.add_dependency(%q<typelib>, [">= 0"])
|
81
|
-
end
|
82
|
-
else
|
83
|
-
s.add_dependency(%q<rdbi-driver-mock>, [">= 0"])
|
84
|
-
s.add_dependency(%q<test-unit>, [">= 0"])
|
85
|
-
s.add_dependency(%q<rdoc>, [">= 0"])
|
86
|
-
s.add_dependency(%q<fastercsv>, [">= 0"])
|
87
|
-
s.add_dependency(%q<methlab>, [">= 0.0.9"])
|
88
|
-
s.add_dependency(%q<epoxy>, [">= 0.3.1"])
|
89
|
-
s.add_dependency(%q<typelib>, [">= 0"])
|
90
|
-
end
|
28
|
+
s.add_development_dependency(%q<rdbi-driver-mock>, [">= 0"])
|
29
|
+
s.add_development_dependency(%q<test-unit>, [">= 0"])
|
30
|
+
s.add_development_dependency(%q<rdoc>, [">= 0"])
|
31
|
+
s.add_runtime_dependency(%q<epoxy>, [">= 0.3.1"])
|
32
|
+
s.add_runtime_dependency(%q<typelib>, [">= 0"])
|
91
33
|
end
|
92
34
|
|
data/test/helper.rb
CHANGED
@@ -1,11 +1,12 @@
|
|
1
|
-
require 'rubygems'
|
2
|
-
gem 'rdbi-driver-mock'
|
3
1
|
require 'test/unit'
|
4
2
|
|
5
3
|
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
6
4
|
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
5
|
+
|
7
6
|
require 'rdbi'
|
8
|
-
require 'rdbi/driver/mock'
|
7
|
+
require 'rdbi/driver/mock' # Aaargh 1.0.0 vs .9.x
|
8
|
+
|
9
|
+
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), 'testlib'))
|
9
10
|
|
10
11
|
# -- Fake an exceptional statement handle
|
11
12
|
module FaultyDB
|
data/test/test_database.rb
CHANGED
@@ -153,12 +153,12 @@ class TestDatabase < Test::Unit::TestCase
|
|
153
153
|
assert(sth)
|
154
154
|
assert_kind_of(RDBI::Statement, sth)
|
155
155
|
|
156
|
-
assert_equal(@dbh.last_statement.
|
156
|
+
assert_equal(@dbh.last_statement.query, sth.query)
|
157
157
|
|
158
158
|
res = @dbh.execute("some other statement")
|
159
159
|
assert(res)
|
160
160
|
assert_kind_of(RDBI::Result, res)
|
161
|
-
assert_not_equal(@dbh.last_statement.
|
161
|
+
assert_not_equal(@dbh.last_statement.query, sth.query)
|
162
162
|
sth.finish
|
163
163
|
end
|
164
164
|
|
@@ -0,0 +1,118 @@
|
|
1
|
+
require 'helper'
|
2
|
+
|
3
|
+
#puts RDBI.constants
|
4
|
+
|
5
|
+
class TestImplicitLoad < Test::Unit::TestCase
|
6
|
+
|
7
|
+
ConnectTests = {
|
8
|
+
# Mmmph. It would be nice if suites were run in separate processes
|
9
|
+
"StringHyphen" => { :found_here => 'rdbi-driver-stringhyphen',
|
10
|
+
:not_here => 'rdbi/driver/stringhyphen' },
|
11
|
+
:SymbolHyphen => { :found_here => 'rdbi-driver-symbolhyphen',
|
12
|
+
:not_here => 'rdbi/driver/symbolhyphen' },
|
13
|
+
"StringSubdir" => { :found_here => 'rdbi/driver/stringsubdir',
|
14
|
+
:not_here => 'rdbi-driver-stringsubdir' },
|
15
|
+
:SymbolSubdir => { :found_here => 'rdbi/driver/symbolsubdir',
|
16
|
+
:not_here => 'rdbi-driver-symbolsubdir' },
|
17
|
+
"StringHyphenCached" => { :found_here => 'rdbi-driver-stringhyphencached',
|
18
|
+
:not_here => 'rdbi/driver/stringhyphencached' },
|
19
|
+
:SymbolHyphenCached => { :found_here => 'rdbi-driver-symbolhyphencached',
|
20
|
+
:not_here => 'rdbi/driver/symbolhyphencached' },
|
21
|
+
"StringSubdirCached" => { :found_here => 'rdbi/driver/stringsubdircached',
|
22
|
+
:not_here => 'rdbi-driver-stringsubdircached' },
|
23
|
+
:SymbolSubdirCached => { :found_here => 'rdbi/driver/symbolsubdircached',
|
24
|
+
:not_here => 'rdbi-driver-symbolsubdircached' },
|
25
|
+
}
|
26
|
+
|
27
|
+
ConnectTests.each do |spec, feature|
|
28
|
+
meth = 'test_implicit_' + spec.to_s.gsub(/([a-z0-9])([A-Z])/, '\1_\2').downcase
|
29
|
+
how = (spec =~ /Cached/ ? :connect_cached : :connect)
|
30
|
+
define_method meth.to_sym do
|
31
|
+
assert_implicitly_loaded(how, spec, feature[:found_here], feature[:not_here])
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
def test_01_module_loaded
|
36
|
+
require 'rdbi/driver/mock'
|
37
|
+
RDBI::Driver::Mock
|
38
|
+
assert(module_loaded?('RDBI::Driver::Mock'),
|
39
|
+
"Mock driver unexpectedly not loaded")
|
40
|
+
assert(!module_loaded?('RDBI::Driver::FauxSQL'),
|
41
|
+
"FauxSQL unexpectedly loaded already")
|
42
|
+
end
|
43
|
+
|
44
|
+
def test_02_implicit_load_fail
|
45
|
+
assert(!module_loaded?('RDBI::Driver::NoSuchDriver'))
|
46
|
+
assert_raises(ArgumentError) do
|
47
|
+
RDBI.connect(:NoSuchDriver, {:username=>:a,:password=>:b})
|
48
|
+
end
|
49
|
+
assert(!module_loaded?('RDBI::Driver::NoSuchDriver'))
|
50
|
+
end
|
51
|
+
|
52
|
+
# ========== Utility =========================
|
53
|
+
|
54
|
+
# Is the given module loaded?
|
55
|
+
def module_loaded?(name)
|
56
|
+
names = name.split(/::/) # ::Foo::Bar -> ["", "Foo", "Bar"]
|
57
|
+
names.shift if names[0] == ""
|
58
|
+
resolved = names.inject(::Kernel) { |mod, n| mod = mod.const_get(n) }
|
59
|
+
resolved.is_a?(::Module)
|
60
|
+
rescue NameError => ne
|
61
|
+
nil
|
62
|
+
end
|
63
|
+
|
64
|
+
# For a given feature 'f' (which was or could be an argument to
|
65
|
+
# Kernel.require), see if it has already been loaded
|
66
|
+
def feature_loaded?(f)
|
67
|
+
#require 'pathname'
|
68
|
+
#f = ::Pathname.new(f).cleanpath
|
69
|
+
|
70
|
+
$LOADED_FEATURES.any? do |loaded|
|
71
|
+
loaded.match('(^|/)' + Regexp.quote(f) + '\.[^/]+$')
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
def assert_feature_loaded(f, msg = nil)
|
76
|
+
msg ||= "Feature #{f} unexpectedly not loaded"
|
77
|
+
assert(feature_loaded?(f), msg)
|
78
|
+
end
|
79
|
+
|
80
|
+
def assert_feature_not_loaded(f, msg = nil)
|
81
|
+
msg ||= "Feature #{f} unexpectedly already loaded"
|
82
|
+
assert(!feature_loaded?(f), msg)
|
83
|
+
end
|
84
|
+
|
85
|
+
def assert_module_loaded(m, msg = nil)
|
86
|
+
msg ||= "Module #{m} unexpectedly not loaded"
|
87
|
+
assert(module_loaded?(m), msg)
|
88
|
+
end
|
89
|
+
|
90
|
+
def assert_module_not_loaded(m, msg = nil)
|
91
|
+
msg ||= "Module #{m} unexpectedly already loaded"
|
92
|
+
assert(!module_loaded?(m), msg)
|
93
|
+
end
|
94
|
+
|
95
|
+
def assert_implicitly_loaded(connect_method, shortname, found_here, not_here)
|
96
|
+
qualified_name = "RDBI::Driver::#{shortname}"
|
97
|
+
|
98
|
+
assert_module_not_loaded(qualified_name)
|
99
|
+
assert_feature_not_loaded(found_here)
|
100
|
+
assert_feature_not_loaded(not_here)
|
101
|
+
|
102
|
+
conn_args = { :username => :a, :password => :b }
|
103
|
+
conn_args[:pool_name] = shortname.to_sym if connect_method == :connect_cached
|
104
|
+
dbh = ::RDBI.__send__(connect_method, shortname, conn_args)
|
105
|
+
assert_module_loaded(qualified_name)
|
106
|
+
|
107
|
+
klass = ::RDBI::Driver.const_get(shortname)
|
108
|
+
|
109
|
+
assert(dbh.connected?, "connect(#{shortname}) did not return connected DBH")
|
110
|
+
assert_kind_of(klass, dbh.driver,
|
111
|
+
"DBH.driver was not a #{klass.name}")
|
112
|
+
|
113
|
+
assert_feature_loaded(found_here)
|
114
|
+
assert_feature_not_loaded(not_here)
|
115
|
+
end
|
116
|
+
end
|
117
|
+
|
118
|
+
# vim: syntax=ruby ts=2 et sw=2 sts=2
|
data/test/test_pool.rb
CHANGED
@@ -134,23 +134,21 @@ class TestPool < Test::Unit::TestCase
|
|
134
134
|
end
|
135
135
|
|
136
136
|
def test_08_enumerable
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
assert_equal(10, RDBI::Pool.values.count)
|
137
|
+
pool_names = [
|
138
|
+
:test_01,
|
139
|
+
:test_02,
|
140
|
+
:test_03,
|
141
|
+
:test_03_2,
|
142
|
+
:test_04,
|
143
|
+
:test_05,
|
144
|
+
:test_06,
|
145
|
+
:test_07,
|
146
|
+
:test_07_2,
|
147
|
+
:test_07_3
|
148
|
+
]
|
149
|
+
assert( (pool_names - RDBI::Pool.keys).empty?,
|
150
|
+
"RDBI::Pool did not contain at least the expected pool names")
|
151
|
+
|
154
152
|
assert_kind_of(RDBI::Pool, RDBI::Pool.values[0])
|
155
153
|
|
156
154
|
count = 0
|
@@ -160,7 +158,6 @@ class TestPool < Test::Unit::TestCase
|
|
160
158
|
assert_kind_of(RDBI::Pool, pool)
|
161
159
|
end
|
162
160
|
|
163
|
-
assert_equal(10, count)
|
164
161
|
assert_respond_to(RDBI::Pool, :map)
|
165
162
|
|
166
163
|
pool = create_pool(:test_08)
|
metadata
CHANGED
@@ -1,71 +1,16 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rdbi
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.0.pre1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
+
- Mike Pomraning
|
7
8
|
- Erik Hollensbe
|
8
9
|
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
12
|
date: 2013-06-05 00:00:00.000000000 Z
|
12
13
|
dependencies:
|
13
|
-
- !ruby/object:Gem::Dependency
|
14
|
-
name: epoxy
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - '>='
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: 0.3.1
|
20
|
-
type: :runtime
|
21
|
-
prerelease: false
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
-
requirements:
|
24
|
-
- - '>='
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
version: 0.3.1
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: typelib
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
30
|
-
requirements:
|
31
|
-
- - '>='
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: '0'
|
34
|
-
type: :runtime
|
35
|
-
prerelease: false
|
36
|
-
version_requirements: !ruby/object:Gem::Requirement
|
37
|
-
requirements:
|
38
|
-
- - '>='
|
39
|
-
- !ruby/object:Gem::Version
|
40
|
-
version: '0'
|
41
|
-
- !ruby/object:Gem::Dependency
|
42
|
-
name: rdoc
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
44
|
-
requirements:
|
45
|
-
- - ~>
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: '4.0'
|
48
|
-
type: :development
|
49
|
-
prerelease: false
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
51
|
-
requirements:
|
52
|
-
- - ~>
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version: '4.0'
|
55
|
-
- !ruby/object:Gem::Dependency
|
56
|
-
name: rcov
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
58
|
-
requirements:
|
59
|
-
- - ~>
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: '0.9'
|
62
|
-
type: :development
|
63
|
-
prerelease: false
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
65
|
-
requirements:
|
66
|
-
- - ~>
|
67
|
-
- !ruby/object:Gem::Version
|
68
|
-
version: '0.9'
|
69
14
|
- !ruby/object:Gem::Dependency
|
70
15
|
name: rdbi-driver-mock
|
71
16
|
requirement: !ruby/object:Gem::Requirement
|
@@ -95,35 +40,7 @@ dependencies:
|
|
95
40
|
- !ruby/object:Gem::Version
|
96
41
|
version: '0'
|
97
42
|
- !ruby/object:Gem::Dependency
|
98
|
-
name:
|
99
|
-
requirement: !ruby/object:Gem::Requirement
|
100
|
-
requirements:
|
101
|
-
- - '>='
|
102
|
-
- !ruby/object:Gem::Version
|
103
|
-
version: '0'
|
104
|
-
type: :development
|
105
|
-
prerelease: false
|
106
|
-
version_requirements: !ruby/object:Gem::Requirement
|
107
|
-
requirements:
|
108
|
-
- - '>='
|
109
|
-
- !ruby/object:Gem::Version
|
110
|
-
version: '0'
|
111
|
-
- !ruby/object:Gem::Dependency
|
112
|
-
name: fastercsv
|
113
|
-
requirement: !ruby/object:Gem::Requirement
|
114
|
-
requirements:
|
115
|
-
- - '>='
|
116
|
-
- !ruby/object:Gem::Version
|
117
|
-
version: '0'
|
118
|
-
type: :development
|
119
|
-
prerelease: false
|
120
|
-
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
requirements:
|
122
|
-
- - '>='
|
123
|
-
- !ruby/object:Gem::Version
|
124
|
-
version: '0'
|
125
|
-
- !ruby/object:Gem::Dependency
|
126
|
-
name: hoe-roodi
|
43
|
+
name: rdoc
|
127
44
|
requirement: !ruby/object:Gem::Requirement
|
128
45
|
requirements:
|
129
46
|
- - '>='
|
@@ -137,68 +54,44 @@ dependencies:
|
|
137
54
|
- !ruby/object:Gem::Version
|
138
55
|
version: '0'
|
139
56
|
- !ruby/object:Gem::Dependency
|
140
|
-
name:
|
57
|
+
name: epoxy
|
141
58
|
requirement: !ruby/object:Gem::Requirement
|
142
59
|
requirements:
|
143
60
|
- - '>='
|
144
61
|
- !ruby/object:Gem::Version
|
145
|
-
version:
|
146
|
-
type: :
|
62
|
+
version: 0.3.1
|
63
|
+
type: :runtime
|
147
64
|
prerelease: false
|
148
65
|
version_requirements: !ruby/object:Gem::Requirement
|
149
66
|
requirements:
|
150
67
|
- - '>='
|
151
68
|
- !ruby/object:Gem::Version
|
152
|
-
version:
|
69
|
+
version: 0.3.1
|
153
70
|
- !ruby/object:Gem::Dependency
|
154
|
-
name:
|
71
|
+
name: typelib
|
155
72
|
requirement: !ruby/object:Gem::Requirement
|
156
73
|
requirements:
|
157
74
|
- - '>='
|
158
75
|
- !ruby/object:Gem::Version
|
159
76
|
version: '0'
|
160
|
-
type: :
|
77
|
+
type: :runtime
|
161
78
|
prerelease: false
|
162
79
|
version_requirements: !ruby/object:Gem::Requirement
|
163
80
|
requirements:
|
164
81
|
- - '>='
|
165
82
|
- !ruby/object:Gem::Version
|
166
83
|
version: '0'
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
requirements:
|
171
|
-
- - ~>
|
172
|
-
- !ruby/object:Gem::Version
|
173
|
-
version: '3.6'
|
174
|
-
type: :development
|
175
|
-
prerelease: false
|
176
|
-
version_requirements: !ruby/object:Gem::Requirement
|
177
|
-
requirements:
|
178
|
-
- - ~>
|
179
|
-
- !ruby/object:Gem::Version
|
180
|
-
version: '3.6'
|
181
|
-
description: |2
|
182
|
-
RDBI is a database interface built out of small parts. A micro framework for
|
183
|
-
databases, RDBI works with and extends libraries like 'typelib' and 'epoxy'
|
184
|
-
to provide type conversion and binding facilities. Via a driver/adapter
|
185
|
-
system it provides database access. RDBI itself provides pooling and other
|
186
|
-
enhanced database features.
|
84
|
+
description: RDBI is a rearchitecture of the Ruby/DBI project by its maintainer and
|
85
|
+
others. It intends to fully supplant Ruby/DBI in the future for similar database
|
86
|
+
access needs.
|
187
87
|
email:
|
188
|
-
-
|
88
|
+
- mjp@pilcrow.madison.wi.us
|
189
89
|
executables: []
|
190
90
|
extensions: []
|
191
91
|
extra_rdoc_files:
|
192
|
-
- History.txt
|
193
|
-
- Manifest.txt
|
194
|
-
- README.txt
|
195
|
-
files:
|
196
|
-
- .gemtest
|
197
|
-
- History.txt
|
198
92
|
- LICENSE
|
199
|
-
- Manifest.txt
|
200
93
|
- README.txt
|
201
|
-
|
94
|
+
files:
|
202
95
|
- docs/external-api.pdf
|
203
96
|
- docs/external-api.texi
|
204
97
|
- lib/rdbi.rb
|
@@ -210,47 +103,70 @@ files:
|
|
210
103
|
- lib/rdbi/schema.rb
|
211
104
|
- lib/rdbi/statement.rb
|
212
105
|
- lib/rdbi/types.rb
|
106
|
+
- lib/rdbi/version.rb
|
213
107
|
- perf/bench.rb
|
214
108
|
- perf/profile.rb
|
215
|
-
- rdbi.gemspec
|
216
109
|
- test/helper.rb
|
217
110
|
- test/test_database.rb
|
111
|
+
- test/test_implicit_load.rb
|
218
112
|
- test/test_pool.rb
|
219
113
|
- test/test_rdbi.rb
|
220
114
|
- test/test_result.rb
|
221
115
|
- test/test_statement.rb
|
222
116
|
- test/test_types.rb
|
223
117
|
- test/test_util.rb
|
224
|
-
|
118
|
+
- test/testlib/rdbi-driver-stringhyphen.rb
|
119
|
+
- test/testlib/rdbi-driver-stringhyphencached.rb
|
120
|
+
- test/testlib/rdbi-driver-symbolhyphen.rb
|
121
|
+
- test/testlib/rdbi-driver-symbolhyphencached.rb
|
122
|
+
- test/testlib/rdbi/driver/stringsubdir.rb
|
123
|
+
- test/testlib/rdbi/driver/stringsubdircached.rb
|
124
|
+
- test/testlib/rdbi/driver/symbolsubdir.rb
|
125
|
+
- test/testlib/rdbi/driver/symbolsubdircached.rb
|
126
|
+
- rdbi.gemspec
|
127
|
+
- History.txt
|
128
|
+
- Manifest.txt
|
129
|
+
- Rakefile
|
130
|
+
- LICENSE
|
131
|
+
- README.txt
|
132
|
+
homepage: http://github.com/RDBI/rdbi
|
225
133
|
licenses: []
|
226
134
|
metadata: {}
|
227
135
|
post_install_message:
|
228
|
-
rdoc_options:
|
229
|
-
- --main
|
230
|
-
- README.txt
|
136
|
+
rdoc_options: []
|
231
137
|
require_paths:
|
232
138
|
- lib
|
233
139
|
required_ruby_version: !ruby/object:Gem::Requirement
|
234
140
|
requirements:
|
235
141
|
- - '>='
|
236
142
|
- !ruby/object:Gem::Version
|
237
|
-
version:
|
143
|
+
version: '0'
|
238
144
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
239
145
|
requirements:
|
240
146
|
- - '>='
|
241
147
|
- !ruby/object:Gem::Version
|
242
|
-
version:
|
148
|
+
version: 1.3.6
|
243
149
|
requirements: []
|
244
150
|
rubyforge_project:
|
245
|
-
rubygems_version: 2.0.
|
151
|
+
rubygems_version: 2.0.2
|
246
152
|
signing_key:
|
247
153
|
specification_version: 4
|
248
|
-
summary:
|
154
|
+
summary: A ruby database abstraction layer
|
249
155
|
test_files:
|
250
|
-
- test/
|
156
|
+
- test/helper.rb
|
157
|
+
- test/test_database.rb
|
158
|
+
- test/test_implicit_load.rb
|
251
159
|
- test/test_pool.rb
|
252
160
|
- test/test_rdbi.rb
|
161
|
+
- test/test_result.rb
|
253
162
|
- test/test_statement.rb
|
254
163
|
- test/test_types.rb
|
255
164
|
- test/test_util.rb
|
256
|
-
- test/
|
165
|
+
- test/testlib/rdbi-driver-stringhyphen.rb
|
166
|
+
- test/testlib/rdbi-driver-stringhyphencached.rb
|
167
|
+
- test/testlib/rdbi-driver-symbolhyphen.rb
|
168
|
+
- test/testlib/rdbi-driver-symbolhyphencached.rb
|
169
|
+
- test/testlib/rdbi/driver/stringsubdir.rb
|
170
|
+
- test/testlib/rdbi/driver/stringsubdircached.rb
|
171
|
+
- test/testlib/rdbi/driver/symbolsubdir.rb
|
172
|
+
- test/testlib/rdbi/driver/symbolsubdircached.rb
|
data/.gemtest
DELETED
File without changes
|