do_derby 0.10.0-java

Sign up to get free protection for your applications and to get access to all the features.
data/HISTORY.markdown ADDED
@@ -0,0 +1,6 @@
1
+ ## 0.10.0 2009-10-15
2
+
3
+ Initial release of Derby driver (using *do_jdbc*).
4
+
5
+ * Known Issues
6
+ * JRuby-only
data/LICENSE ADDED
@@ -0,0 +1,19 @@
1
+ Copyright (c) 2008-2009 Alex Coles, Ikonoklastik Productions
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining a copy
4
+ of this software and associated documentation files (the "Software"), to deal
5
+ in the Software without restriction, including without limitation the rights
6
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
+ copies of the Software, and to permit persons to whom the Software is
8
+ furnished to do so, subject to the following conditions:
9
+
10
+ The above copyright notice and this permission notice shall be included in
11
+ all copies or substantial portions of the Software.
12
+
13
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
+ THE SOFTWARE.
data/Manifest.txt ADDED
@@ -0,0 +1,16 @@
1
+ HISTORY.markdown
2
+ LICENSE
3
+ Manifest.txt
4
+ README.markdown
5
+ Rakefile
6
+ buildfile
7
+ ext-java/src/main/java/DoDerbyExtService.java
8
+ ext-java/src/main/java/do_derby/DerbyDriverDefinition.java
9
+ lib/do_derby.rb
10
+ lib/do_derby/version.rb
11
+ lib/do_derby_ext.jar
12
+ spec/integration/do_derby_spec.rb
13
+ spec/integration/logging_spec.rb
14
+ spec/spec.opts
15
+ spec/spec_helper.rb
16
+ spec/unit/do_derby_spec.rb
data/README.markdown ADDED
@@ -0,0 +1,4 @@
1
+ do_derby
2
+ ========
3
+
4
+ A Derby driver for DataObjects
data/Rakefile ADDED
@@ -0,0 +1,15 @@
1
+ require 'rubygems'
2
+ require 'rake'
3
+ require 'rake/clean'
4
+
5
+ require 'pathname'
6
+ require 'lib/do_derby/version'
7
+
8
+ ROOT = Pathname(__FILE__).dirname.expand_path
9
+ JRUBY = RUBY_PLATFORM =~ /java/
10
+ WINDOWS = Gem.win_platform?
11
+ SUDO = WINDOWS ? '' : ('sudo' unless ENV['SUDOLESS'])
12
+
13
+ Dir['tasks/*.rake'].sort.each { |f| import f }
14
+
15
+ CLEAN.include(%w[ {tmp,pkg}/ **/*.{o,so,bundle,jar,log,a,gem,dSYM,obj,pdb,exp,DS_Store,rbc,db} ext-java/target ])
@@ -0,0 +1,5 @@
1
+ module DataObjects
2
+ module Derby
3
+ VERSION = "0.10.0"
4
+ end
5
+ end
data/lib/do_derby.rb ADDED
@@ -0,0 +1,33 @@
1
+ require 'data_objects'
2
+
3
+ if RUBY_PLATFORM =~ /java/
4
+ require 'do_jdbc'
5
+ require 'java'
6
+
7
+ driver = 'org.apache.derby.jdbc.EmbeddedDriver'
8
+ begin
9
+ java.lang.Thread.currentThread.getContextClassLoader().loadClass(driver, true)
10
+ rescue
11
+ require 'jdbc/derby' # the JDBC driver, packaged as a gem
12
+ end
13
+
14
+ require 'do_derby_ext' # the Java extension for this DO driver
15
+
16
+ # Another way of loading the JDBC Class. This seems to be more reliable
17
+ # than Class.forName() within the data_objects.Connection Java class,
18
+ # which is currently not working as expected.
19
+ java_import driver
20
+
21
+ module DataObjects
22
+ module Derby
23
+ class Connection
24
+ def self.pool_size
25
+ 20
26
+ end
27
+ end
28
+ end
29
+ end
30
+
31
+ else
32
+ warn "do_derby is only for use with JRuby"
33
+ end
@@ -0,0 +1,9 @@
1
+ # encoding: utf-8
2
+
3
+ require File.expand_path(File.join(File.dirname(__FILE__), 'spec_helper'))
4
+ require 'data_objects/spec/command_spec'
5
+
6
+ describe DataObjects::Derby::Command do
7
+ it_should_behave_like 'a Command'
8
+ # it_should_behave_like 'a Command with async'
9
+ end
@@ -0,0 +1,19 @@
1
+ # encoding: utf-8
2
+
3
+ require File.expand_path(File.join(File.dirname(__FILE__), 'spec_helper'))
4
+ require 'data_objects/spec/connection_spec'
5
+
6
+ describe DataObjects::Derby::Connection do
7
+
8
+ before :all do
9
+ @driver = 'derby'
10
+ @user = ''
11
+ @password = ''
12
+ @host = ''
13
+ @port = ''
14
+ @database = "#{File.expand_path(File.dirname(__FILE__))}/test.db;create=true"
15
+ end
16
+
17
+ it_should_behave_like 'a Connection'
18
+ #it_should_behave_like 'a Connection with authentication support'
19
+ 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/encoding_spec'
5
+
6
+ describe DataObjects::Derby::Connection do
7
+ # it_should_behave_like 'a driver supporting encodings'
8
+ end
@@ -0,0 +1,3 @@
1
+ # encoding: utf-8
2
+
3
+ require File.expand_path(File.join(File.dirname(__FILE__), '..', '..', '..', 'data_objects', 'spec', 'lib', 'rspec_immediate_feedback_formatter'))
@@ -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/reader_spec'
5
+
6
+ describe DataObjects::Derby::Reader do
7
+ it_should_behave_like 'a Reader'
8
+ end
@@ -0,0 +1,16 @@
1
+ # encoding: utf-8
2
+
3
+ require File.expand_path(File.join(File.dirname(__FILE__), 'spec_helper'))
4
+ require 'data_objects/spec/result_spec'
5
+
6
+ # splitting the descibe into two separate declaration avoids
7
+ # concurrent execution of the "it_should_behave_like ....."
8
+ # needed by some databases (sqlite3)
9
+
10
+ describe DataObjects::Derby::Result do
11
+ it_should_behave_like 'a Result'
12
+ end
13
+
14
+ describe DataObjects::Derby::Result do
15
+ it_should_behave_like 'a Result which returns inserted keys'
16
+ end
@@ -0,0 +1,201 @@
1
+ $TESTING=true
2
+ JRUBY = true
3
+
4
+ require 'rubygems'
5
+
6
+ gem 'rspec', '>1.1.12'
7
+ require 'spec'
8
+
9
+ require 'date'
10
+ require 'ostruct'
11
+ require 'pathname'
12
+ require 'fileutils'
13
+
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'
26
+ end
27
+
28
+ 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 }
32
+
33
+ require 'do_derby'
34
+
35
+ log_path = File.expand_path(File.join(File.dirname(__FILE__), '..', 'log', 'do.log'))
36
+ FileUtils.mkdir_p(File.dirname(log_path))
37
+
38
+ DataObjects::Derby.logger = DataObjects::Logger.new(log_path, :debug)
39
+
40
+ at_exit { DataObjects.logger.flush }
41
+
42
+ Spec::Runner.configure do |config|
43
+ config.include(DataObjects::Spec::PendingHelpers)
44
+ end
45
+
46
+ CONFIG = OpenStruct.new
47
+ # CONFIG.scheme = 'derby'
48
+ # CONFIG.user = ENV['DO_DERBY_USER'] || 'derby'
49
+ # CONFIG.pass = ENV['DO_DERBY_PASS'] || ''
50
+ # CONFIG.host = ENV['DO_DERBY_HOST'] || ''
51
+ # CONFIG.port = ENV['DO_DERBY_PORT'] || ''
52
+ # CONFIG.database = ENV['DO_DERBY_DATABASE'] || "#{File.expand_path(File.dirname(__FILE__))}/testdb"
53
+
54
+ CONFIG.uri = ENV["DO_DERBY_SPEC_URI"] || "jdbc:derby:testdb;create=true"
55
+
56
+ module DataObjectsSpecHelpers
57
+
58
+ def setup_test_environment
59
+ conn = DataObjects::Connection.new(CONFIG.uri)
60
+
61
+ # Derby does not support DROP TABLE IF EXISTS
62
+ begin
63
+ conn.create_command(<<-EOF).execute_non_query
64
+ DROP TABLE invoices
65
+ EOF
66
+ rescue DerbyError
67
+ end
68
+
69
+ begin
70
+ conn.create_command(<<-EOF).execute_non_query
71
+ DROP TABLE users
72
+ EOF
73
+ rescue DerbyError
74
+ end
75
+
76
+ begin
77
+ conn.create_command(<<-EOF).execute_non_query
78
+ DROP TABLE widgets
79
+ EOF
80
+ rescue DerbyError
81
+ end
82
+
83
+ conn.create_command(<<-EOF).execute_non_query
84
+ CREATE TABLE users (
85
+ id INTEGER PRIMARY KEY GENERATED ALWAYS AS IDENTITY,
86
+ name VARCHAR(200) default 'Billy',
87
+ fired_at TIMESTAMP
88
+ )
89
+ EOF
90
+
91
+ conn.create_command(<<-EOF).execute_non_query
92
+ CREATE TABLE invoices (
93
+ id INTEGER PRIMARY KEY GENERATED ALWAYS AS IDENTITY,
94
+ invoice_number VARCHAR(50) NOT NULL
95
+ )
96
+ EOF
97
+
98
+ # FIXME:
99
+ # description, ad_description and whitepaper_text should be LONG VARCHAR and
100
+ # not VARCHAR(500). However, the specs are failing with the following error
101
+ # when the LONG VARCHAR type is used: Comparisons between 'LONG VARCHAR
102
+ # (UCS_BASIC)' and 'LONG VARCHAR (UCS_BASIC)' are not supported. Types must
103
+ # be comparable. String types must also have matching collation. If
104
+ # collation does not match, a possible solution is to cast operands to force
105
+ # them to the default collation (e.g. select tablename from sys.systables
106
+ # where CAST(tablename as VARCHAR(128)) = 'T1')
107
+ # Error Code: 30000
108
+ # SQL State: 42818
109
+ conn.create_command(<<-EOF).execute_non_query
110
+ CREATE TABLE widgets (
111
+ id INTEGER PRIMARY KEY GENERATED ALWAYS AS IDENTITY,
112
+ code CHAR(8) DEFAULT 'A14',
113
+ name VARCHAR(200) DEFAULT 'Super Widget',
114
+ shelf_location VARCHAR(50),
115
+ description VARCHAR(500),
116
+ image_data BLOB,
117
+ ad_description VARCHAR(500),
118
+ ad_image BLOB,
119
+ whitepaper_text VARCHAR(500),
120
+ cad_drawing BLOB,
121
+ flags SMALLINT DEFAULT 0,
122
+ number_in_stock SMALLINT DEFAULT 500,
123
+ number_sold INTEGER DEFAULT 0,
124
+ super_number BIGINT DEFAULT 9223372036854775807,
125
+ weight REAL DEFAULT 10.23,
126
+ cost1 DOUBLE DEFAULT 10.23,
127
+ cost2 DECIMAL(8,2) DEFAULT 50.23,
128
+ release_date DATE DEFAULT '2008-02-14',
129
+ release_datetime TIMESTAMP DEFAULT '2008-02-14 00:31:12',
130
+ release_timestamp TIMESTAMP DEFAULT '2008-02-14 00:31:31'
131
+ )
132
+ EOF
133
+
134
+ # XXX: Derby has no ENUM
135
+ # status` enum('active','out of stock') NOT NULL default 'active'
136
+
137
+ 1.upto(16) do |n|
138
+ conn.create_command(<<-EOF).execute_non_query
139
+ INSERT INTO widgets(
140
+ code,
141
+ name,
142
+ shelf_location,
143
+ description,
144
+ ad_description,
145
+ whitepaper_text,
146
+ super_number,
147
+ weight)
148
+ VALUES (
149
+ 'W#{n.to_s.rjust(7,"0")}',
150
+ 'Widget #{n}',
151
+ 'A14',
152
+ 'This is a description',
153
+ 'Buy this product now!',
154
+ 'String',
155
+ 1234,
156
+ 13.4)
157
+ EOF
158
+
159
+ # Removed
160
+ # image_data,
161
+ # ad_image,
162
+ # cad_drawing,
163
+ # XXX: figure out how to insert BLOBS
164
+
165
+ conn.create_command(<<-EOF).execute_non_query
166
+ update widgets set flags = 1 where id = 2
167
+ EOF
168
+
169
+ conn.create_command(<<-EOF).execute_non_query
170
+ update widgets set ad_description = NULL where id = 3
171
+ EOF
172
+
173
+ conn.create_command(<<-EOF).execute_non_query
174
+ update widgets set flags = NULL where id = 4
175
+ EOF
176
+
177
+ conn.create_command(<<-EOF).execute_non_query
178
+ update widgets set cost1 = NULL where id = 5
179
+ EOF
180
+
181
+ conn.create_command(<<-EOF).execute_non_query
182
+ update widgets set cost2 = NULL where id = 6
183
+ EOF
184
+
185
+ conn.create_command(<<-EOF).execute_non_query
186
+ update widgets set release_date = NULL where id = 7
187
+ EOF
188
+
189
+ conn.create_command(<<-EOF).execute_non_query
190
+ update widgets set release_datetime = NULL where id = 8
191
+ EOF
192
+
193
+ conn.create_command(<<-EOF).execute_non_query
194
+ update widgets set release_timestamp = NULL where id = 9
195
+ EOF
196
+
197
+ conn.close
198
+ end
199
+
200
+ end
201
+ 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/array_spec'
5
+
6
+ describe 'DataObjects::Derby with Array' do
7
+ it_should_behave_like 'supporting Array'
8
+ end
@@ -0,0 +1,9 @@
1
+ # encoding: utf-8
2
+
3
+ require File.expand_path(File.join(File.dirname(__FILE__), '..', 'spec_helper'))
4
+ require 'data_objects/spec/typecast/bigdecimal_spec'
5
+
6
+ describe 'DataObjects::Derby with BigDecimal' do
7
+ it_should_behave_like 'supporting BigDecimal'
8
+ it_should_behave_like 'supporting BigDecimal autocasting'
9
+ end
@@ -0,0 +1,10 @@
1
+ # encoding: utf-8
2
+
3
+ require File.expand_path(File.join(File.dirname(__FILE__), '..', 'spec_helper'))
4
+ require 'data_objects/spec/typecast/boolean_spec'
5
+
6
+ describe 'DataObjects::Derby with Boolean' do
7
+ it_should_behave_like 'supporting Boolean'
8
+ # TODO should we map smallint to boolean for derby ??
9
+ # it_should_behave_like 'supporting Boolean autocasting'
10
+ end
@@ -0,0 +1,9 @@
1
+ # encoding: utf-8
2
+
3
+ require File.expand_path(File.join(File.dirname(__FILE__), '..', 'spec_helper'))
4
+ require 'data_objects/spec/typecast/byte_array_spec'
5
+
6
+ describe 'DataObjects::Derby with ByteArray' do
7
+ # We need to switch to using parameter binding for this to work with Derby
8
+ # it_should_behave_like 'supporting ByteArray'
9
+ 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/class_spec'
5
+
6
+ describe 'DataObjects::Derby with Class' do
7
+ it_should_behave_like 'supporting Class'
8
+ end
@@ -0,0 +1,9 @@
1
+ # encoding: utf-8
2
+
3
+ require File.expand_path(File.join(File.dirname(__FILE__), '..', 'spec_helper'))
4
+ require 'data_objects/spec/typecast/date_spec'
5
+
6
+ describe 'DataObjects::Derby with Date' do
7
+ it_should_behave_like 'supporting Date'
8
+ it_should_behave_like 'supporting Date autocasting'
9
+ end
@@ -0,0 +1,9 @@
1
+ # encoding: utf-8
2
+
3
+ require File.expand_path(File.join(File.dirname(__FILE__), '..', 'spec_helper'))
4
+ require 'data_objects/spec/typecast/datetime_spec'
5
+
6
+ describe 'DataObjects::Derby with DateTime' do
7
+ it_should_behave_like 'supporting DateTime'
8
+ it_should_behave_like 'supporting DateTime autocasting'
9
+ end
@@ -0,0 +1,9 @@
1
+ # encoding: utf-8
2
+
3
+ require File.expand_path(File.join(File.dirname(__FILE__), '..', 'spec_helper'))
4
+ require 'data_objects/spec/typecast/float_spec'
5
+
6
+ describe 'DataObjects::Derby with Float' do
7
+ it_should_behave_like 'supporting Float'
8
+ it_should_behave_like 'supporting Float autocasting'
9
+ 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/integer_spec'
5
+
6
+ describe 'DataObjects::Derby with Integer' do
7
+ it_should_behave_like 'supporting Integer'
8
+ end
@@ -0,0 +1,10 @@
1
+ # encoding: utf-8
2
+
3
+ require File.expand_path(File.join(File.dirname(__FILE__), '..', 'spec_helper'))
4
+ require 'data_objects/spec/typecast/nil_spec'
5
+
6
+ describe 'DataObjects::Derby with Nil' do
7
+ it_should_behave_like 'supporting Nil'
8
+ it_should_behave_like 'supporting writing an Nil'
9
+ it_should_behave_like 'supporting Nil autocasting'
10
+ 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/range_spec'
5
+
6
+ describe 'DataObjects::Derby with Range' do
7
+ it_should_behave_like 'supporting Range'
8
+ 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/string_spec'
5
+
6
+ describe 'DataObjects::Derby with String' do
7
+ it_should_behave_like 'supporting String'
8
+ 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/time_spec'
5
+
6
+ describe 'DataObjects::Derby with Time' do
7
+ it_should_behave_like 'supporting Time'
8
+ end
data/tasks/gem.rake ADDED
@@ -0,0 +1,8 @@
1
+ require 'rubygems/package_task'
2
+
3
+ GEM_SPEC = eval(File.read('do_derby.gemspec'))
4
+
5
+ gem_package = Gem::PackageTask.new(GEM_SPEC) do |pkg|
6
+ pkg.need_tar = false
7
+ pkg.need_zip = false
8
+ end
@@ -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,4 @@
1
+ if (tasks_dir = ROOT.parent + 'tasks').directory?
2
+ require tasks_dir + 'ext_helper_java'
3
+ setup_java_extension("#{GEM_SPEC.name}_ext", GEM_SPEC)
4
+ 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 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."
72
+ end
73
+ else
74
+ warn "rubyforge gem is required to generate releases, please install it (gem install rubyforge)."
75
+ end
data/tasks/spec.rake ADDED
@@ -0,0 +1,19 @@
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
+ t.libs << 'lib'
9
+
10
+ begin
11
+ # RCov is run by default, except on the JRuby platform
12
+ t.rcov = JRUBY ? false : (ENV.has_key?('NO_RCOV') ? ENV['NO_RCOV'] != 'true' : true)
13
+ t.rcov_opts << '--exclude' << 'spec'
14
+ t.rcov_opts << '--text-summary'
15
+ t.rcov_opts << '--sort' << 'coverage' << '--sort-reverse'
16
+ rescue Exception
17
+ # rcov not installed
18
+ end
19
+ end
metadata ADDED
@@ -0,0 +1,145 @@
1
+ --- !ruby/object:Gem::Specification
2
+ extensions: []
3
+
4
+ homepage: http://github.com/datamapper/do
5
+ executables: []
6
+
7
+ version: !ruby/object:Gem::Version
8
+ version: 0.10.0
9
+ post_install_message:
10
+ date: 2009-09-16 00:00:00 Z
11
+ files:
12
+ - lib/do_derby.rb
13
+ - lib/do_derby/version.rb
14
+ - spec/command_spec.rb
15
+ - spec/connection_spec.rb
16
+ - spec/encoding_spec.rb
17
+ - spec/reader_spec.rb
18
+ - spec/result_spec.rb
19
+ - spec/spec_helper.rb
20
+ - spec/lib/rspec_immediate_feedback_formatter.rb
21
+ - spec/typecast/array_spec.rb
22
+ - spec/typecast/bigdecimal_spec.rb
23
+ - spec/typecast/boolean_spec.rb
24
+ - spec/typecast/byte_array_spec.rb
25
+ - spec/typecast/class_spec.rb
26
+ - spec/typecast/date_spec.rb
27
+ - spec/typecast/datetime_spec.rb
28
+ - spec/typecast/float_spec.rb
29
+ - spec/typecast/integer_spec.rb
30
+ - spec/typecast/nil_spec.rb
31
+ - spec/typecast/range_spec.rb
32
+ - spec/typecast/string_spec.rb
33
+ - spec/typecast/time_spec.rb
34
+ - tasks/gem.rake
35
+ - tasks/install.rake
36
+ - tasks/native.rake
37
+ - tasks/release.rake
38
+ - tasks/spec.rake
39
+ - LICENSE
40
+ - Rakefile
41
+ - HISTORY.markdown
42
+ - README.markdown
43
+ - Manifest.txt
44
+ rubygems_version: 1.3.4
45
+ rdoc_options: []
46
+
47
+ signing_key:
48
+ cert_chain: []
49
+
50
+ name: do_derby
51
+ has_rdoc: false
52
+ platform: java
53
+ summary: DataObjects Derby Driver
54
+ default_executable:
55
+ bindir: bin
56
+ licenses: []
57
+
58
+ required_rubygems_version: !ruby/object:Gem::Requirement
59
+ version:
60
+ requirements:
61
+ - - '>='
62
+ - !ruby/object:Gem::Version
63
+ version: "0"
64
+ required_ruby_version: !ruby/object:Gem::Requirement
65
+ version:
66
+ requirements:
67
+ - - '>='
68
+ - !ruby/object:Gem::Version
69
+ version: "0"
70
+ require_paths:
71
+ - lib
72
+ specification_version: 3
73
+ test_files: []
74
+
75
+ dependencies:
76
+ - !ruby/object:Gem::Dependency
77
+ type: :runtime
78
+ name: addressable
79
+ version_requirement:
80
+ version_requirements: !ruby/object:Gem::Requirement
81
+ version:
82
+ requirements:
83
+ - - ~>
84
+ - !ruby/object:Gem::Version
85
+ version: "2.0"
86
+ - !ruby/object:Gem::Dependency
87
+ type: :runtime
88
+ name: extlib
89
+ version_requirement:
90
+ version_requirements: !ruby/object:Gem::Requirement
91
+ version:
92
+ requirements:
93
+ - - ~>
94
+ - !ruby/object:Gem::Version
95
+ version: 0.9.12
96
+ - !ruby/object:Gem::Dependency
97
+ type: :runtime
98
+ name: data_objects
99
+ version_requirement:
100
+ version_requirements: !ruby/object:Gem::Requirement
101
+ version:
102
+ requirements:
103
+ - - "="
104
+ - !ruby/object:Gem::Version
105
+ version: 0.10.0
106
+ - !ruby/object:Gem::Dependency
107
+ type: :runtime
108
+ name: jdbc-derby
109
+ version_requirement:
110
+ version_requirements: !ruby/object:Gem::Requirement
111
+ version:
112
+ requirements:
113
+ - - ~>
114
+ - !ruby/object:Gem::Version
115
+ version: 10.4.2.0
116
+ - !ruby/object:Gem::Dependency
117
+ type: :runtime
118
+ name: do_jdbc
119
+ version_requirement:
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ version:
122
+ requirements:
123
+ - - "="
124
+ - !ruby/object:Gem::Version
125
+ version: 0.10.0
126
+ - !ruby/object:Gem::Dependency
127
+ type: :development
128
+ name: rspec
129
+ version_requirement:
130
+ version_requirements: !ruby/object:Gem::Requirement
131
+ version:
132
+ requirements:
133
+ - - ~>
134
+ - !ruby/object:Gem::Version
135
+ version: 1.2.0
136
+ description: Implements the DataObjects API for Derby
137
+ email: alex@alexcolesportfolio.com
138
+ authors:
139
+ - Alex Coles
140
+ extra_rdoc_files: []
141
+
142
+ requirements: []
143
+
144
+ rubyforge_project: dorb
145
+ autorequire: