do_sqlite3 0.10.0-x86-mingw32 → 0.10.1-x86-mingw32

Sign up to get free protection for your applications and to get access to all the features.
Files changed (43) hide show
  1. data/ChangeLog.markdown +32 -0
  2. data/LICENSE +1 -1
  3. data/README.markdown +101 -3
  4. data/Rakefile +56 -9
  5. data/ext/do_sqlite3/compat.h +55 -0
  6. data/ext/{do_sqlite3_ext/do_sqlite3_ext.c → do_sqlite3/do_sqlite3.c} +46 -34
  7. data/ext/{do_sqlite3_ext → do_sqlite3}/error.h +0 -0
  8. data/ext/{do_sqlite3_ext → do_sqlite3}/extconf.rb +3 -3
  9. data/lib/do_sqlite3.rb +19 -11
  10. data/lib/do_sqlite3/1.8/do_sqlite3.so +0 -0
  11. data/lib/do_sqlite3/1.9/do_sqlite3.so +0 -0
  12. data/lib/do_sqlite3/version.rb +1 -1
  13. data/spec/command_spec.rb +1 -1
  14. data/spec/connection_spec.rb +8 -6
  15. data/spec/reader_spec.rb +1 -1
  16. data/spec/result_spec.rb +3 -3
  17. data/spec/spec_helper.rb +19 -32
  18. data/spec/typecast/array_spec.rb +1 -1
  19. data/spec/typecast/bigdecimal_spec.rb +1 -1
  20. data/spec/typecast/boolean_spec.rb +1 -1
  21. data/spec/typecast/byte_array_spec.rb +1 -2
  22. data/spec/typecast/class_spec.rb +1 -1
  23. data/spec/typecast/date_spec.rb +1 -1
  24. data/spec/typecast/datetime_spec.rb +1 -1
  25. data/spec/typecast/float_spec.rb +2 -2
  26. data/spec/typecast/integer_spec.rb +1 -1
  27. data/spec/typecast/nil_spec.rb +4 -4
  28. data/spec/typecast/other_spec.rb +8 -0
  29. data/spec/typecast/range_spec.rb +1 -1
  30. data/spec/typecast/string_spec.rb +1 -1
  31. data/spec/typecast/time_spec.rb +1 -1
  32. data/tasks/compile.rake +64 -0
  33. data/tasks/release.rake +12 -71
  34. data/tasks/retrieve.rake +1 -1
  35. data/tasks/spec.rake +19 -15
  36. metadata +64 -38
  37. data/HISTORY.markdown +0 -22
  38. data/Manifest.txt +0 -31
  39. data/lib/do_sqlite3_ext.so +0 -0
  40. data/spec/lib/rspec_immediate_feedback_formatter.rb +0 -3
  41. data/tasks/gem.rake +0 -8
  42. data/tasks/install.rake +0 -15
  43. data/tasks/native.rake +0 -35
@@ -3,8 +3,8 @@ ENV["RC_ARCHS"] = "" if RUBY_PLATFORM =~ /darwin/
3
3
  # Loads mkmf which is used to make makefiles for Ruby extensions
4
4
  require 'mkmf'
5
5
 
6
- # Give it a name
7
- extension_name = 'do_sqlite3_ext'
6
+ # Allow for custom compiler to be specified.
7
+ RbConfig::MAKEFILE_CONFIG['CC'] = ENV['CC'] if ENV['CC']
8
8
 
9
9
  # Use some default search paths
10
10
  dir_config("sqlite3", ["/usr/local", "/opt/local", "/usr"])
@@ -22,5 +22,5 @@ if have_header( "sqlite3.h" ) && have_library( "sqlite3", "sqlite3_open" )
22
22
  have_func("sqlite3_prepare_v2")
23
23
  have_func("sqlite3_open_v2")
24
24
 
25
- create_makefile(extension_name)
25
+ create_makefile('do_sqlite3/do_sqlite3')
26
26
  end
@@ -18,22 +18,30 @@ if RUBY_PLATFORM =~ /java/
18
18
  java_import driver
19
19
  end
20
20
 
