sqlite3-ruby 1.2.5-x86-mswin32 → 1.3.0.beta.1-x86-mswin32

Sign up to get free protection for your applications and to get access to all the features.
Files changed (51) hide show
  1. data/API_CHANGES.rdoc +48 -0
  2. data/{History.txt → CHANGELOG.rdoc} +24 -0
  3. data/Manifest.txt +14 -14
  4. data/{README.txt → README.rdoc} +1 -6
  5. data/Rakefile +8 -3
  6. data/ext/sqlite3/database.c +687 -0
  7. data/ext/sqlite3/database.h +15 -0
  8. data/ext/sqlite3/exception.c +94 -0
  9. data/ext/sqlite3/exception.h +8 -0
  10. data/ext/sqlite3/extconf.rb +26 -0
  11. data/ext/sqlite3/sqlite3.c +33 -0
  12. data/ext/sqlite3/sqlite3_ruby.h +43 -0
  13. data/ext/sqlite3/statement.c +412 -0
  14. data/ext/sqlite3/statement.h +16 -0
  15. data/lib/sqlite3.rb +9 -0
  16. data/lib/sqlite3/1.8/sqlite3_native.so +0 -0
  17. data/lib/sqlite3/1.9/sqlite3_native.so +0 -0
  18. data/lib/sqlite3/database.rb +94 -302
  19. data/lib/sqlite3/errors.rb +0 -24
  20. data/lib/sqlite3/pragmas.rb +16 -7
  21. data/lib/sqlite3/resultset.rb +25 -81
  22. data/lib/sqlite3/statement.rb +22 -107
  23. data/lib/sqlite3/version.rb +4 -4
  24. data/setup.rb +2 -2
  25. data/tasks/native.rake +13 -17
  26. data/tasks/vendor_sqlite3.rake +10 -7
  27. data/test/helper.rb +1 -65
  28. data/test/test_database.rb +239 -189
  29. data/test/test_encoding.rb +115 -0
  30. data/test/test_integration.rb +38 -35
  31. data/test/test_integration_open_close.rb +1 -1
  32. data/test/test_integration_pending.rb +6 -4
  33. data/test/test_integration_resultset.rb +20 -8
  34. data/test/test_integration_statement.rb +1 -2
  35. data/test/test_sqlite3.rb +9 -0
  36. data/test/test_statement.rb +193 -0
  37. metadata +84 -49
  38. data/ext/sqlite3_api/extconf.rb +0 -10
  39. data/ext/sqlite3_api/sqlite3_api.i +0 -362
  40. data/ext/sqlite3_api/sqlite3_api_wrap.c +0 -5018
  41. data/lib/1.8/sqlite3_api.so +0 -0
  42. data/lib/1.9/sqlite3_api.so +0 -0
  43. data/lib/sqlite3/driver/dl/api.rb +0 -152
  44. data/lib/sqlite3/driver/dl/driver.rb +0 -307
  45. data/lib/sqlite3/driver/native/driver.rb +0 -219
  46. data/tasks/benchmark.rake +0 -9
  47. data/tasks/gem.rake +0 -32
  48. data/test/bm.rb +0 -140
  49. data/test/driver/dl/tc_driver.rb +0 -292
  50. data/test/native-vs-dl.rb +0 -126
  51. data/test/test_errors.rb +0 -17
@@ -2,7 +2,7 @@ require File.join(File.dirname(__FILE__), 'helper')
2
2
 
3
3
  class TC_Statement < Test::Unit::TestCase
4
4
  def setup
5
- @db = SQLite3::Database.new( "test.db" )
5
+ @db = SQLite3::Database.new(":memory:")
6
6
  @db.transaction do
7
7
  @db.execute "create table foo ( a integer primary key, b text )"
8
8
  @db.execute "insert into foo ( b ) values ( 'foo' )"
@@ -15,7 +15,6 @@ class TC_Statement < Test::Unit::TestCase
15
15
  def teardown
16
16
  @stmt.close
