dbd-sqlite3 1.2.3 → 1.2.4

Sign up to get free protection for your applications and to get access to all the features.
data/lib/dbd/SQLite3.rb CHANGED
@@ -1,18 +1,18 @@
1
1
  #--
2
2
  # DBD::SQLite3
3
- #
3
+ #
4
4
  # copyright (c) 2005 Jun Mukai <mukai@jmuk.org>
5
5
  # Compatibility patches by Erik Hollensbe <erik@hollensbe.org>
6
- #
6
+ #
7
7
  # All rights reserved.
8
8
  #
9
- # Redistribution and use in source and binary forms, with or without
10
- # modification, are permitted provided that the following conditions
9
+ # Redistribution and use in source and binary forms, with or without
10
+ # modification, are permitted provided that the following conditions
11
11
  # are met:
12
- # 1. Redistributions of source code must retain the above copyright
12
+ # 1. Redistributions of source code must retain the above copyright
13
13
  # notice, this list of conditions and the following disclaimer.
14
- # 2. Redistributions in binary form must reproduce the above copyright
15
- # notice, this list of conditions and the following disclaimer in the
14
+ # 2. Redistributions in binary form must reproduce the above copyright
15
+ # notice, this list of conditions and the following disclaimer in the
16
16
  # documentation and/or other materials provided with the distribution.
17
17
  # 3. The name of the author may not be used to endorse or promote products
18
18
  # derived from this software without specific prior written permission.
@@ -50,7 +50,7 @@ module DBI
50
50
  # Only things that extend DBI's results are documented.
51
51
  #
52
52
  module SQLite3
53
- VERSION = "1.2.3"
53
+ VERSION = "1.2.4"
54
54
  DESCRIPTION = "SQLite 3.x DBD for DBI"
55
55
 
56
56
  #
@@ -70,9 +70,9 @@ module DBI
70
70
  # It will raise DBI::DatabaseError should it find any.
71
71
  #
72
72
  def self.parse_type(type_name)
73
- # FIXME plucked from SQLite driver, this needs to be in DBI proper
73
+ # FIXME plucked from SQLite driver, this needs to be in DBI proper
74
74
  return ['varchar'] unless type_name