21
- require 'do_sqlite3_ext'
21
+ begin
22
+ require 'do_sqlite3/do_sqlite3'
23
+ rescue LoadError
24
+ if RUBY_PLATFORM =~ /mingw|mswin/ then
25
+ RUBY_VERSION =~ /(\d+.\d+)/
26
+ require "do_sqlite3/#{$1}/do_sqlite3"
27
+ else
28
+ raise
29
+ end
30
+ end
31
+
22
32
  require 'do_sqlite3/version'
23
- require 'do_sqlite3/transaction'
33
+ require 'do_sqlite3/transaction' if RUBY_PLATFORM !~ /java/
24
34
 
25
35
  if RUBY_PLATFORM =~ /java/
26
36
 
27
- module DataObjects
28
- module Sqlite3
29
- class Connection
30
- def self.pool_size
31
- # sqlite3 can have only one write access at a time, with this
32
- # concurrent write access will result in "Database locked" errors
33
- 1
34
- end
35
- end
37
+ DataObjects::Sqlite3::Connection.class_eval do
38
+
39
+ def self.pool_size
40
+ # sqlite3 can have only one write access at a time, with this
41
+ # concurrent write access will result in "Database locked" errors
42
+ 1
36
43
  end
44
+
37
45
  end
38
46
 
39
47
  end
@@ -1,5 +1,5 @@
1
1
  module DataObjects
2
2
  module Sqlite3
3
- VERSION = "0.10.0"
3
+ VERSION = '0.10.1'.freeze
4
4
  end
5
5
  end
@@ -4,5 +4,5 @@ require File.expand_path(File.join(File.dirname(__FILE__), 'spec_helper'))
4
4
  require 'data_objects/spec/command_spec'
5
5
 
6
6
  describe DataObjects::Sqlite3::Command do
7
- it_should_behave_like 'a Command'
7
+ behaves_like 'a Command'
8
8
  end
@@ -5,14 +5,16 @@ require 'data_objects/spec/connection_spec'
5
5
 
6
6
  describe DataObjects::Sqlite3::Connection do
7
7
 
8
- before :all do
9
- @driver = CONFIG.scheme
10
- @user = CONFIG.user
8
+ before do
9
+ @driver = CONFIG.scheme
10
+ @user = CONFIG.user
11
11
  @password = CONFIG.pass
12
- @host = CONFIG.host
13
- @port = CONFIG.port
12
+ @host = CONFIG.host
13
+ @port = CONFIG.port
14
14
  @database = CONFIG.database
15
15
  end
16
16
 
17
- it_should_behave_like 'a Connection'
17
+ behaves_like 'a Connection'
18
+ behaves_like 'a Connection via JDNI' if JRUBY
19
+ # FIXME: behaves_like 'a Connection with JDBC URL support' if JRUBY
18
20
  end
@@ -4,5 +4,5 @@ require File.expand_path(File.join(File.dirname(__FILE__), 'spec_helper'))
4
4
  require 'data_objects/spec/reader_spec'
5
5
 
6
6
  describe DataObjects::Sqlite3::Reader do
7
- it_should_behave_like 'a Reader'
7
+ behaves_like 'a Reader'
8
8
  end
@@ -4,16 +4,16 @@ require File.expand_path(File.join(File.dirname(__FILE__), 'spec_helper'))
4
4
  require 'data_objects/spec/result_spec'
5
5
 
6
6
  # splitting the descibe into two separate declaration avoids
7
- # concurrent execution of the "it_should_behave_like ....." calls
7
+ # concurrent execution of the "behaves_like ....." calls
8
8
  # which would lock the database
9
9
 
10
10
  # TODO
11
11
  # the locked database created a deadlock which is worth exploring since
12
12
  # such situation could appear in the wild too
13
13
  describe DataObjects::Sqlite3::Result do
14
- it_should_behave_like 'a Result'
14
+ behaves_like 'a Result'
15
15
  end
16
16
 
17
17
  describe DataObjects::Sqlite3::Result do
18
- it_should_behave_like 'a Result which returns inserted keys'
18
+ behaves_like 'a Result which returns inserted keys'
19
19
  end
@@ -2,51 +2,36 @@ $TESTING=true
2
2
  JRUBY = RUBY_PLATFORM =~ /java/