17
17
  @db.close
18
- File.delete( "test.db" )
19
18
  end
20
19
 
21
20
  def test_remainder_empty
@@ -0,0 +1,9 @@
1
+ require 'helper'
2
+
3
+ module SQLite3
4
+ class TestSQLite3 < Test::Unit::TestCase
5
+ def test_libversion
6
+ assert_not_nil SQLite3.libversion
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,193 @@
1
+ require 'helper'
2
+
3
+ module SQLite3
4
+ class TestStatement < Test::Unit::TestCase
5
+ def setup
6
+ @db = SQLite3::Database.new(':memory:')
7
+ @stmt = SQLite3::Statement.new(@db, "select 'foo'")
8
+ end
9
+
10
+ def test_database_name
11
+ @db.execute('create table foo(text BLOB)')
12
+ @db.execute('insert into foo(text) values (?)',SQLite3::Blob.new('hello'))
13
+ stmt = @db.prepare('select text from foo')
14
+ assert_equal 'main', stmt.database_name(0)
15
+ end
16
+
17
+ def test_prepare_blob
18
+ @db.execute('create table foo(text BLOB)')
19
+ stmt = @db.prepare('insert into foo(text) values (?)')
20
+ stmt.bind_param(1, SQLite3::Blob.new('hello'))
21
+ stmt.step
22
+ stmt.close
23
+ end
24
+
25
+ def test_select_blob
26
+ @db.execute('create table foo(text BLOB)')
27
+ @db.execute('insert into foo(text) values (?)',SQLite3::Blob.new('hello'))
28
+ assert_equal 'hello', @db.execute('select * from foo').first.first
29
+ end
30
+
31
+ def test_new
32
+ assert @stmt
33
+ end
34
+
35
+ def test_new_closed_handle
36
+ @db = SQLite3::Database.new(':memory:')
37
+ @db.close
38
+ assert_raises(ArgumentError) do
39
+ SQLite3::Statement.new(@db, 'select "foo"')
40
+ end
41
+ end
42
+
43
+ def test_new_with_remainder
44
+ stmt = SQLite3::Statement.new(@db, "select 'foo';bar")
45
+ assert_equal 'bar', stmt.remainder
46
+ end
47
+
48
+ def test_empty_remainder
49
+ assert_equal '', @stmt.remainder
50
+ end
51
+
52
+ def test_close
53
+ @stmt.close
54
+ assert @stmt.closed?
55
+ end
56
+
57
+ def test_double_close
58
+ @stmt.close
59
+ assert_raises(SQLite3::Exception) do
60
+ @stmt.close
61
+ end
62
+ end
63
+
64
+ def test_bind_param_string
65
+ stmt = SQLite3::Statement.new(@db, "select ?")
66
+ stmt.bind_param(1, "hello")
67
+ result = nil
68
+ stmt.each { |x| result = x }
69
+ assert_equal ['hello'], result
70
+ end
71
+
72
+ def test_bind_param_int
73
+ stmt = SQLite3::Statement.new(@db, "select ?")
74
+ stmt.bind_param(1, 10)
75
+ result = nil
76
+ stmt.each { |x| result = x }
77
+ assert_equal [10], result
78
+ end
79
+
80
+ def test_bind_nil
81
+ stmt = SQLite3::Statement.new(@db, "select ?")
82
+ stmt.bind_param(1, nil)
83
+ result = nil
84
+ stmt.each { |x| result = x }
85
+ assert_equal [nil], result
86
+ end
87
+
88
+ def test_bind_blobs
89
+ end
90
+
91
+ def test_bind_64
92
+ stmt = SQLite3::Statement.new(@db, "select ?")
93
+ stmt.bind_param(1, 2 ** 31)
94
+ result = nil
95
+ stmt.each { |x| result = x }
96
+ assert_equal [2 ** 31], result
97
+ end
98
+
99
+ def test_bind_double
100
+ stmt = SQLite3::Statement.new(@db, "select ?")
101
+ stmt.bind_param(1, 2.2)
102
+ result = nil
103
+ stmt.each { |x| result = x }
104
+ assert_equal [2.2], result
105
+ end
106
+
107
+ def test_named_bind
108
+ stmt = SQLite3::Statement.new(@db, "select :foo")
109
+ stmt.bind_param(':foo', 'hello')
110
+ result = nil
111
+ stmt.each { |x| result = x }
112
+ assert_equal ['hello'], result
113
+ end
114
+
115
+ def test_named_bind_no_colon
116
+ stmt = SQLite3::Statement.new(@db, "select :foo")
117
+ stmt.bind_param('foo', 'hello')
118
+ result = nil
119
+ stmt.each { |x| result = x }
120
+ assert_equal ['hello'], result
121
+ end
122
+
123
+ def test_named_bind_symbol
124
+ stmt = SQLite3::Statement.new(@db, "select :foo")
125
+ stmt.bind_param(:foo, 'hello')
126
+ result = nil
127
+ stmt.each { |x| result = x }
128
+ assert_equal ['hello'], result
129
+ end
130
+
131
+ def test_named_bind_not_found
132
+ stmt = SQLite3::Statement.new(@db, "select :foo")
133
+ assert_raises(SQLite3::Exception) do
134
+ stmt.bind_param('bar', 'hello')
135
+ end
136
+ end
137
+
138
+ def test_each
139
+ r = nil
140
+ @stmt.each do |row|
141
+ r = row
142
+ end
143
+ assert_equal(['foo'], r)
144
+ end
145
+
146
+ def test_reset!
147
+ r = []
148
+ @stmt.each { |row| r << row }
149
+ @stmt.reset!
150
+ @stmt.each { |row| r << row }
151
+ assert_equal [['foo'], ['foo']], r
152
+ end
153
+
154
+ def test_step
155
+ r = @stmt.step
156
+ assert_equal ['foo'], r
157
+ end
158
+
159
+ def test_tainted
160
+ r = @stmt.step
161
+ assert r.first.tainted?
162
+ end
163
+
164
+ def test_step_twice
165
+ assert_not_nil @stmt.step
166
+ assert !@stmt.done?
167
+ assert_nil @stmt.step
168
+ assert @stmt.done?
169
+
170
+ @stmt.reset!
171
+ assert !@stmt.done?
172
+ end
173
+
174
+ def test_step_never_moves_past_done
175
+ 10.times { @stmt.step }
176
+ @stmt.done?
177
+ end
178
+
179
+ def test_column_count
180
+ assert_equal 1, @stmt.column_count
181
+ end
182
+
183
+ def test_column_name
184
+ assert_equal "'foo'", @stmt.column_name(0)
185
+ assert_equal nil, @stmt.column_name(10)
186
+ end
187
+
188
+ def test_bind_parameter_count
189
+ stmt = SQLite3::Statement.new(@db, "select ?, ?, ?")
190
+ assert_equal 3, stmt.bind_parameter_count
191
+ end
192
+ end
193
+ end
metadata CHANGED
@@ -1,47 +1,68 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sqlite3-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.5
4
+ prerelease: true
5
+ segments:
6
+ - 1
7
+ - 3
8
+ - 0
9
+ - beta
10
+ - 1
11
+ version: 1.3.0.beta.1
5
12
  platform: x86-mswin32