75
- type_name.match(/^([^\(]+)(\((\d+)(,(\d+))?\))?$/)
75
+ type_name.match(/^([^\(\s]+)\s*(\(\s*(\d+)\s*(,\s*(\d+))?\s*\))?$/)
76
76
  end
77
77
 
78
78
  #
data/test/DBD_TESTS CHANGED
@@ -2,6 +2,8 @@
2
2
  Using DBD tests
3
3
  ================================================================================
4
4
 
5
+ Before you do anything, read the TESTING file.
6
+
5
7
  Create a YAML file named .ruby-dbi.test-config.yaml in your home directory.
6
8
 
7
9
  This file is a hash of keys that determine what you want to test and how you
@@ -1,4 +1,15 @@
1
1
  @class = Class.new(DBDConfig.testbase(DBDConfig.current_dbtype)) do
2
+
3
+ def test_empty_query
4
+ ["", " ", "\t"].each do |str|
5
+ [:do, :prepare, :execute, :select_one, :select_all].each do |call|
6
+ assert_raises(DBI::InterfaceError) do
7
+ @dbh.send(call, str)
8
+ end
9
+ end
10
+ end
11
+ end
12
+
2
13
  def test_ping
3
14
  assert @dbh.ping
4
15
  # XXX if it isn't obvious, this should be tested better. Not sure what
@@ -11,7 +22,7 @@
11
22
 
12
23
  assert(cols)
13
24
  assert_kind_of(Array, cols)
14
- assert_equal(2, cols.length)
25
+ assert_equal(4, cols.length)
15
26
 
16
27
  # the first column should always be "text_field" and have the following
17
28
  # properties:
@@ -30,19 +41,42 @@
30
41
  end
31
42
 
32
43
  assert_equal(
33
- DBI::Type::Varchar,
34
- DBI::TypeUtil.type_name_to_module(cols[0]["type_name"])
44
+ DBI::Type::Varchar.object_id,
45
+ DBI::TypeUtil.type_name_to_module(cols[0]["type_name"]).object_id
35
46
  )
36
47
 
37
48
  # the second column should always be "integer_field" and have the following
38
49
  # properties:
39
50
  assert_equal("integer_field", cols[1]["name"])
40
51
  assert(cols[1]["nullable"])
41
- assert_equal(1, cols[1]["scale"])
42
- assert_equal(2, cols[1]["precision"])
52
+ assert_equal(1, cols[2]["scale"])
53
+ assert_equal(2, cols[2]["precision"])
54
+
55
+ assert_equal(
56
+ DBI::Type::Integer.object_id,
57
+ DBI::TypeUtil.type_name_to_module(cols[1]["type_name"]).object_id
58
+ )
59
+
60
+ # the second column should always be "integer_field" and have the following
61
+ # properties:
62
+ assert_equal("decimal_field", cols[2]["name"])
63
+ assert(cols[2]["nullable"])
64
+ assert_equal(1, cols[2]["scale"])
65
+ assert_equal(2, cols[2]["precision"])
43
66
  assert_equal(
44
- DBI::Type::Decimal,
45
- DBI::TypeUtil.type_name_to_module(cols[1]["type_name"])
67
+ DBI::Type::Decimal.object_id,
68
+ DBI::TypeUtil.type_name_to_module(cols[2]["type_name"]).object_id
69
+ )
70
+
71
+ # the second column should always be "numeric_field" and have the following
72
+ # properties:
73
+ assert_equal("numeric_field", cols[3]["name"])
74
+ assert(cols[3]["nullable"])
75
+ assert_equal(6, cols[3]["scale"])
76
+ assert_equal(30, cols[3]["precision"])
77
+ assert_equal(
78
+ DBI::Type::Decimal.object_id,
79
+ DBI::TypeUtil.type_name_to_module(cols[3]["type_name"]).object_id
46
80
  )
47
81
 
48
82
  # finally, we ensure that every column in the array is a ColumnInfo
@@ -123,11 +157,13 @@
123
157
  "views"
124
158
  ]
125
159
  end
126
-
127
- case dbtype
160
+
161
+ case dbtype
128
162
  when "postgresql"
129
163
  tables.reject! { |x| x =~ /^pg_/ }
130
- assert_equal %w(array_test bit_test blob_test boolean_test bytea_test db_specific_types_test field_types_test names precision_test time_test timestamp_test view_names), tables
164
+ assert_equal %w(array_test bit_test blob_test boolean_test bytea_test db_specific_types_test enum_type_test field_types_test names precision_test time_test timestamp_test view_names), tables
165
+ when 'sqlite3'
166
+ assert_equal %w(bit_test blob_test boolean_test db_specific_types_test field_types_test names names_defined_with_spaces precision_test time_test timestamp_test view_names), tables
131
167
  else
132
168
  assert_equal %w(bit_test blob_test boolean_test db_specific_types_test field_types_test names precision_test time_test timestamp_test view_names), tables
133
169
  end
@@ -142,13 +178,13 @@
142
178
  assert !@dbh["AutoCommit"]
143
179
 
144
180
  # test committing an outstanding transaction
145
-
181
+
146
182
  @sth = @dbh.prepare("insert into names (name, age) values (?, ?)")
147
183
  @sth.execute("Billy", 22)
148
184
  @sth.finish
149
185
 
150
186
  assert @dbh["AutoCommit"] = true # should commit at this point
151
-
187
+
152
188
  @sth = @dbh.prepare("select * from names where name = ?")
153
189
  @sth.execute("Billy")
154
190
  assert_equal [ "Billy", 22 ], @sth.fetch
@@ -1,4 +1,50 @@
1
1
  @class = Class.new(DBDConfig.testbase(DBDConfig.current_dbtype)) do
2
+
3
+ def prep_status_statement
4
+ @sth.finish if (@sth and !@sth.finished?)
5
+ @sth = @dbh.prepare("select * from names order by age")
6
+ @sth.raise_error = true
7
+ end
8
+
9
+ def test_status
10
+ names_rc = 3
11
+
12
+ [:fetch, :fetch_hash, :each, :fetch_all].each do |call|
13
+ assert_raise(DBI::InterfaceError, DBI::NotSupportedError) do
14
+ prep_status_statement
15
+ @sth.send(call)
16
+ end
17
+ end
18
+
19
+ # for these next three, it doesn't really matter what the args are, it should fail
20
+ assert_raises(DBI::InterfaceError, DBI::NotSupportedError) do
21
+ prep_status_statement
22
+ @sth.fetch_many(1)
23
+ end
24
+
25
+ assert_raises(DBI::InterfaceError, DBI::NotSupportedError) do
26
+ prep_status_statement
27
+ @sth.fetch_scroll(0, 0)
28
+ end
29
+
30
+ assert_raises(DBI::InterfaceError, DBI::NotSupportedError) do
31
+ prep_status_statement
32
+ @sth.each { |x| }
33
+ end
34
+
35
+ assert_raises(DBI::InterfaceError) do
36
+ prep_status_statement
37
+ @sth.execute
38
+ 2.times { @sth.fetch_all }
39
+ end
40
+
41
+ assert_raises(DBI::InterfaceError) do
42
+ prep_status_statement
43
+ @sth.execute
44
+ # XXX fetch_many won't know it can't fetch anything until the third time around.
45
+ 3.times { @sth.fetch_many(names_rc) }
46
+ end
47
+ end
2
48
 
3
49
  def test_execute
4
50
  assert_nothing_raised do
@@ -44,7 +90,7 @@
44
90
 
45
91
  assert(cols)
46
92
  assert_kind_of(Array, cols)
47
- assert_equal(2, cols.length)
93
+ assert_equal(4, cols.length)
48
94
 
49
95
  # the first column should always be "text_field" and have the following
50
96
  # properties:
@@ -61,18 +107,49 @@
61
107
  end
62
108
 
63
109
  assert_equal(
64
- DBI::Type::Varchar,
65
- DBI::TypeUtil.type_name_to_module(cols[0]["type_name"])
110
+ DBI::Type::Varchar.object_id,
111
+ DBI::TypeUtil.type_name_to_module(cols[0]["type_name"]).object_id
66
112
  )
67
113
 
68
114
  # the second column should always be "integer_field" and have the following
69
115
  # properties:
70
116
  assert_equal("integer_field", cols[1]["name"])
71
- assert_equal(1, cols[1]["scale"])
72
- assert_equal(2, cols[1]["precision"])
117
+ # if these aren't set on the field, they should not exist
118
+ # FIXME mysql does not follow this rule, neither does ODBC
119
+ if dbtype == "mysql"
120
+ assert_equal(0, cols[1]["scale"])
121
+ assert_equal(11, cols[1]["precision"])
122
+ elsif dbtype == "odbc"
123
+ assert_equal(0, cols[1]["scale"])
124
+ assert_equal(10, cols[1]["precision"])
125
+ else
126
+ assert(!cols[1]["scale"])
127
+ assert(!cols[1]["precision"])
128
+ end
129
+
130
+ assert_equal(
131
+ DBI::Type::Integer.object_id,
132
+ DBI::TypeUtil.type_name_to_module(cols[1]["type_name"]).object_id
133
+ )
134
+
135
+ # the second column should always be "integer_field" and have the following
136
+ # properties:
137
+ assert_equal("decimal_field", cols[2]["name"])
138
+ assert_equal(1, cols[2]["scale"])
139
+ assert_equal(2, cols[2]["precision"])
140
+ assert_equal(
141
+ DBI::Type::Decimal.object_id,
142
+ DBI::TypeUtil.type_name_to_module(cols[2]["type_name"]).object_id
143
+ )
144
+
145
+ # the second column should always be "numeric_field" and have the following
146
+ # properties:
147
+ assert_equal("numeric_field", cols[3]["name"])
148
+ assert_equal(6, cols[3]["scale"])
149
+ assert_equal(30, cols[3]["precision"])
73
150
  assert_equal(
74
- DBI::Type::Decimal,
75
- DBI::TypeUtil.type_name_to_module(cols[1]["type_name"])
151
+ DBI::Type::Decimal.object_id,
152
+ DBI::TypeUtil.type_name_to_module(cols[3]["type_name"]).object_id
76
153
  )
77
154
 
78
155
  cols.each { |col| assert_kind_of(DBI::ColumnInfo, col) }
@@ -25,6 +25,34 @@
25
25
  end
26
26
  end
27
27
 
28
+ def test_numeric_types
29
+ assert(@dbh.convert_types)
30
+
31
+ @sth = @dbh.prepare("insert into precision_test (text_field, integer_field, decimal_field, numeric_field) values (?, ?, ?, ?)")
32
+ assert(@sth.convert_types)
33
+ 1.step(5) do |x|
34
+ @sth.execute("poop#{x}", x, x + 0.123, x + 0.234)
35
+ end
36
+
37
+ @sth.finish
38
+
39
+ @sth = @dbh.prepare("select integer_field, decimal_field, numeric_field from precision_test")
40
+ @sth.execute
41
+ col_info = @sth.column_info
42
+ 1.step(5) do |x|
43
+ row = @sth.fetch
44
+
45
+ assert_kind_of(Integer, row[0])
46
+ assert_kind_of(BigDecimal, row[1])
47
+ assert_kind_of(BigDecimal, row[2])
48
+
49
+ # FIXME BigDecimal requires a string and some databases will pad
50
+ # decimal/numeric with constrained precision. We should account for
51
+ # this, but I'm not quite sure how yet.
52
+ end
53
+ @sth.finish
54
+ end
55
+
28
56
  # FIXME
29
57
  # Ideally, this test should be split across the DBI tests and DBD, but for
30
58
  # now testing against the DBDs really doesn't cost us anything other than
@@ -62,9 +90,9 @@
62
90
  @sth = @dbh.prepare("select name, age from names order by age")
63
91
 
64
92
  # can't bind_coltype before execute
65
- assert_raise(DBI::InterfaceError) { @sth.bind_coltype(1, DBI::Type::Float) }
93
+ assert_raises(DBI::InterfaceError) { @sth.bind_coltype(1, DBI::Type::Float) }
66
94
  # can't index < 1
67
- assert_raise(DBI::InterfaceError) { @sth.bind_coltype(0, DBI::Type::Float) }
95
+ assert_raises(DBI::InterfaceError) { @sth.bind_coltype(0, DBI::Type::Float) }
68
96
  end
69
97
 
70
98
  def test_noconv
@@ -1,4 +1,3 @@
1
- require 'test/unit'
2
1
  require 'fileutils'
3
2
 
4
3
  DBDConfig.set_testbase(:sqlite3, Class.new(Test::Unit::TestCase) do
@@ -21,6 +21,51 @@ class TestDatabase < DBDConfig.testbase(:sqlite3)
21
21
  :sql_type => 4,
22
22
  :type_name => "integer"
23
23
  }
24
- ], @dbh.columns("names")
24
+ ], @dbh.columns("names")
25
+
26
+ assert_equal [
27
+ {
28
+ :name => "name",
29
+ :default => nil,
30
+ :nullable => true,
31
+ :sql_type => 100,
32
+ :precision => 255,
33
+ :type_name => "varchar"
34
+ },
35
+ {
36
+ :name => "age",
37
+ :default => nil,
38
+ :nullable => true,
39
+ :sql_type => 4,
40
+ :type_name => "integer"
41
+ }
42
+ ], @dbh.columns("names_defined_with_spaces")
43
+ end
44
+
45
+ def test_parse_type
46
+ # Some tests to ensure various whitespace and case styles don't confuse parse_type.
47
+
48
+ match = DBI::DBD::SQLite3.parse_type( 'VARCHAR' )
49
+ assert_equal 'VARCHAR', match[ 1 ]
50
+
51
+ match = DBI::DBD::SQLite3.parse_type( 'VARCHAR(4096)' )
52
+ assert_equal 'VARCHAR', match[ 1 ]
53
+ assert_equal '4096', match[ 3 ]
54
+
55
+ match = DBI::DBD::SQLite3.parse_type( 'varchar(4096)' )
56
+ assert_equal 'varchar', match[ 1 ]
57
+ assert_equal '4096', match[ 3 ]
58
+
59
+ match = DBI::DBD::SQLite3.parse_type( 'VARCHAR( 4096 )' )
60
+ assert_equal 'VARCHAR', match[ 1 ]
61
+ assert_equal '4096', match[ 3 ]
62
+
63
+ match = DBI::DBD::SQLite3.parse_type( 'VARCHAR ( 4096 )' )
64
+ assert_equal 'VARCHAR', match[ 1 ]
65
+ assert_equal '4096', match[ 3 ]
66
+
67
+ match = DBI::DBD::SQLite3.parse_type( 'VARCHAR (4096)' )
68
+ assert_equal 'VARCHAR', match[ 1 ]
69
+ assert_equal '4096', match[ 3 ]
25
70
  end
