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

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.
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