3
3
 
4
4
  require 'rubygems'
5
-
6
- gem 'rspec', '>1.1.12'
7
- require 'spec'
8
-
9
5
  require 'date'
10
6
  require 'ostruct'
11
- require 'pathname'
12
7
  require 'fileutils'
8
+ require 'win32console' if RUBY_PLATFORM =~ /mingw|mswin/
9
+
10
+ driver_lib = File.expand_path('../../lib', __FILE__)
11
+ $LOAD_PATH.unshift(driver_lib) unless $LOAD_PATH.include?(driver_lib)
13
12
 
14
- dir = File.dirname(__FILE__)
15
- lib_path = File.expand_path("#{dir}/../lib")
16
- $LOAD_PATH.unshift lib_path unless $LOAD_PATH.include?(lib_path)
17
- # put data_objects from repository in the load path
18
- # DO NOT USE installed gem of data_objects!
19
- do_lib_path = File.expand_path("#{dir}/../../data_objects/lib")
20
- $LOAD_PATH.unshift do_lib_path unless $LOAD_PATH.include?(do_lib_path)
21
-
22
- if JRUBY
23
- jdbc_lib_path = File.expand_path(File.join(File.dirname(__FILE__), '..', '..', 'do_jdbc', 'lib'))
24
- $LOAD_PATH.unshift jdbc_lib_path unless $LOAD_PATH.include?(jdbc_lib_path)
25
- require 'do_jdbc'
13
+ # Prepend data_objects/do_jdbc in the repository to the load path.
14
+ # DO NOT USE installed gems, except when running the specs from gem.
15
+ repo_root = File.expand_path('../../..', __FILE__)
16
+ (['data_objects'] << ('do_jdbc' if JRUBY)).compact.each do |lib|
17
+ lib_path = "#{repo_root}/#{lib}/lib"
18
+ $LOAD_PATH.unshift(lib_path) if File.directory?(lib_path) && !$LOAD_PATH.include?(lib_path)
26
19
  end
27
20
 
28
21
  require 'data_objects'
29
-
30
- DATAOBJECTS_SPEC_ROOT = Pathname(__FILE__).dirname.parent.parent + 'data_objects' + 'spec'
31
- Pathname.glob((DATAOBJECTS_SPEC_ROOT + 'lib/**/*.rb').to_s).each { |f| require f }
22
+ require 'data_objects/spec/bacon'
32
23
  require 'do_sqlite3'
33
24
 
34
- log_path = File.expand_path(File.join(File.dirname(__FILE__), '..', 'log', 'do.log'))
35
- FileUtils.mkdir_p(File.dirname(log_path))
36
-
37
- DataObjects::Sqlite3.logger = DataObjects::Logger.new(log_path, :debug)
38
-
25
+ DataObjects::Sqlite3.logger = DataObjects::Logger.new(STDOUT, :off)
39
26
  at_exit { DataObjects.logger.flush }
40
27
 
41
- Spec::Runner.configure do |config|
42
- config.include(DataObjects::Spec::PendingHelpers)
43
- end
44
-
45
28
  CONFIG = OpenStruct.new
46
29
  CONFIG.scheme = 'sqlite3'
47
- CONFIG.database = ENV['DO_SQLITE3_DATABASE'] || "#{File.expand_path(File.dirname(__FILE__))}/test.db"
30
+ CONFIG.database = ENV['DO_SQLITE3_DATABASE'] || ":memory:"
48
31
 
49
- CONFIG.uri = ENV["DO_SQLITE3_SPEC_URI"] || "#{CONFIG.scheme}://#{CONFIG.database}"
32
+ CONFIG.uri = ENV["DO_SQLITE3_SPEC_URI"] || "#{CONFIG.scheme}:#{CONFIG.database}"
33
+ CONFIG.jdbc_driver = 'org.sqlite.JDBC'
34
+ CONFIG.jdbc_uri = CONFIG.uri.sub(/sqlite3/,"jdbc:sqlite")
50
35
 
51
36
  module DataObjectsSpecHelpers
52
37
 
@@ -111,7 +96,7 @@ module DataObjectsSpecHelpers
111
96
 