26
71
  end
@@ -18,17 +18,17 @@ class TestDriver < DBDConfig.testbase(:sqlite3)
18
18
  assert_kind_of DBI::DatabaseHandle, dbh
19
19
 
20
20
  # first argument should be a string
21
- assert_raise(DBI::InterfaceError) do
21
+ assert_raises(DBI::InterfaceError) do
22
22
  DBI::DBD::SQLite3::Driver.new.connect(nil, nil, nil, { })
23
23
  end
24
24
 
25
25
  # that string should have some frackin' length
26
- assert_raise(DBI::InterfaceError) do
26
+ assert_raises(DBI::InterfaceError) do
27
27
  DBI::DBD::SQLite3::Driver.new.connect("", nil, nil, { })
28
28
  end
29
29
 
30
30
  # last argument should be a hash
31
- assert_raise(DBI::InterfaceError) do
31
+ assert_raises(DBI::InterfaceError) do
32
32
  DBI::DBD::SQLite3::Driver.new.connect(config['dbname'], nil, nil, nil)
33
33
  end
34
34
 
@@ -20,7 +20,7 @@ class TestStatement < DBDConfig.testbase(:sqlite3)
20
20
  def test_bind_param
21
21
  sth = DBI::DBD::SQLite3::Statement.new("select * from names", @dbh.instance_variable_get("@handle").instance_variable_get("@db"))
