do_sqlite3 0.9.12-x86-mingw32

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/tasks/gem.rake ADDED
@@ -0,0 +1,61 @@
1
+ require 'rubygems/package_task'
2
+
3
+ GEM_SPEC = Gem::Specification.new do |s|
4
+ # basic information
5
+ s.name = "do_sqlite3"
6
+ s.version = DataObjects::Sqlite3::VERSION
7
+
8
+ # description and details
9
+ s.summary = 'DataObjects Sqlite3 Driver'
10
+ s.description = "Implements the DataObjects API for Sqlite3"
11
+
12
+ # dependencies
13
+ s.add_dependency "addressable", "~>2.0.0"
14
+ s.add_dependency "extlib", "~>0.9.12"
15
+ s.add_dependency "data_objects", DataObjects::Sqlite3::VERSION
16
+
17
+ if JRUBY
18
+ s.add_dependency "jdbc-sqlite3", ">=3.5.8"
19
+ s.add_dependency "do_jdbc", DataObjects::Sqlite3::VERSION
20
+ s.platform = "java"
21
+ # components, files and paths
22
+ s.files = FileList["lib/**/*.rb", "spec/**/*.rb", "tasks/**/*.rake",
23
+ "LICENSE", "Rakefile", "*.{rdoc,txt,yml}", "lib/*.jar"]
24
+ else
25
+ s.platform = Gem::Platform::RUBY
26
+ s.extensions << 'ext/do_sqlite3_ext/extconf.rb'
27
+ # components, files and paths
28
+ s.files = FileList["lib/**/*.rb", "spec/**/*.rb", "tasks/**/*.rake", "ext/**/*.{rb,c}",
29
+ "LICENSE", "Rakefile", "*.{rdoc,txt,yml}"]
30
+ end
31
+
32
+ # development dependencies
33
+ s.add_development_dependency 'rspec', '~>1.2.0'
34
+
35
+
36
+ s.require_path = 'lib'
37
+
38
+ # documentation
39
+ s.has_rdoc = false
40
+
41
+ # project information
42
+ s.homepage = 'http://github.com/datamapper/do'
43
+ s.rubyforge_project = 'dorb'
44
+
45
+ # author and contributors
46
+ s.author = 'Dirkjan Bussink'
47
+ s.email = 'd.bussink@gmail.com'
48
+ end
49
+
50
+ gem_package = Gem::PackageTask.new(GEM_SPEC) do |pkg|
51
+ pkg.need_tar = false
52
+ pkg.need_zip = false
53
+ end
54
+
55
+ file "#{GEM_SPEC.name}.gemspec" => ['Rakefile', 'tasks/gem.rake'] do |t|
56
+ puts "Generating #{t.name}"
57
+ File.open(t.name, 'w') { |f| f.puts GEM_SPEC.to_yaml }
58
+ end
59
+
60
+ desc "Generate or update the standalone gemspec file for the project"
61
+ task :gemspec => ["#{GEM_SPEC.name}.gemspec"]
@@ -0,0 +1,15 @@
1
+ def sudo_gem(cmd)
2
+ sh "#{SUDO} #{RUBY} -S gem #{cmd}", :verbose => false
3
+ end
4
+
5
+ # Installation
6
+
7
+ desc "Install #{GEM_SPEC.name} #{GEM_SPEC.version}"
8
+ task :install => [ :package ] do
9
+ sudo_gem "install pkg/#{GEM_SPEC.name}-#{GEM_SPEC.version} --no-update-sources"
10
+ end
11
+
12
+ desc "Uninstall #{GEM_SPEC.name} #{GEM_SPEC.version}"
13
+ task :uninstall => [ :clean ] do
14
+ sudo_gem "uninstall #{GEM_SPEC.name} -v#{GEM_SPEC.version} -I -x"
15
+ end
data/tasks/native.rake ADDED
@@ -0,0 +1,35 @@
1
+ begin
2
+ gem('rake-compiler')
3
+ require 'rake/extensiontask'
4
+
5
+ # compile the extension
6
+ if JRUBY
7
+ # XXX: is it necessary to run this everytime?
8
+ Rake::Task['compile:jruby'].invoke
9
+ end
10
+
11
+ Rake::ExtensionTask.new('do_sqlite3_ext', GEM_SPEC) do |ext|
12
+
13
+ sqlite3_lib = File.expand_path(File.join(File.dirname(__FILE__), '..', 'vendor', 'sqlite3'))
14
+
15
+ ext.cross_compile = true
16
+ ext.cross_platform = ['x86-mingw32', 'x86-mswin32-60']
17
+ ext.cross_config_options << "--with-sqlite3-dir=#{sqlite3_lib}"
18
+
19
+ # automatically add build options to avoid need of manual input
20
+ if RUBY_PLATFORM =~ /mswin|mingw/ then
21
+ ext.config_options << "--with-sqlite3-dir=#{sqlite3_lib}"
22
+ end
23
+
24
+ end
25
+ rescue LoadError
26
+ warn "To cross-compile, install rake-compiler (gem install rake-compiler)"
27
+
28
+ if (tasks_dir = ROOT.parent + 'tasks').directory?
29
+ require tasks_dir + 'ext_helper'
30
+ require tasks_dir + 'ext_helper_java'
31
+
32
+ setup_c_extension("#{GEM_SPEC.name}_ext", GEM_SPEC)
33
+ setup_java_extension("#{GEM_SPEC.name}_ext", GEM_SPEC)
34
+ end
35
+ end
@@ -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
@@ -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 ADDED
@@ -0,0 +1,129 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: do_sqlite3
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.9.12
5
+ platform: x86-mingw32
6
+ authors:
7
+ - Dirkjan Bussink
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2009-05-17 00:00:00 +02:00
13
+ default_executable:
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:
35
+ - !ruby/object:Gem::Dependency
36
+ name: data_objects
37
+ type: :runtime
38
+ version_requirement:
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - "="
42
+ - !ruby/object:Gem::Version
43
+ version: 0.9.12
44
+ version:
45
+ - !ruby/object:Gem::Dependency
46
+ name: rspec
47
+ type: :development
48
+ version_requirement:
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ~>
52
+ - !ruby/object:Gem::Version
53
+ version: 1.2.0
54
+ version:
55
+ description: Implements the DataObjects API for Sqlite3
56
+ email: d.bussink@gmail.com
57
+ executables: []
58
+
59
+ extensions: []
60
+
61
+ extra_rdoc_files: []
62
+
63
+ files:
64
+ - lib/do_sqlite3/transaction.rb
65
+ - lib/do_sqlite3/version.rb
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
72
+ - spec/spec_helper.rb
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
99
+ - lib/do_sqlite3_ext.so
100
+ has_rdoc: true
101
+ homepage: http://github.com/datamapper/do
102
+ licenses: []
103
+
104
+ post_install_message:
105
+ rdoc_options: []
106
+
107
+ require_paths:
108
+ - lib
109
+ required_ruby_version: !ruby/object:Gem::Requirement
110
+ requirements:
111
+ - - ~>
112
+ - !ruby/object:Gem::Version
113
+ version: 1.8.6
114
+ version:
115
+ required_rubygems_version: !ruby/object:Gem::Requirement
116
+ requirements:
117
+ - - ">="
118
+ - !ruby/object:Gem::Version
119
+ version: "0"
120
+ version:
121
+ requirements: []
122
+
123
+ rubyforge_project: dorb
124
+ rubygems_version: 1.3.3
125
+ signing_key:
126
+ specification_version: 3
127
+ summary: DataObjects Sqlite3 Driver
128
+ test_files: []
129
+