rdbi 1.1.0 → 1.2.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 54de058484d15e39b1555c43dd208f2ae7d061ba
4
- data.tar.gz: 96fd6fa385652f31d50f12cf04f2ee1b7ad4e03e
2
+ SHA256:
3
+ metadata.gz: 6fabebd8c63804d35c4fa9c56404efa2d1016eb3f6a33557b17fa1248f8acc9f
4
+ data.tar.gz: b9bbf76bd89ed5e8b621473e9b87e29312af08794e29ccf251720c657dd3e83f
5
5
  SHA512:
6
- metadata.gz: 25751397efafcd45de071d2ed98f5669c4bf59b8070e9d64393ddc84fdd67d0e97aecbe6bc53811839dfc82f224e5dfcadefedacdc926287a10319d8b5ab06f6
7
- data.tar.gz: eecff757dba45e463dab45b88fb553625350937c6f4847af0280651f5b128ab4e7b50b842258f22318c2c6e575bf4d4f373c2d7667694f27cde43f3ffe201b22
6
+ metadata.gz: f9d56476c1d515c40630aac03bb44a5e4b3dee532be8264e1952e1902e2961a97b7a55ae7c76c6e39b04629e702145520a7f31aa4ff4a847364ee1c7257f669e
7
+ data.tar.gz: e2ed4a28770337d94978679b1387dd89221d048c3c092f8f7d1a93627f8933e61b2537db2dfc07eccc268c68b39fad6b694881d30e8235a6ed5c88c457884dad
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
- lib/rdbi.rb
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
- # -*- ruby -*-
1
+ require 'rake/testtask'
2
+ require 'rubygems/package_task'
2
3
 
3
- require 'rubygems'
4
- require 'hoe'
4
+ require File.expand_path('../lib/rdbi/version', __FILE__)
5
5
 
6
- Hoe.plugins.delete :rubyforge
7
- Hoe.plugin :git
8
- Hoe.plugin :rcov
9
- Hoe.plugin :roodi
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
- task :install => [:gem] do
51
- sh "gem install pkg/#{spec.name}-#{spec.version}.gem"
12
+ Gem::PackageTask.new(eval(File.read("rdbi.gemspec"))) do
52
13
  end
53
- # vim: syntax=ruby
14
+
15
+ task :default => :test
data/lib/rdbi/database.rb CHANGED
@@ -257,6 +257,8 @@ class RDBI::Database
257
257
  # quoter during bind processing.
258
258
  #
259
259
  def preprocess_query(query, *binds)
260
+ require 'epoxy'
261
+
260
262
  self.last_query = query
261
263
 
262
264
  ep = Epoxy.new(query)
data/lib/rdbi/types.rb CHANGED
@@ -16,7 +16,7 @@ require 'typelib/canned'
16
16
  #
17
17
  # RDBI::Type leverages +TypeLib+ which is a filter chaining system, one which
18
18
  # you'll wish to read the documentation for to understand some of the concepts
19
- # here.
19
+ # here.
20
20
  #
21
21
  # === A conversion follows these steps:
22
22
  #
@@ -60,7 +60,7 @@ require 'typelib/canned'
60
60
  #
61
61
  # To perform conversions, look at RDBI::Type::In::convert and
62
62
  # RDBI::Type::Out::convert.
63
- #
63
+ #
64
64
  module RDBI::Type
65
65
  # A filter format to assist the conversions of DateTime objects.
66
66
  DEFAULT_STRFTIME_FILTER = "%Y-%m-%d %H:%M:%S %z"
@@ -111,7 +111,7 @@ module RDBI::Type
111
111
  FROM_DECIMAL = TypeLib::Filter.new(Checks::IS_BIGDECIMAL, Conversions::TO_STRING_DECIMAL)
112
112
  FROM_DATETIME = TypeLib::Filter.new(Checks::IS_DATETIME, Conversions::TO_STRING_DATETIME)
113
113
  FROM_BOOLEAN = TypeLib::Filter.new(Checks::IS_BOOLEAN, Conversions::TO_STRING_BOOLEAN)