22
22
 
23
- assert_raise(DBI::InterfaceError) do
23
+ assert_raises(DBI::InterfaceError) do
24
24
  sth.bind_param(:foo, "monkeys")
25
25
  end
26
26
 
@@ -59,6 +59,7 @@ class TestStatement < DBDConfig.testbase(:sqlite3)
59
59
  assert_nothing_raised do
60
60
  @sth = @dbh.prepare("insert into db_specific_types_test (dbl) values (?)")
61
61
  @sth.execute(11111111.111111)
62
+ @sth.execute(22)
62
63
  @sth.finish
63
64
  end
64
65
 
@@ -66,7 +67,10 @@ class TestStatement < DBDConfig.testbase(:sqlite3)
66
67
  @sth = @dbh.prepare("select * from db_specific_types_test")
67
68
  @sth.execute
68
69
  assert_equal([11111111.111111], @sth.fetch)
70
+ assert_equal([22], @sth.fetch)
69
71
  @sth.finish
72
+
73
+ assert_equal([[11111111.111111], [22]], @dbh.select_all("select * from db_specific_types_test"))
70
74
  end
71
75
  end
72
76
  end
@@ -6,7 +6,7 @@ insert into names (name, age) values ("Joe", 19);
6
6
  ---
7
7
  insert into names (name, age) values ("Jim", 30);