112
97
  1.upto(16) do |n|
113
98
  conn.create_command(<<-EOF).execute_non_query
114
- insert into widgets(code, name, shelf_location, description, image_data, ad_description, ad_image, whitepaper_text, cad_drawing, super_number, weight) VALUES ('W#{n.to_s.rjust(7,"0")}', 'Widget #{n}', 'A14', 'This is a description', 'IMAGE DATA', 'Buy this product now!', 'AD IMAGE DATA', 'String', 'CAD DRAWING', 1234, 13.4);
99
+ insert into widgets(code, name, shelf_location, description, image_data, ad_description, ad_image, whitepaper_text, cad_drawing, super_number, weight) VALUES ('W#{n.to_s.rjust(7,"0")}', 'Widget #{n}', 'A14', 'This is a description', 'IMAGE DATA', 'Buy this product now!', 'AD IMAGE DATA', 'String', X'434144200120002044524157494e47', 1234, 13.4);
115
100
  EOF
116
101
  end
117
102
 
@@ -151,3 +136,5 @@ module DataObjectsSpecHelpers
151
136
  end
152
137
 
153
138
  end
139
+
140
+ include DataObjectsSpecHelpers
@@ -4,5 +4,5 @@ require File.expand_path(File.join(File.dirname(__FILE__), '..', 'spec_helper'))
4
4
  require 'data_objects/spec/typecast/array_spec'
5
5
 
6
6
  describe 'DataObjects::Sqlite3 with Array' do
7
- it_should_behave_like 'supporting Array'
7
+ behaves_like 'supporting Array'
8
8
  end
@@ -7,5 +7,5 @@ require 'data_objects/spec/typecast/bigdecimal_spec'
7
7
  # http://www.sqlite.org/datatype3.html
8
8
 
9
9
  describe 'DataObjects::Sqlite3 with BigDecimal' do
10
- it_should_behave_like 'supporting BigDecimal'
10
+ behaves_like 'supporting BigDecimal'
11
11
  end
@@ -7,5 +7,5 @@ require 'data_objects/spec/typecast/boolean_spec'
7
7
  # http://www.sqlite.org/datatype3.html
8
8
 
9
9
  describe 'DataObjects::Sqlite3 with Boolean' do
10
- it_should_behave_like 'supporting Boolean'
10
+ behaves_like 'supporting Boolean'
11
11
  end
@@ -4,6 +4,5 @@ require File.expand_path(File.join(File.dirname(__FILE__), '..', 'spec_helper'))
4
4
  require 'data_objects/spec/typecast/byte_array_spec'
5
5
 
6
6
  describe 'DataObjects::Sqlite3 with ByteArray' do
7
- # We need to switch to using parameter binding for this to work with Sqlite3
8
- # it_should_behave_like 'supporting ByteArray'
7
+ behaves_like 'supporting ByteArray'
9
8
  end
@@ -4,5 +4,5 @@ require File.expand_path(File.join(File.dirname(__FILE__), '..', 'spec_helper'))
4
4
  require 'data_objects/spec/typecast/class_spec'
5
5
 
6
6
  describe 'DataObjects::Sqlite3 with Class' do
7
- it_should_behave_like 'supporting Class'
7
+ behaves_like 'supporting Class'
8
8
  end
@@ -7,5 +7,5 @@ require 'data_objects/spec/typecast/date_spec'
7
7
  # http://www.sqlite.org/datatype3.html
8
8
 
9
9
  describe 'DataObjects::Sqlite3 with Date' do
10
- it_should_behave_like 'supporting Date'
10
+ behaves_like 'supporting Date'
11
11
  end
@@ -7,5 +7,5 @@ require 'data_objects/spec/typecast/datetime_spec'
7
7
  # http://www.sqlite.org/datatype3.html
8
8
 
9
9
  describe 'DataObjects::Sqlite3 with DateTime' do
10
- it_should_behave_like 'supporting DateTime'
10
+ behaves_like 'supporting DateTime'
11
11
  end
@@ -4,9 +4,9 @@ require File.expand_path(File.join(File.dirname(__FILE__), '..', 'spec_helper'))
4
4
  require 'data_objects/spec/typecast/float_spec'
