do_sqlite3 0.9.11-x86-mswin32-60 → 0.9.12-x86-mswin32-60
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.
- data/LICENSE +1 -1
- data/Manifest.txt +15 -4
- data/Rakefile +7 -207
- data/ext/do_sqlite3_ext/do_sqlite3_ext.c +187 -71
- data/ext/do_sqlite3_ext/extconf.rb +2 -0
- data/lib/do_sqlite3/version.rb +1 -1
- data/lib/do_sqlite3_ext.so +0 -0
- data/spec/command_spec.rb +8 -0
- data/spec/connection_spec.rb +18 -0
- data/spec/lib/rspec_immediate_feedback_formatter.rb +3 -0
- data/spec/reader_spec.rb +8 -0
- data/spec/result_spec.rb +9 -0
- data/spec/spec_helper.rb +88 -17
- data/spec/typecast/array_spec.rb +8 -0
- data/spec/typecast/bigdecimal_spec.rb +8 -0
- data/spec/typecast/boolean_spec.rb +8 -0
- data/spec/typecast/byte_array_spec.rb +9 -0
- data/spec/typecast/class_spec.rb +8 -0
- data/spec/typecast/date_spec.rb +8 -0
- data/spec/typecast/datetime_spec.rb +8 -0
- data/spec/typecast/float_spec.rb +8 -0
- data/spec/typecast/integer_spec.rb +8 -0
- data/spec/typecast/nil_spec.rb +10 -0
- data/spec/typecast/range_spec.rb +8 -0
- data/spec/typecast/string_spec.rb +8 -0
- data/spec/typecast/time_spec.rb +8 -0
- data/tasks/gem.rake +61 -0
- data/tasks/install.rake +15 -0
- data/tasks/native.rake +35 -0
- data/tasks/release.rake +75 -0
- data/tasks/retrieve.rake +104 -0
- data/tasks/spec.rake +18 -0
- metadata +73 -41
- data/.gitignore +0 -3
- data/buildfile +0 -27
- data/ext-java/src/main/java/DoSqlite3ExtService.java +0 -23
- data/ext-java/src/main/java/do_sqlite3/Sqlite3DriverDefinition.java +0 -26
- data/spec/integration/do_sqlite3_spec.rb +0 -278
- data/spec/integration/logging_spec.rb +0 -53
- data/spec/integration/quoting_spec.rb +0 -23
- data/spec/spec.opts +0 -2
- data/spec/unit/transaction_spec.rb +0 -34
data/tasks/release.rake
ADDED
@@ -0,0 +1,75 @@
|
|
1
|
+
begin
|
2
|
+
gem 'rubyforge', '~> 1.0.1'
|
3
|
+
require 'rubyforge'
|
4
|
+
rescue Exception
|
5
|
+
nil
|
6
|
+
end
|
7
|
+
|
8
|
+
if defined?(RubyForge) then
|
9
|
+
if defined?(GEM_SPEC) then
|
10
|
+
desc 'Package and upload to RubyForge'
|
11
|
+
task :release => [:package] do |t|
|
12
|
+
ver = ENV['VERSION'] or fail "Must supply VERSION (rake release VERSION=x.y.z)."
|
13
|
+
|
14
|
+
# compare versions to avoid mistakes
|
15
|
+
unless ver == GEM_SPEC.version.to_s then
|
16
|
+
fail "Version mismatch (supplied and specification versions differ)."
|
17
|
+
end
|
18
|
+
|
19
|
+
# no rubyforge project? no release for you!
|
20
|
+
if GEM_SPEC.rubyforge_project == 'TODO' or GEM_SPEC.rubyforge_project.nil? then
|
21
|
+
fail "Must define rubyforge_project in your gem specification."
|
22
|
+
end
|
23
|
+
|
24
|
+
# instantiate a RubyForge object
|
25
|
+
rf = RubyForge.new
|
26
|
+
|
27
|
+
# read project info and overview
|
28
|
+
notes = begin
|
29
|
+
r = File.read("README.rdoc")
|
30
|
+
r.split(/^(=+ .*)/)[1..4].join.strip
|
31
|
+
rescue
|
32
|
+
warn "Missing README.rdoc"
|
33
|
+
''
|
34
|
+
end
|
35
|
+
|
36
|
+
# read changes
|
37
|
+
changes = begin
|
38
|
+
h = File.read("History.txt")
|
39
|
+
h.split(/^(==+ .*)/)[1..2].join.strip
|
40
|
+
rescue
|
41
|
+
warn "Missing History.txt"
|
42
|
+
''
|
43
|
+
end
|
44
|
+
|
45
|
+
# build the configuration for the release
|
46
|
+
config = Hash.new
|
47
|
+
config["release_notes"] = notes
|
48
|
+
config["release_changes"] = changes
|
49
|
+
config["preformatted"] = true
|
50
|
+
|
51
|
+
# prepare configuration
|
52
|
+
rf.configure config
|
53
|
+
|
54
|
+
files = FileList["pkg/#{GEM_SPEC.name}-#{GEM_SPEC.version}*.*"].to_a
|
55
|
+
fail "No files found for the release." if files.empty?
|
56
|
+
|
57
|
+
puts "Logging in RubyForge..."
|
58
|
+
rf.login
|
59
|
+
|
60
|
+
puts "Files to upload:"
|
61
|
+
files.each do |f|
|
62
|
+
puts " * #{f}"
|
63
|
+
end
|
64
|
+
|
65
|
+
puts "Releasing #{GEM_SPEC.name} version #{GEM_SPEC.version}..."
|
66
|
+
rf.add_release GEM_SPEC.rubyforge_project, GEM_SPEC.name, GEM_SPEC.version, *files
|
67
|
+
puts "Done."
|
68
|
+
end
|
69
|
+
#Rake::Task['release'].prerequisites.unshift('clean', 'cross', 'native')
|
70
|
+
else
|
71
|
+
warn "no GEM_SPEC is found or defined. 'release' task cannot work without it."
|
72
|
+
end
|
73
|
+
else
|
74
|
+
warn "rubyforge gem is required to generate releases, please install it (gem install rubyforge)."
|
75
|
+
end
|
data/tasks/retrieve.rake
ADDED
@@ -0,0 +1,104 @@
|
|
1
|
+
begin
|
2
|
+
gem('rake-compiler')
|
3
|
+
require 'rake/clean'
|
4
|
+
require 'rake/extensioncompiler'
|
5
|
+
|
6
|
+
# download sqlite3 library and headers
|
7
|
+
|
8
|
+
# only on Windows or cross platform compilation
|
9
|
+
def dlltool(dllname, deffile, libfile)
|
10
|
+
# define if we are using GCC or not
|
11
|
+
if Rake::ExtensionCompiler.mingw_gcc_executable then
|
12
|
+
dir = File.dirname(Rake::ExtensionCompiler.mingw_gcc_executable)
|
13
|
+
tool = case RUBY_PLATFORM
|
14
|
+
when /mingw/
|
15
|
+
File.join(dir, 'dlltool.exe')
|
16
|
+
when /linux|darwin/
|
17
|
+
File.join(dir, "#{Rake::ExtensionCompiler.mingw_host}-dlltool")
|
18
|
+
end
|
19
|
+
return "#{tool} --dllname #{dllname} --def #{deffile} --output-lib #{libfile}"
|
20
|
+
else
|
21
|
+
if RUBY_PLATFORM =~ /mswin/ then
|
22
|
+
tool = 'lib.exe'
|
23
|
+
else
|
24
|
+
fail "Unsupported platform for cross-compilation (please, contribute some patches)."
|
25
|
+
end
|
26
|
+
return "#{tool} /DEF:#{deffile} /OUT:#{libfile}"
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
# required folder structure for --with-sqlite3-dir (include + lib)
|
31
|
+
directory "vendor/sqlite3/lib"
|
32
|
+
directory "vendor/sqlite3/include"
|
33
|
+
|
34
|
+
# download amalgamation BINARY_VERSION (for include files)
|
35
|
+
file "vendor/sqlite-amalgamation-#{BINARY_VERSION}.zip" => ['vendor'] do |t|
|
36
|
+
url = "http://www.sqlite.org/#{File.basename(t.name)}"
|
37
|
+
when_writing "downloading #{t.name}" do
|
38
|
+
cd File.dirname(t.name) do
|
39
|
+
system "wget -c #{url} || curl -C - -O #{url}"
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
# download dll binaries
|
45
|
+
file "vendor/sqlitedll-#{BINARY_VERSION}.zip" => ['vendor'] do |t|
|
46
|
+
url = "http://www.sqlite.org/#{File.basename(t.name)}"
|
47
|
+
when_writing "downloading #{t.name}" do
|
48
|
+
cd File.dirname(t.name) do
|
49
|
+
system "wget -c #{url} || curl -C - -O #{url}"
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
# extract header files into include folder
|
55
|
+
file "vendor/sqlite3/include/sqlite3.h" => ['vendor/sqlite3/include', "vendor/sqlite-amalgamation-#{BINARY_VERSION}.zip"] do |t|
|
56
|
+
full_file = File.expand_path(t.prerequisites.last)
|
57
|
+
when_writing "creating #{t.name}" do
|
58
|
+
cd File.dirname(t.name) do
|
59
|
+
sh "unzip #{full_file}"
|
60
|
+
# update file timestamp to avoid Rake perform this extraction again.
|
61
|
+
touch File.basename(t.name)
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
# extract dll files into lib folder
|
67
|
+
file "vendor/sqlite3/lib/sqlite3.dll" => ['vendor/sqlite3/lib', "vendor/sqlitedll-#{BINARY_VERSION}.zip"] do |t|
|
68
|
+
full_file = File.expand_path(t.prerequisites.last)
|
69
|
+
when_writing "creating #{t.name}" do
|
70
|
+
cd File.dirname(t.name) do
|
71
|
+
sh "unzip #{full_file}"
|
72
|
+
# update file timestamp to avoid Rake perform this extraction again.
|
73
|
+
touch File.basename(t.name)
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
# generate import library from definition and dll file
|
79
|
+
file "vendor/sqlite3/lib/sqlite3.lib" => ["vendor/sqlite3/lib/sqlite3.dll"] do |t|
|
80
|
+
libfile = t.name
|
81
|
+
dllname = libfile.ext('dll')
|
82
|
+
deffile = libfile.ext('def')
|
83
|
+
|
84
|
+
when_writing "creating #{t.name}" do
|
85
|
+
sh dlltool(dllname, deffile, libfile)
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
89
|
+
# clobber vendored packages
|
90
|
+
CLOBBER.include('vendor')
|
91
|
+
|
92
|
+
# vendor:sqlite3
|
93
|
+
task 'vendor:sqlite3' => ["vendor/sqlite3/lib/sqlite3.lib", "vendor/sqlite3/include/sqlite3.h"]
|
94
|
+
|
95
|
+
# hook into cross compilation vendored sqlite3 dependency
|
96
|
+
if RUBY_PLATFORM =~ /mingw|mswin/ then
|
97
|
+
Rake::Task['compile'].prerequisites.unshift 'vendor:sqlite3'
|
98
|
+
else
|
99
|
+
if Rake::Task.tasks.map {|t| t.name }.include? 'cross'
|
100
|
+
Rake::Task['cross'].prerequisites.unshift 'vendor:sqlite3'
|
101
|
+
end
|
102
|
+
end
|
103
|
+
rescue LoadError
|
104
|
+
end
|
data/tasks/spec.rake
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
# Specs
|
2
|
+
require 'spec/rake/spectask'
|
3
|
+
|
4
|
+
desc 'Run specifications'
|
5
|
+
Spec::Rake::SpecTask.new(:spec => [ :clean, :compile ]) do |t|
|
6
|
+
t.spec_opts << '--options' << ROOT + 'spec/spec.opts'
|
7
|
+
t.spec_files = Pathname.glob(ENV['FILES'] || 'spec/**/*_spec.rb').map { |f| f.to_s }
|
8
|
+
|
9
|
+
begin
|
10
|
+
# RCov is run by default, except on the JRuby platform
|
11
|
+
t.rcov = JRUBY ? false : (ENV.has_key?('NO_RCOV') ? ENV['NO_RCOV'] != 'true' : true)
|
12
|
+
t.rcov_opts << '--exclude' << 'spec'
|
13
|
+
t.rcov_opts << '--text-summary'
|
14
|
+
t.rcov_opts << '--sort' << 'coverage' << '--sort-reverse'
|
15
|
+
rescue Exception
|
16
|
+
# rcov not installed
|
17
|
+
end
|
18
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: do_sqlite3
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.12
|
5
5
|
platform: x86-mswin32-60
|
6
6
|
authors:
|
7
7
|
- Dirkjan Bussink
|
@@ -9,9 +9,29 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-
|
12
|
+
date: 2009-05-17 00:00:00 +02:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: addressable
|
17
|
+
type: :runtime
|
18
|
+
version_requirement:
|
19
|
+
version_requirements: !ruby/object:Gem::Requirement
|
20
|
+
requirements:
|
21
|
+
- - ~>
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: 2.0.0
|
24
|
+
version:
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: extlib
|
27
|
+
type: :runtime
|
28
|
+
version_requirement:
|
29
|
+
version_requirements: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ~>
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 0.9.12
|
34
|
+
version:
|
15
35
|
- !ruby/object:Gem::Dependency
|
16
36
|
name: data_objects
|
17
37
|
type: :runtime
|
@@ -20,65 +40,77 @@ dependencies:
|
|
20
40
|
requirements:
|
21
41
|
- - "="
|
22
42
|
- !ruby/object:Gem::Version
|
23
|
-
version: 0.9.
|
43
|
+
version: 0.9.12
|
24
44
|
version:
|
25
45
|
- !ruby/object:Gem::Dependency
|
26
|
-
name:
|
46
|
+
name: rspec
|
27
47
|
type: :development
|
28
48
|
version_requirement:
|
29
49
|
version_requirements: !ruby/object:Gem::Requirement
|
30
50
|
requirements:
|
31
|
-
- -
|
51
|
+
- - ~>
|
32
52
|
- !ruby/object:Gem::Version
|
33
|
-
version: 1.
|
53
|
+
version: 1.2.0
|
34
54
|
version:
|
35
|
-
description:
|
36
|
-
email:
|
37
|
-
- d.bussink@gmail.com
|
55
|
+
description: Implements the DataObjects API for Sqlite3
|
56
|
+
email: d.bussink@gmail.com
|
38
57
|
executables: []
|
39
58
|
|
40
59
|
extensions: []
|
41
60
|
|
42
|
-
extra_rdoc_files:
|
43
|
-
|
44
|
-
- Manifest.txt
|
45
|
-
- README.txt
|
61
|
+
extra_rdoc_files: []
|
62
|
+
|
46
63
|
files:
|
47
|
-
- .gitignore
|
48
|
-
- History.txt
|
49
|
-
- LICENSE
|
50
|
-
- Manifest.txt
|
51
|
-
- README.txt
|
52
|
-
- Rakefile
|
53
|
-
- buildfile
|
54
|
-
- ext-java/src/main/java/DoSqlite3ExtService.java
|
55
|
-
- ext-java/src/main/java/do_sqlite3/Sqlite3DriverDefinition.java
|
56
|
-
- ext/do_sqlite3_ext/do_sqlite3_ext.c
|
57
|
-
- ext/do_sqlite3_ext/extconf.rb
|
58
|
-
- lib/do_sqlite3.rb
|
59
64
|
- lib/do_sqlite3/transaction.rb
|
60
65
|
- lib/do_sqlite3/version.rb
|
61
|
-
-
|
62
|
-
- spec/
|
63
|
-
- spec/
|
64
|
-
- spec/
|
66
|
+
- lib/do_sqlite3.rb
|
67
|
+
- spec/command_spec.rb
|
68
|
+
- spec/connection_spec.rb
|
69
|
+
- spec/lib/rspec_immediate_feedback_formatter.rb
|
70
|
+
- spec/reader_spec.rb
|
71
|
+
- spec/result_spec.rb
|
65
72
|
- spec/spec_helper.rb
|
66
|
-
- spec/
|
73
|
+
- spec/typecast/array_spec.rb
|
74
|
+
- spec/typecast/bigdecimal_spec.rb
|
75
|
+
- spec/typecast/boolean_spec.rb
|
76
|
+
- spec/typecast/byte_array_spec.rb
|
77
|
+
- spec/typecast/class_spec.rb
|
78
|
+
- spec/typecast/date_spec.rb
|
79
|
+
- spec/typecast/datetime_spec.rb
|
80
|
+
- spec/typecast/float_spec.rb
|
81
|
+
- spec/typecast/integer_spec.rb
|
82
|
+
- spec/typecast/nil_spec.rb
|
83
|
+
- spec/typecast/range_spec.rb
|
84
|
+
- spec/typecast/string_spec.rb
|
85
|
+
- spec/typecast/time_spec.rb
|
86
|
+
- tasks/gem.rake
|
87
|
+
- tasks/install.rake
|
88
|
+
- tasks/native.rake
|
89
|
+
- tasks/release.rake
|
90
|
+
- tasks/retrieve.rake
|
91
|
+
- tasks/spec.rake
|
92
|
+
- ext/do_sqlite3_ext/extconf.rb
|
93
|
+
- ext/do_sqlite3_ext/do_sqlite3_ext.c
|
94
|
+
- LICENSE
|
95
|
+
- Rakefile
|
96
|
+
- History.txt
|
97
|
+
- Manifest.txt
|
98
|
+
- README.txt
|
67
99
|
- lib/do_sqlite3_ext.so
|
68
|
-
has_rdoc:
|
69
|
-
homepage: http://
|
100
|
+
has_rdoc: true
|
101
|
+
homepage: http://github.com/datamapper/do
|
102
|
+
licenses: []
|
103
|
+
|
70
104
|
post_install_message:
|
71
|
-
rdoc_options:
|
72
|
-
|
73
|
-
- README.txt
|
105
|
+
rdoc_options: []
|
106
|
+
|
74
107
|
require_paths:
|
75
108
|
- lib
|
76
|
-
- ext
|
77
109
|
required_ruby_version: !ruby/object:Gem::Requirement
|
78
110
|
requirements:
|
79
|
-
- -
|
111
|
+
- - ~>
|
80
112
|
- !ruby/object:Gem::Version
|
81
|
-
version:
|
113
|
+
version: 1.8.6
|
82
114
|
version:
|
83
115
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
84
116
|
requirements:
|
@@ -89,9 +121,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
89
121
|
requirements: []
|
90
122
|
|
91
123
|
rubyforge_project: dorb
|
92
|
-
rubygems_version: 1.3.
|
124
|
+
rubygems_version: 1.3.3
|
93
125
|
signing_key:
|
94
|
-
specification_version:
|
95
|
-
summary:
|
126
|
+
specification_version: 3
|
127
|
+
summary: DataObjects Sqlite3 Driver
|
96
128
|
test_files: []
|
97
129
|
|
data/.gitignore
DELETED
data/buildfile
DELETED
@@ -1,27 +0,0 @@
|
|
1
|
-
# Apache Buildr buildfile for do_sqlite3
|
2
|
-
# see http://incubator.apache.org/buildr/ for more information on Apache Buildr
|
3
|
-
require 'buildr'
|
4
|
-
require 'pathname'
|
5
|
-
|
6
|
-
VERSION_NUMBER = '1.0'
|
7
|
-
JDBC_SUPPORT = ['data_objects:jdbc:jar:1.0']
|
8
|
-
TARGET_DIR = 'pkg/classes'
|
9
|
-
repositories.remote << 'http://www.ibiblio.org/maven2/'
|
10
|
-
|
11
|
-
define 'do_sqlite3' do
|
12
|
-
project.version = VERSION_NUMBER
|
13
|
-
project.group = 'data_objects.rb'
|
14
|
-
|
15
|
-
manifest['Copyright'] = 'Alex Coles (C) 2008-2009'
|
16
|
-
|
17
|
-
compile.using :target => '1.5', :lint => 'all', :deprecation => 'true'
|
18
|
-
|
19
|
-
define 'ext-java' do
|
20
|
-
package(:jar).clean.include(TARGET_DIR)
|
21
|
-
|
22
|
-
jdbc_support_jar = file('../../do_jdbc/lib/do_jdbc_internal.jar')
|
23
|
-
jdbc_support = artifact('data_objects:jdbc:jar:1.0').from(jdbc_support_jar)
|
24
|
-
|
25
|
-
compile.into(TARGET_DIR).with(JDBC_SUPPORT)
|
26
|
-
end
|
27
|
-
end
|
@@ -1,23 +0,0 @@
|
|
1
|
-
import data_objects.drivers.DriverDefinition;
|
2
|
-
import do_sqlite3.Sqlite3DriverDefinition;
|
3
|
-
|
4
|
-
public class DoSqlite3ExtService extends AbstractDataObjectsExtService {
|
5
|
-
|
6
|
-
private final static DriverDefinition driver = new Sqlite3DriverDefinition();
|
7
|
-
public final static String RUBY_MODULE_NAME = "Sqlite3";
|
8
|
-
public final static String RUBY_ERROR_NAME = "Sqlite3Error";
|
9
|
-
|
10
|
-
public String getModuleName() {
|
11
|
-
return RUBY_MODULE_NAME;
|
12
|
-
}
|
13
|
-
|
14
|
-
@Override
|
15
|
-
public String getErrorName() {
|
16
|
-
return RUBY_ERROR_NAME;
|
17
|
-
}
|
18
|
-
|
19
|
-
public DriverDefinition getDriverDefinition() {
|
20
|
-
return driver;
|
21
|
-
}
|
22
|
-
|
23
|
-
}
|
@@ -1,26 +0,0 @@
|
|
1
|
-
package do_sqlite3;
|
2
|
-
|
3
|
-
import data_objects.drivers.AbstractDriverDefinition;
|
4
|
-
|
5
|
-
public class Sqlite3DriverDefinition extends AbstractDriverDefinition {
|
6
|
-
|
7
|
-
public boolean supportsJdbcGeneratedKeys()
|
8
|
-
{
|
9
|
-
return true;
|
10
|
-
}
|
11
|
-
|
12
|
-
public boolean supportsConnectionPrepareStatementMethodWithGKFlag()
|
13
|
-
{
|
14
|
-
return false;
|
15
|
-
}
|
16
|
-
|
17
|
-
//@Override
|
18
|
-
public String quoteString(String str) {
|
19
|
-
StringBuffer quotedValue = new StringBuffer(str.length() + 2);
|
20
|
-
quotedValue.append("\'");
|
21
|
-
quotedValue.append(str.replaceAll("'", "''"));
|
22
|
-
quotedValue.append("\'");
|
23
|
-
return quotedValue.toString();
|
24
|
-
}
|
25
|
-
|
26
|
-
}
|