8
8
  ---
9
- create table precision_test (text_field varchar(20) primary key not null, integer_field decimal(2,1));
9
+ create table precision_test (text_field varchar(20) primary key not null, integer_field integer, decimal_field decimal(2,1), numeric_field numeric(30,6));
10
10
  ---
11
11
  create view view_names as select * from names;
12
12
  ---
@@ -23,3 +23,11 @@ create table bit_test (mybit bit);
23
23
  create table field_types_test (foo integer not null primary key default 1);
24
24
  ---
25
25
  create table db_specific_types_test (dbl double);
26
+ ---
27
+ create table names_defined_with_spaces ( name varchar( 255 ), age integer );
28
+ ---
29
+ insert into names_defined_with_spaces (name, age) values ("Bob", 21);
30
+ ---
31
+ insert into names_defined_with_spaces (name, age) values ("Joe", 19);
32
+ ---
33
+ insert into names_defined_with_spaces (name, age) values ("Jim", 30);
data/test/ts_dbd.rb CHANGED
@@ -1,3 +1,5 @@
1
+ require 'rubygems'
2
+ gem 'test-unit'
1
3
  # figure out what tests to run
2
4
  require 'yaml'
3
5
  require 'test/unit/testsuite'
@@ -17,6 +19,16 @@ module Test::Unit::Assertions
17
19
  end