5
5
 
6
6
  describe 'DataObjects::Sqlite3 with Float' do
7
- it_should_behave_like 'supporting Float'
7
+ behaves_like 'supporting Float'
8
8
  end
9
9
 
10
10
  describe 'DataObjects::Sqlite3 with Float' do
11
- it_should_behave_like 'supporting Float autocasting'
11
+ behaves_like 'supporting Float autocasting'
12
12
  end
@@ -4,5 +4,5 @@ require File.expand_path(File.join(File.dirname(__FILE__), '..', 'spec_helper'))
4
4
  require 'data_objects/spec/typecast/integer_spec'
5
5
 
6
6
  describe 'DataObjects::Sqlite3 with Integer' do
7
- it_should_behave_like 'supporting Integer'
7
+ behaves_like 'supporting Integer'
8
8
  end
@@ -4,17 +4,17 @@ require File.expand_path(File.join(File.dirname(__FILE__), '..', 'spec_helper'))
4
4
  require 'data_objects/spec/typecast/nil_spec'
5
5
 
6
6
  # splitting the descibe into two separate declaration avoids
7
- # concurrent execution of the "it_should_behave_like ....." calls
7
+ # concurrent execution of the "behaves_like ....." calls
8
8
  # which would lock the database
9
9
 
10
10
  describe 'DataObjects::Sqlite3 with Nil' do
11
- it_should_behave_like 'supporting Nil'
11
+ behaves_like 'supporting Nil'
12
12
  end
13
13
 
14
14
  describe 'DataObjects::Sqlite3 with Nil' do
15
- it_should_behave_like 'supporting writing an Nil'
15
+ behaves_like 'supporting writing an Nil'
16
16
  end
17
17
 
18
18
  describe 'DataObjects::Sqlite3 with Nil' do
19
- it_should_behave_like 'supporting Nil autocasting'
19
+ behaves_like 'supporting Nil autocasting'
20
20
  end
@@ -0,0 +1,8 @@
1
+ # encoding: utf-8
2
+
3
+ require File.expand_path(File.join(File.dirname(__FILE__), '..', 'spec_helper'))
4
+ require 'data_objects/spec/typecast/other_spec'
5
+
6
+ describe 'DataObjects::H2 with other (unknown) type' do
7
+ behaves_like 'supporting other (unknown) type'
8
+ end
@@ -4,5 +4,5 @@ require File.expand_path(File.join(File.dirname(__FILE__), '..', 'spec_helper'))
4
4
  require 'data_objects/spec/typecast/range_spec'
5
5
 
6
6
  describe 'DataObjects::Sqlite3 with Range' do
7
- it_should_behave_like 'supporting Range'
7
+ behaves_like 'supporting Range'
8
8
  end
@@ -4,5 +4,5 @@ require File.expand_path(File.join(File.dirname(__FILE__), '..', 'spec_helper'))
4
4
  require 'data_objects/spec/typecast/string_spec'
5
5
 
6
6
  describe 'DataObjects::Sqlite3 with String' do
7
- it_should_behave_like 'supporting String'
7
+ behaves_like 'supporting String'
8
8
  end
@@ -4,5 +4,5 @@ require File.expand_path(File.join(File.dirname(__FILE__), '..', 'spec_helper'))
4
4
  require 'data_objects/spec/typecast/time_spec'
5
5
 
6
6
  describe 'DataObjects::Sqlite3 with Time' do
7
- it_should_behave_like 'supporting Time'
7
+ behaves_like 'supporting Time'
8
8
  end