114
-
114
+
115
115
  TO_BOOLEAN = TypeLib::Filter.new(Checks::STR_IS_BOOLEAN, Conversions::SQL_STR_TO_BOOLEAN)
116
116
  end
117
117
 
@@ -175,7 +175,6 @@ module RDBI::Type
175
175
  module In
176
176
  DEFAULTS = {
177
177
  Integer => [Filters::FROM_INTEGER],
178
- Fixnum => [Filters::FROM_INTEGER],
179
178
  Float => [Filters::FROM_NUMERIC],
180
179
  BigDecimal => [Filters::FROM_DECIMAL],
181
180
  DateTime => [Filters::FROM_DATETIME],
@@ -0,0 +1,3 @@
1
+ module RDBI
2
+ VERSION = '1.2.2'
3
+ end
data/lib/rdbi.rb CHANGED
@@ -1,9 +1,7 @@
1
- require 'epoxy'
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 = RDBI::Util.class_from_class_or_symbol(klass, self::Driver)
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/rdbi.gemspec CHANGED
@@ -1,92 +1,34 @@
1
- # Generated by jeweler
2
- # DO NOT EDIT THIS FILE DIRECTLY
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 = %q{rdbi}
8
- s.version = "0.9.1"
9
-
10
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
- s.authors = ["Erik Hollensbe"]
12
- s.date = %q{2010-12-10}
5
+ s.name = %q{rdbi}
6
+ s.version = RDBI::VERSION
7
+ s.platform = Gem::Platform::RUBY
8
+ s.authors = ["Mike Pomraning", "Erik Hollensbe", "Pistos"]
9
+ s.date = %q{2023-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 = %q{erik@hollensbe.org}
15
- s.extra_rdoc_files = [
16
- "LICENSE",
17
- "README.txt"
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
- if s.respond_to? :specification_version then
62
- current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
63
- s.specification_version = 3
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
- if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
66
- s.add_development_dependency(%q<rdbi-driver-mock>, [">= 0"])
67
- s.add_development_dependency(%q<test-unit>, [">= 0"])
68
- s.add_development_dependency(%q<rdoc>, [">= 0"])
69
- s.add_development_dependency(%q<fastercsv>, [">= 0"])
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.1.1"])
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
@@ -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.object_id, sth.object_id)
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.object_id, sth.object_id)
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
- assert_equal(
138
- [
139
- :test_01,
140
- :test_02,
141
- :test_03,
142
- :test_03_2,
143
- :test_04,
144
- :test_05,
145
- :test_06,
146
- :test_07,
147
- :test_07_2,
148
- :test_07_3
149
- ],
150
- RDBI::Pool.keys.map(&:to_s).sort.map(&:to_sym)
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)
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'rdbi/driver/mock'
4
+
5
+ # -- this class is _not_ defined in rdbi-driver-....rb, as is commonly done
6
+
7
+ class RDBI::Driver::StringSubdir < RDBI::Driver::Mock; end
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'rdbi/driver/mock'
4
+
5
+ # -- this class is _not_ defined in rdbi-driver-....rb, as is commonly done
6
+
7
+ class RDBI::Driver::StringSubdirCached < RDBI::Driver::Mock; end
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'rdbi/driver/mock'
4
+
5
+ # -- this class is _not_ defined in rdbi-driver-....rb, as is commonly done
6
+
7
+ class RDBI::Driver::SymbolSubdir < RDBI::Driver::Mock; end
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'rdbi/driver/mock'
4
+
5
+ # -- this class is _not_ defined in rdbi-driver-....rb, as is commonly done
6
+
7
+ class RDBI::Driver::SymbolSubdirCached < RDBI::Driver::Mock; end
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'rdbi/driver/mock'
4
+
5
+ # -- this class is _not_ defined in rdbi/driver/....rb, as is commonly done
6
+
7
+ class RDBI::Driver::StringHyphen < RDBI::Driver::Mock; end
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'rdbi/driver/mock'
4
+
5
+ # -- this class is _not_ defined in rdbi/driver/....rb, as is commonly done
6
+
7
+ class RDBI::Driver::StringHyphenCached < RDBI::Driver::Mock; end
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'rdbi/driver/mock'
4
+
5
+ # -- this class is _not_ defined in rdbi/driver/....rb, as is commonly done
6
+
7
+ class RDBI::Driver::SymbolHyphen < RDBI::Driver::Mock; end
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'rdbi/driver/mock'
4
+
5
+ # -- this class is _not_ defined in rdbi/driver/....rb, as is commonly done
6
+
7
+ class RDBI::Driver::SymbolHyphenCached < RDBI::Driver::Mock; end
metadata CHANGED
@@ -1,199 +1,98 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rdbi
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.2.2
5
5
  platform: ruby
6
6
  authors:
7
+ - Mike Pomraning
7
8
  - Erik Hollensbe
8
- autorequire:
9
+ - Pistos
10
+ autorequire:
9
11
  bindir: bin
10
12
  cert_chain: []
11
- date: 2013-06-05 00:00:00.000000000 Z
13
+ date: 2023-06-05 00:00:00.000000000 Z
12
14
  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
15
  - !ruby/object:Gem::Dependency
70
16
  name: rdbi-driver-mock
71
17
  requirement: !ruby/object:Gem::Requirement
72
18
  requirements:
73
- - - '>='
19
+ - - ">="
74
20
  - !ruby/object:Gem::Version
75
21
  version: '0'
76
22
  type: :development
77
23
  prerelease: false
78
24
  version_requirements: !ruby/object:Gem::Requirement
79
25
  requirements:
80
- - - '>='
26
+ - - ">="
81
27
  - !ruby/object:Gem::Version
82
28
  version: '0'
83
29
  - !ruby/object:Gem::Dependency
84
30
  name: test-unit
85
31
  requirement: !ruby/object:Gem::Requirement
86
32
  requirements:
87
- - - '>='
88
- - !ruby/object:Gem::Version
89
- version: '0'
90
- type: :development
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - '>='
95
- - !ruby/object:Gem::Version
96
- version: '0'
97
- - !ruby/object:Gem::Dependency
98
- name: hanna-nouveau
99
- requirement: !ruby/object:Gem::Requirement
100
- requirements:
101
- - - '>='
33
+ - - ">="
102
34
  - !ruby/object:Gem::Version
103
35
  version: '0'
104
36
  type: :development
105
37
  prerelease: false
106
38
  version_requirements: !ruby/object:Gem::Requirement
107
39
  requirements:
108
- - - '>='
40
+ - - ">="
109
41
  - !ruby/object:Gem::Version
110
42
  version: '0'
111
43
  - !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
127
- requirement: !ruby/object:Gem::Requirement
128
- requirements:
129
- - - '>='
130
- - !ruby/object:Gem::Version
131
- version: '0'
132
- type: :development
133
- prerelease: false
134
- version_requirements: !ruby/object:Gem::Requirement
135
- requirements:
136
- - - '>='
137
- - !ruby/object:Gem::Version
138
- version: '0'
139
- - !ruby/object:Gem::Dependency
140
- name: hoe-reek
44
+ name: rdoc
141
45
  requirement: !ruby/object:Gem::Requirement
142
46
  requirements:
143
- - - '>='
47
+ - - ">="
144
48
  - !ruby/object:Gem::Version
145
49
  version: '0'
146
50
  type: :development
147
51
  prerelease: false
148
52
  version_requirements: !ruby/object:Gem::Requirement
149
53
  requirements:
150
- - - '>='
54
+ - - ">="
151
55
  - !ruby/object:Gem::Version
152
56
  version: '0'
153
57
  - !ruby/object:Gem::Dependency
154
- name: minitest
58
+ name: epoxy
155
59
  requirement: !ruby/object:Gem::Requirement
156
60
  requirements:
157
- - - '>='
61
+ - - ">="
158
62
  - !ruby/object:Gem::Version
159
- version: '0'
160
- type: :development
63
+ version: 0.3.1
64
+ type: :runtime
161
65
  prerelease: false
162
66
  version_requirements: !ruby/object:Gem::Requirement
163
67
  requirements:
164
- - - '>='
68
+ - - ">="
165
69
  - !ruby/object:Gem::Version
166
- version: '0'
70
+ version: 0.3.1
167
71
  - !ruby/object:Gem::Dependency
168
- name: hoe
72
+ name: typelib
169
73
  requirement: !ruby/object:Gem::Requirement
170
74
  requirements:
171
- - - ~>
75
+ - - ">="
172
76
  - !ruby/object:Gem::Version
173
- version: '3.6'
174
- type: :development
77
+ version: 0.1.1
78
+ type: :runtime
175
79
  prerelease: false
176
80
  version_requirements: !ruby/object:Gem::Requirement
177
81
  requirements:
178
- - - ~>
82
+ - - ">="
179
83
  - !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
+ version: 0.1.1
85
+ description: RDBI is a rearchitecture of the Ruby/DBI project by its maintainer and
86
+ others. It intends to fully supplant Ruby/DBI in the future for similar database
87
+ access needs.
187
88
  email:
188
- - erik@hollensbe.org
89
+ - mjp@pilcrow.madison.wi.us
189
90
  executables: []
190
91
  extensions: []
191
92
  extra_rdoc_files:
192
- - History.txt
193
- - Manifest.txt
93
+ - LICENSE
194
94
  - README.txt
195
95
  files:
196
- - .gemtest
197
96
  - History.txt
198
97
  - LICENSE
199
98
  - Manifest.txt
@@ -210,47 +109,64 @@ files:
210
109
  - lib/rdbi/schema.rb
211
110
  - lib/rdbi/statement.rb
212
111
  - lib/rdbi/types.rb
112
+ - lib/rdbi/version.rb
213
113
  - perf/bench.rb
214
114
  - perf/profile.rb
215
115
  - rdbi.gemspec
216
116
  - test/helper.rb
217
117
  - test/test_database.rb
118
+ - test/test_implicit_load.rb
218
119
  - test/test_pool.rb
219
120
  - test/test_rdbi.rb
220
121
  - test/test_result.rb
221
122
  - test/test_statement.rb
222
123
  - test/test_types.rb
223
124
  - test/test_util.rb
224
- homepage: http://github.com/rdbi/rdbi
125
+ - test/testlib/rdbi-driver-stringhyphen.rb
126
+ - test/testlib/rdbi-driver-stringhyphencached.rb
127
+ - test/testlib/rdbi-driver-symbolhyphen.rb
128
+ - test/testlib/rdbi-driver-symbolhyphencached.rb
129
+ - test/testlib/rdbi/driver/stringsubdir.rb
130
+ - test/testlib/rdbi/driver/stringsubdircached.rb
131
+ - test/testlib/rdbi/driver/symbolsubdir.rb
132
+ - test/testlib/rdbi/driver/symbolsubdircached.rb
133
+ homepage: http://github.com/RDBI/rdbi
225
134
  licenses: []
226
135
  metadata: {}
227
- post_install_message:
228
- rdoc_options:
229
- - --main
230
- - README.txt
136
+ post_install_message:
137
+ rdoc_options: []
231
138
  require_paths:
232
139
  - lib
233
140
  required_ruby_version: !ruby/object:Gem::Requirement
234
141
  requirements:
235
- - - '>='
142
+ - - ">="
236
143
  - !ruby/object:Gem::Version
237
- version: 1.8.7
144
+ version: '0'
238
145
  required_rubygems_version: !ruby/object:Gem::Requirement
239
146
  requirements:
240
- - - '>='
147
+ - - ">="
241
148
  - !ruby/object:Gem::Version
242
- version: '0'
149
+ version: 1.3.6
243
150
  requirements: []
244
- rubyforge_project:
245
- rubygems_version: 2.0.3
246
- signing_key:
151
+ rubygems_version: 3.4.10
152
+ signing_key:
247
153
  specification_version: 4
248
- summary: RDBI is a database interface built out of small parts.
154
+ summary: A ruby database abstraction layer
249
155
  test_files:
250
- - test/test_result.rb
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/test_database.rb
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