6
13
  authors:
7
14
  - Jamis Buck
15
+ - Luis Lavena
16
+ - Aaron Patterson
8
17
  autorequire:
9
18
  bindir: bin
10
19
  cert_chain: []
11
20
 
12
- date: 2009-07-25 00:00:00 -03:00
21
+ date: 2010-05-10 00:00:00 -03:00
13
22
  default_executable:
14
23
  dependencies:
15
24
  - !ruby/object:Gem::Dependency
16
- name: mocha
17
- type: :development
18
- version_requirement:
19
- version_requirements: !ruby/object:Gem::Requirement
25
+ name: rubyforge
26
+ prerelease: false
27
+ requirement: &id001 !ruby/object:Gem::Requirement
20
28
  requirements:
21
29
  - - ">="
22
30
  - !ruby/object:Gem::Version
23
- version: "0"
24
- version:
31
+ segments:
32
+ - 2
33
+ - 0
34
+ - 4
35
+ version: 2.0.4
36
+ type: :development
37
+ version_requirements: *id001
25
38
  - !ruby/object:Gem::Dependency
26
39
  name: rake-compiler
27
- type: :development
28
- version_requirement:
29
- version_requirements: !ruby/object:Gem::Requirement
40
+ prerelease: false
41
+ requirement: &id002 !ruby/object:Gem::Requirement
30
42
  requirements:
31
43
  - - ~>
32
44
  - !ruby/object:Gem::Version
33
- version: 0.5.0
34
- version:
45
+ segments:
46
+ - 0
47
+ - 7
48
+ - 0
49
+ version: 0.7.0
50
+ type: :development
51
+ version_requirements: *id002
35
52
  - !ruby/object:Gem::Dependency
36
53
  name: hoe
37
- type: :development
38
- version_requirement:
39
- version_requirements: !ruby/object:Gem::Requirement
54
+ prerelease: false
55
+ requirement: &id003 !ruby/object:Gem::Requirement
40
56
  requirements:
41
57
  - - ">="
42
58
  - !ruby/object:Gem::Version
43
- version: 2.3.2
44
- version:
59
+ segments:
60
+ - 2
61
+ - 6
62
+ - 0
63
+ version: 2.6.0
64
+ type: :development
65
+ version_requirements: *id003
45
66
  description: |-
46
67
  This module allows Ruby programs to interface with the SQLite3
47
68
  database engine (http://www.sqlite.org). You must have the
@@ -50,32 +71,43 @@ description: |-
50
71
  Note that this module is NOT compatible with SQLite 2.x.
51
72
  email:
52
73
  - jamis@37signals.com
74
+ - luislavena@gmail.com
75
+ - aaron@tenderlovemaking.com
53
76
  executables: []
54
77
 
55
78
  extensions: []
56
79
 
57
80
  extra_rdoc_files:
58
- - History.txt
59
81
  - Manifest.txt
60
- - README.txt
82
+ - API_CHANGES.rdoc
83
+ - README.rdoc
84
+ - CHANGELOG.rdoc
85
+ - ext/sqlite3/database.c
86
+ - ext/sqlite3/statement.c
87
+ - ext/sqlite3/sqlite3.c
88
+ - ext/sqlite3/exception.c
61
89
  files:
90
+ - API_CHANGES.rdoc
91
+ - CHANGELOG.rdoc
62
92
  - ChangeLog.cvs
63
- - History.txt
64
93
  - LICENSE
65
94
  - Manifest.txt
66
- - README.txt
95
+ - README.rdoc
67
96
  - Rakefile
68
- - ext/sqlite3_api/extconf.rb
69
- - ext/sqlite3_api/sqlite3_api.i
70
- - ext/sqlite3_api/sqlite3_api_wrap.c
97
+ - ext/sqlite3/database.c
98
+ - ext/sqlite3/database.h
99
+ - ext/sqlite3/exception.c
100
+ - ext/sqlite3/exception.h
101
+ - ext/sqlite3/extconf.rb
102
+ - ext/sqlite3/sqlite3.c
103
+ - ext/sqlite3/sqlite3_ruby.h
104
+ - ext/sqlite3/statement.c
105
+ - ext/sqlite3/statement.h
71
106
  - faq/faq.rb
72
107
  - faq/faq.yml
73
108
  - lib/sqlite3.rb
74
109
  - lib/sqlite3/constants.rb
75
110
  - lib/sqlite3/database.rb
76
- - lib/sqlite3/driver/dl/api.rb
77
- - lib/sqlite3/driver/dl/driver.rb
78
- - lib/sqlite3/driver/native/driver.rb
79
111
  - lib/sqlite3/errors.rb
80
112
  - lib/sqlite3/pragmas.rb
81
113
  - lib/sqlite3/resultset.rb
@@ -84,24 +116,21 @@ files:
84
116
  - lib/sqlite3/value.rb
85
117
  - lib/sqlite3/version.rb
86
118
  - setup.rb
87
- - tasks/benchmark.rake
88
119
  - tasks/faq.rake
89
- - tasks/gem.rake
90
120
  - tasks/native.rake
91
121
  - tasks/vendor_sqlite3.rake
92
- - test/bm.rb
93
- - test/driver/dl/tc_driver.rb
94
122
  - test/helper.rb
95
- - test/native-vs-dl.rb
96
123
  - test/test_database.rb
97
- - test/test_errors.rb
98
124
  - test/test_integration.rb
99
125
  - test/test_integration_open_close.rb
100
126
  - test/test_integration_pending.rb
101
127
  - test/test_integration_resultset.rb
102
128
  - test/test_integration_statement.rb
103
- - lib/1.8/sqlite3_api.so
104
- - lib/1.9/sqlite3_api.so
129
+ - test/test_sqlite3.rb
130
+ - test/test_statement.rb
131
+ - test/test_encoding.rb
132
+ - lib/sqlite3/1.8/sqlite3_native.so
133
+ - lib/sqlite3/1.9/sqlite3_native.so
105
134
  has_rdoc: true
106
135
  homepage: http://sqlite3-ruby.rubyforge.org
107
136
  licenses: []
@@ -109,35 +138,41 @@ licenses: []
109
138
  post_install_message:
110
139
  rdoc_options:
111
140
  - --main
112
- - README.txt
113
- - --main=README.txt
141
+ - README.rdoc
114
142
  require_paths:
115
143
  - lib
116
- - ext
117
144
  required_ruby_version: !ruby/object:Gem::Requirement
118
145
  requirements:
119
- - - ">"
146
+ - - ">="
120
147
  - !ruby/object:Gem::Version
121
- version: 1.8.5
122
- version:
148
+ segments:
149
+ - 1
150
+ - 8
151
+ - 6
152
+ version: 1.8.6
123
153
  required_rubygems_version: !ruby/object:Gem::Requirement
124
154
  requirements:
125
155
  - - ">="
126
156
  - !ruby/object:Gem::Version
127
- version: "0"
128
- version:
157
+ segments:
158
+ - 1
159
+ - 3
160
+ - 5
161
+ version: 1.3.5
129
162
  requirements: []
130
163
 
131
- rubyforge_project: sqlite-ruby
132
- rubygems_version: 1.3.4
164
+ rubyforge_project: sqlite3-ruby
165
+ rubygems_version: 1.3.6
133
166
  signing_key:
134
167
  specification_version: 3
135
168
  summary: This module allows Ruby programs to interface with the SQLite3 database engine (http://www.sqlite.org)
136
169
  test_files:
170
+ - test/test_sqlite3.rb
171
+ - test/test_integration_open_close.rb
137
172
  - test/test_database.rb
138
- - test/test_errors.rb
139
173
  - test/test_integration.rb
140
- - test/test_integration_open_close.rb
174
+ - test/test_statement.rb
141
175
  - test/test_integration_pending.rb
142
- - test/test_integration_resultset.rb
143
176
  - test/test_integration_statement.rb
177
+ - test/test_encoding.rb
178
+ - test/test_integration_resultset.rb
@@ -1,10 +0,0 @@
1
- require 'mkmf'
2
-
3
- dir_config( "sqlite3" )
4
-
5
- have_library( "rt", "fdatasync" )
6
-
7
- if have_header( "sqlite3.h" ) && have_library( "sqlite3", "sqlite3_open" ) then
8
- $CFLAGS << " -fno-strict-aliasing" unless RUBY_PLATFORM =~ /mswin/
9
- create_makefile( "sqlite3_api" )
10
- end