@@ -0,0 +1,64 @@
1
+ begin
2
+ gem 'rake-compiler', '~>0.7'
3
+ require 'rake/extensiontask'
4
+ require 'rake/javaextensiontask'
5
+
6
+ # Hack to avoid "allocator undefined for Proc" issue when unpacking Gems:
7
+ # gemspec provided by Jeweler uses Rake::FileList for files, test_files and
8
+ # extra_rdoc_files, and procs cannot be marshalled.
9
+ def gemspec
10
+ @clean_gemspec ||= eval("#{Rake.application.jeweler.gemspec.to_ruby}") # $SAFE = 3\n
11
+ end
12
+
13
+ Rake::ExtensionTask.new('do_sqlite3', gemspec) do |ext|
14
+
15
+ sqlite3_lib = File.expand_path(File.join(File.dirname(__FILE__), '..', 'vendor', 'sqlite3'))
16
+
17
+ ext.lib_dir = "lib/#{gemspec.name}"
18
+
19
+ ext.cross_compile = true
20
+ ext.cross_platform = ['x86-mingw32', 'x86-mswin32-60']
21
+ ext.cross_config_options << "--with-sqlite3-dir=#{sqlite3_lib}"
22
+
23
+ ext.cross_compiling do |gemspec|
24
+ gemspec.post_install_message = <<-POST_INSTALL_MESSAGE
25
+
26
+ =============================================================================
27
+
28
+ You've installed the binary version of #{gemspec.name}.
29
+ It was built using Sqlite3 version #{BINARY_VERSION}.
30
+ It's recommended to use the exact same version to avoid potential issues.
31
+
32
+ At the time of building this gem, the necessary DLL files where available
33
+ in the following download:
34
+
35
+ http://www.sqlite.org/sqlitedll-#{BINARY_VERSION}.zip
36
+
37
+ You can put the sqlite3.dll available in this package in your Ruby bin
38
+ directory, for example C:\\Ruby\\bin
39
+
40
+ =============================================================================
41
+
42
+ POST_INSTALL_MESSAGE
43
+ end
44
+
45
+ # automatically add build options to avoid need of manual input
46
+ if RUBY_PLATFORM =~ /mswin|mingw/ then
47
+ ext.config_options << "--with-sqlite3-dir=#{sqlite3_lib}"
48
+ end
49
+
50
+ end
51
+
52
+ Rake::JavaExtensionTask.new('do_sqlite3', gemspec) do |ext|
53
+ ext.ext_dir = 'ext-java/src/main/java'
54
+ ext.lib_dir = "lib/#{gemspec.name}"
55
+ ext.debug = ENV.has_key?('DO_JAVA_DEBUG') && ENV['DO_JAVA_DEBUG']
56
+ ext.classpath = '../do_jdbc/lib/do_jdbc_internal.jar'
57
+ ext.java_compiling do |gem|
58
+ gem.add_dependency 'jdbc-sqlite3', '>=3.5.8'
59
+ gem.add_dependency 'do_jdbc', '0.10.1'
60
+ end
61
+ end
62
+ rescue LoadError
63
+ warn "To compile, install rake-compiler (gem install rake-compiler)"
64
+ end
@@ -1,75 +1,16 @@
1
- begin
2
- gem 'rubyforge', '~> 1.0.1'
3
- require 'rubyforge'
4
- rescue Exception
5
- nil
1
+ desc 'Builds all gems (native, binaries for JRuby and Windows)'
2
+ task :build_all do
3
+ `rake clean`
4
+ `rake build`
5
+ `rake java gem`
6
+ `rake cross native gem RUBY_CC_VERSION=1.8.6:1.9.1`
6
7
  end
7
8
 
8
- if defined?(RubyForge) then
9
- if defined?(GEM_SPEC) then
10
- desc 'Package and upload to RubyForge'
11
- task :release 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.markdown")
30
- r.split(/^(.*\n\-+)/)[1..4].join.strip
31
- rescue
32
- warn "Missing README.markdown"
33
- ''
34
- end
35
-
36
- # read changes
37
- changes = begin
38
- h = File.read("HISTORY.markdown")
39
- h.split(/^(##+ .*)/)[1..2].join.strip
40
- rescue
41
- warn "Missing HISTORY.markdown"
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."
9
+ desc 'Release all gems (native, binaries for JRuby and Windows)'
10
+ task :release_all => :build_all do
11
+ Dir["pkg/do_sqlite3-#{DataObjects::Sqlite3::VERSION}*.gem"].each do |gem_path|
12
+ command = "gem push #{gem_path}"
13
+ puts "Executing #{command.inspect}:"
14
+ sh command
72
15
  end
73
- else
74
- warn "rubyforge gem is required to generate releases, please install it (gem install rubyforge)."
75
16
  end