18
20
  end
19
21
 
22
+ class Class
23
+ def name=(klass_name)
24
+ @name = klass_name
25
+ end
26
+
27
+ def name
28
+ return @name || super
29
+ end
30
+ end
31
+
20
32
  module DBDConfig
21
33
  @testbase = { }
22
34
  @current_dbtype = nil
@@ -68,6 +80,7 @@ module DBDConfig
68
80
 
69
81
  def self.set_testbase(klass_name, klass)
70
82
  @testbase[klass_name] = klass
83
+ klass.name = klass_name.to_s
71
84
  end
72
85
 
73
86
  def self.suite
@@ -110,7 +123,7 @@ if __FILE__ == $0
110
123
  Dir["dbd/#{dbtype}/test*.rb"].each { |file| require file }
111
124
  # run the general tests
112
125
  DBDConfig.current_dbtype = dbtype.to_sym
113
- Dir["dbd/general/test*.rb"].each { |file| load file; DBDConfig.suite << @class }
126
+ Dir["dbd/general/test*.rb"].each { |file| load file; @class.name = file; DBDConfig.suite << @class }
114
127
  end
115
128
  elsif !config["dbtypes"]
116
129
  warn "Please see test/DBD_TESTS for information on configuring DBD tests."
metadata CHANGED
@@ -1,43 +1,57 @@
1
1
  --- !ruby/object:Gem::Specification
2
- rubygems_version: 0.9.4
3
- specification_version: 1
4
2
  name: dbd-sqlite3
5
3
  version: !ruby/object:Gem::Version
6
- version: 1.2.3
7
- date: 2008-09-27 00:00:00 -07:00
8
- summary: SQLite 3.x DBD for DBI
9
- require_paths:
10
- - lib
11
- email: ruby-dbi-users@rubyforge.org
12
- homepage: http://www.rubyforge.org/projects/ruby-dbi
13
- rubyforge_project: ruby-dbi
14
- description: SQLite 3.x DBD for DBI
15
- autorequire:
16
- default_executable:
17
- bindir: bin
18
- has_rdoc: true
19
- required_ruby_version: !ruby/object:Gem::Version::Requirement
20
- requirements:
21
- - - ">="
22
- - !ruby/object:Gem::Version
23
- version: 1.8.0
24
- version:
4
+ version: 1.2.4
25
5
  platform: ruby
26
- signing_key:
27
- cert_chain:
28
- post_install_message:
29
6
  authors:
30
7
  - Erik Hollensbe
31
8
  - Christopher Maujean
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+
13
+ date: 2008-12-15 00:00:00 -08:00
14
+ default_executable:
15
+ dependencies:
16
+ - !ruby/object:Gem::Dependency
17
+ name: dbi
18
+ type: :runtime
19
+ version_requirement:
20
+ version_requirements: !ruby/object:Gem::Requirement
21
+ requirements:
22
+ - - ">="
23
+ - !ruby/object:Gem::Version
24
+ version: 0.4.0
25
+ version:
26
+ - !ruby/object:Gem::Dependency
27
+ name: sqlite3-ruby
28
+ type: :runtime
29
+ version_requirement:
30
+ version_requirements: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - ">="
33
+ - !ruby/object:Gem::Version
34
+ version: "0"
35
+ version:
36
+ description: SQLite 3.x DBD for DBI
37
+ email: ruby-dbi-users@rubyforge.org
38
+ executables: []
39
+
40
+ extensions: []
41
+
42
+ extra_rdoc_files:
43
+ - README
44
+ - LICENSE
45
+ - ChangeLog
32
46
  files:
33
- - test/dbd/general/test_database.rb
34
- - test/dbd/general/test_statement.rb
35
47
  - test/dbd/general/test_types.rb
48
+ - test/dbd/general/test_statement.rb
49
+ - test/dbd/general/test_database.rb
36
50
  - test/dbd/sqlite3/base.rb
37
- - test/dbd/sqlite3/test_database.rb
38
51
  - test/dbd/sqlite3/test_statement.rb
39
52
  - test/dbd/sqlite3/test_driver.rb
40
53
  - test/dbd/sqlite3/up.sql
54
+ - test/dbd/sqlite3/test_database.rb
41
55
  - lib/dbd/SQLite3.rb
42
56
  - lib/dbd/sqlite3/database.rb
43
57
  - lib/dbd/sqlite3/statement.rb
@@ -45,36 +59,31 @@ files:
45
59
  - README
46
60
  - LICENSE
47
61
  - ChangeLog
48
- test_files:
49
- - test/ts_dbd.rb
62
+ has_rdoc: true
63
+ homepage: http://www.rubyforge.org/projects/ruby-dbi
64
+ post_install_message:
50
65
  rdoc_options: []
51
66
 
52
- extra_rdoc_files:
53
- - README
54
- - LICENSE
55
- - ChangeLog
56
- executables: []
57
-
58
- extensions: []
59
-
67
+ require_paths:
68
+ - lib
69
+ required_ruby_version: !ruby/object:Gem::Requirement
70
+ requirements:
71
+ - - ">="
72
+ - !ruby/object:Gem::Version
73
+ version: 1.8.0
74
+ version:
75
+ required_rubygems_version: !ruby/object:Gem::Requirement
76
+ requirements:
77
+ - - ">="
78
+ - !ruby/object:Gem::Version
79
+ version: "0"
80
+ version:
60
81
  requirements: []
61
82
 
62
- dependencies:
63
- - !ruby/object:Gem::Dependency
64
- name: dbi
65
- version_requirement:
66
- version_requirements: !ruby/object:Gem::Version::Requirement
67
- requirements:
68
- - - ">="
69
- - !ruby/object:Gem::Version
70
- version: 0.4.0
71
- version:
72
- - !ruby/object:Gem::Dependency
73
- name: sqlite3-ruby
74
- version_requirement:
75
- version_requirements: !ruby/object:Gem::Version::Requirement
76
- requirements:
77
- - - ">"
78
- - !ruby/object:Gem::Version
79
- version: 0.0.0
80
- version:
83
+ rubyforge_project: ruby-dbi
84
+ rubygems_version: 1.3.1
85
+ signing_key:
86
+ specification_version: 2
87
+ summary: SQLite 3.x DBD for DBI
88
+ test_files:
89
+ - test/ts_dbd.rb