do_mysql 0.10.0-java → 0.10.1-java

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 (43) hide show
  1. data/ChangeLog.markdown +27 -0
  2. data/LICENSE +1 -1
  3. data/README.markdown +104 -3
  4. data/Rakefile +56 -9
  5. data/ext/do_mysql/compat.h +55 -0
  6. data/ext/do_mysql/do_mysql.c +1065 -0
  7. data/ext/do_mysql/error.h +527 -0
  8. data/ext/do_mysql/extconf.rb +74 -0
  9. data/lib/do_mysql.rb +27 -11
  10. data/lib/do_mysql/do_mysql.jar +0 -0
  11. data/lib/do_mysql/version.rb +1 -1
  12. data/spec/command_spec.rb +2 -2
  13. data/spec/connection_spec.rb +16 -14
  14. data/spec/encoding_spec.rb +2 -1
  15. data/spec/reader_spec.rb +1 -1
  16. data/spec/result_spec.rb +3 -3
  17. data/spec/spec_helper.rb +21 -31
  18. data/spec/typecast/array_spec.rb +1 -1
  19. data/spec/typecast/bigdecimal_spec.rb +2 -2
  20. data/spec/typecast/boolean_spec.rb +2 -2
  21. data/spec/typecast/byte_array_spec.rb +1 -1
  22. data/spec/typecast/class_spec.rb +1 -1
  23. data/spec/typecast/date_spec.rb +2 -2
  24. data/spec/typecast/datetime_spec.rb +2 -2
  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 +3 -3
  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 +65 -0
  33. data/tasks/release.rake +12 -71
  34. data/tasks/retrieve.rake +1 -1
  35. data/tasks/spec.rake +19 -15
  36. metadata +119 -107
  37. data/HISTORY.markdown +0 -17
  38. data/Manifest.txt +0 -32
  39. data/lib/do_mysql_ext.jar +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 -31
@@ -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::Mysql 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::Mysql with Time' do
7
- it_should_behave_like 'supporting Time'
7
+ behaves_like 'supporting Time'
8
8
  end
@@ -0,0 +1,65 @@
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_mysql', gemspec) do |ext|
14
+ ext.lib_dir = "lib/#{gemspec.name}"
15
+ mysql_lib = File.expand_path(File.join(File.dirname(__FILE__), '..', 'vendor', "mysql-#{BINARY_VERSION}-win32"))
16
+
17
+ # automatically add build options to avoid need of manual input
18
+ if RUBY_PLATFORM =~ /mswin|mingw/ then
19
+ ext.config_options << "--with-mysql-include=#{mysql_lib}/include"
20
+ ext.config_options << "--with-mysql-lib=#{mysql_lib}/lib/opt"
21
+ else
22
+ ext.cross_compile = true
23
+ ext.cross_platform = ['x86-mingw32', 'x86-mswin32-60']
24
+ ext.cross_config_options << "--with-mysql-include=#{mysql_lib}/include"
25
+ ext.cross_config_options << "--with-mysql-lib=#{mysql_lib}/lib/opt"
26
+
27
+ ext.cross_compiling do |gemspec|
28
+ gemspec.post_install_message = <<-POST_INSTALL_MESSAGE
29
+
30
+ ======================================================================================================
31
+
32
+ You've installed the binary version of #{gemspec.name}.
33
+ It was built using MySQL version #{BINARY_VERSION}.
34
+ It's recommended to use the exact same version to avoid potential issues.
35
+
36
+ At the time of building this gem, the necessary DLL files where available
37
+ in the following download:
38
+
39
+ http://dev.mysql.com/get/Downloads/MySQL-5.0/mysql-noinstall-#{BINARY_VERSION}-win32.zip/from/pick
40
+
41
+ You can put the lib\\opt\\libmysql.dll available in this package in your Ruby bin
42
+ directory, for example C:\\Ruby\\bin
43
+
44
+ ======================================================================================================
45
+
46
+ POST_INSTALL_MESSAGE
47
+ end
48
+
49
+ end
50
+
51
+ end
52
+
53
+ Rake::JavaExtensionTask.new('do_mysql', gemspec) do |ext|
54
+ ext.lib_dir = "lib/#{gemspec.name}"
55
+ ext.ext_dir = 'ext-java/src/main/java'
56
+ ext.debug = ENV.has_key?('DO_JAVA_DEBUG') && ENV['DO_JAVA_DEBUG']
57
+ ext.classpath = '../do_jdbc/lib/do_jdbc_internal.jar'
58
+ ext.java_compiling do |gem|
59
+ gem.add_dependency 'jdbc-mysql', '>=5.0.4'
60
+ gem.add_dependency 'do_jdbc', '0.10.1'
61
+ end
62
+ end
63
+ rescue LoadError
64
+ warn "To compile, install rake-compiler (gem install rake-compiler)"
65
+ end
data/tasks/release.rake CHANGED
@@ -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_mysql-#{DataObjects::Mysql::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
data/tasks/retrieve.rake CHANGED
@@ -1,5 +1,5 @@
1
1
  begin
2
- gem('rake-compiler')
2
+ gem 'rake-compiler', '~>0.7'
3
3
  require 'rake/clean'
4
4
  require 'rake/extensioncompiler'
5
5
 
data/tasks/spec.rake CHANGED
@@ -1,19 +1,23 @@
1
- # Specs
2
- require 'spec/rake/spectask'
1
+ require 'rake/testtask'
3
2
 
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'
3
+ spec_defaults = lambda do |spec|
4
+ spec.libs << 'lib' << 'spec'
5
+ spec.pattern = 'spec/**/*_spec.rb'
6
+ spec.verbose = true
7
+ end
8
+
9
+ Rake::TestTask.new(:spec => [ :clean, :compile ], &spec_defaults)
10
+ Rake::TestTask.new(:spec_no_compile, &spec_defaults)
9
11
 
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
12
+ begin
13
+ require 'rcov/rcovtask'
14
+ Rcov::RcovTask.new do |spec|
15
+ spec.libs << 'spec'
16
+ spec.pattern = 'spec/**/*_spec.rb'
17
+ spec.verbose = true
18
+ end
19
+ rescue LoadError
20
+ task :rcov do
21
+ abort 'RCov is not available. In order to run rcov, you must: gem install rcov'
18
22
  end
19
23
  end
metadata CHANGED
@@ -1,43 +1,88 @@
1
1
  --- !ruby/object:Gem::Specification
2
- required_ruby_version: !ruby/object:Gem::Requirement
3
- requirements:
4
- - - '>='
5
- - !ruby/object:Gem::Version
6
- version: "0"
7
- version:
8
- email: d.bussink@gmail.com
9
- cert_chain: []
10
-
11
- summary: DataObjects MySQL Driver
12
- post_install_message:
13
- extra_rdoc_files: []
14
-
15
- homepage: http://github.com/datamapper/do
16
- signing_key:
17
2
  name: do_mysql
18
- rdoc_options: []
19
-
20
- rubyforge_project: dorb
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.10.1
5
+ platform: java
6
+ authors:
7
+ - Dirkjan Bussink
21
8
  autorequire:
22
- licenses: []
9
+ bindir: bin
10
+ cert_chain: []
23
11
 
12
+ date: 2010-01-09 00:00:00 +01:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: data_objects
17
+ type: :runtime
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - "="
22
+ - !ruby/object:Gem::Version
23
+ version: 0.10.1
24
+ version:
25
+ - !ruby/object:Gem::Dependency
26
+ name: bacon
27
+ type: :development
28
+ version_requirement:
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ~>
32
+ - !ruby/object:Gem::Version
33
+ version: "1.1"
34
+ version:
35
+ - !ruby/object:Gem::Dependency
36
+ name: rake-compiler
37
+ type: :development
38
+ version_requirement:
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - ~>
42
+ - !ruby/object:Gem::Version
43
+ version: "0.7"
44
+ version:
45
+ - !ruby/object:Gem::Dependency
46
+ name: jdbc-mysql
47
+ type: :runtime
48
+ version_requirement:
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: 5.0.4
54
+ version:
55
+ - !ruby/object:Gem::Dependency
56
+ name: do_jdbc
57
+ type: :runtime
58
+ version_requirement:
59
+ version_requirements: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - "="
62
+ - !ruby/object:Gem::Version
63
+ version: 0.10.1
64
+ version:
65
+ description: Implements the DataObjects API for MySQL
66
+ email: d.bussink@gmail.com
24
67
  executables: []
25
68
 
26
- description: Implements the DataObjects API for MySQL
27
- specification_version: 3
28
- default_executable:
69
+ extensions: []
70
+
71
+ extra_rdoc_files:
72
+ - README.markdown
73
+ - ChangeLog.markdown
74
+ - LICENSE
29
75
  files:
30
- - lib/do_mysql.rb
31
76
  - lib/do_mysql/encoding.rb
32
77
  - lib/do_mysql/transaction.rb
33
78
  - lib/do_mysql/version.rb
79
+ - lib/do_mysql.rb
34
80
  - spec/command_spec.rb
35
81
  - spec/connection_spec.rb
36
82
  - spec/encoding_spec.rb
37
83
  - spec/reader_spec.rb
38
84
  - spec/result_spec.rb
39
85
  - spec/spec_helper.rb
40
- - spec/lib/rspec_immediate_feedback_formatter.rb
41
86
  - spec/typecast/array_spec.rb
42
87
  - spec/typecast/bigdecimal_spec.rb
43
88
  - spec/typecast/boolean_spec.rb
@@ -48,103 +93,70 @@ files:
48
93
  - spec/typecast/float_spec.rb
49
94
  - spec/typecast/integer_spec.rb
50
95
  - spec/typecast/nil_spec.rb
96
+ - spec/typecast/other_spec.rb
51
97
  - spec/typecast/range_spec.rb
52
98
  - spec/typecast/string_spec.rb
53
99
  - spec/typecast/time_spec.rb
54
- - tasks/gem.rake
55
- - tasks/install.rake
56
- - tasks/native.rake
100
+ - tasks/compile.rake
57
101
  - tasks/release.rake
58
102
  - tasks/retrieve.rake
59
103
  - tasks/spec.rake
60
104
  - tasks/ssl.rake
105
+ - ext/do_mysql/extconf.rb
106
+ - ext/do_mysql/do_mysql.c
107
+ - ext/do_mysql/compat.h
108
+ - ext/do_mysql/error.h
61
109
  - LICENSE
62
110
  - Rakefile
63
- - HISTORY.markdown
111
+ - ChangeLog.markdown
64
112
  - README.markdown
65
- - Manifest.txt
66
- - lib/do_mysql_ext.jar
113
+ - lib/do_mysql/do_mysql.jar
114
+ has_rdoc: false
115
+ homepage:
116
+ licenses: []
117
+
118
+ post_install_message:
119
+ rdoc_options:
120
+ - --charset=UTF-8
121
+ require_paths:
122
+ - lib
123
+ required_ruby_version: !ruby/object:Gem::Requirement
124
+ requirements:
125
+ - - ">="
126
+ - !ruby/object:Gem::Version
127
+ version: "0"
128
+ version:
67
129
  required_rubygems_version: !ruby/object:Gem::Requirement
68
130
  requirements:
69
- - - '>='
131
+ - - ">="
70
132
  - !ruby/object:Gem::Version
71
133
  version: "0"
72
134
  version:
73
- extensions: []
74
-
75
- rubygems_version: 1.3.3
76
135
  requirements: []
77
136
 
78
- authors:
79
- - Dirkjan Bussink
80
- date: 2009-09-19 22:00:00 +00:00
81
- platform: java
82
- test_files: []
83
-
84
- version: !ruby/object:Gem::Version
85
- version: 0.10.0
86
- require_paths:
87
- - lib
88
- dependencies:
89
- - !ruby/object:Gem::Dependency
90
- version_requirements: !ruby/object:Gem::Requirement
91
- requirements:
92
- - - ~>
93
- - !ruby/object:Gem::Version
94
- version: "2.0"
95
- version:
96
- type: :runtime
97
- version_requirement:
98
- name: addressable
99
- - !ruby/object:Gem::Dependency
100
- version_requirements: !ruby/object:Gem::Requirement
101
- requirements:
102
- - - ~>
103
- - !ruby/object:Gem::Version
104
- version: 0.9.12
105
- version:
106
- type: :runtime
107
- version_requirement:
108
- name: extlib
109
- - !ruby/object:Gem::Dependency
110
- version_requirements: !ruby/object:Gem::Requirement
111
- requirements:
112
- - - "="
113
- - !ruby/object:Gem::Version
114
- version: 0.10.0
115
- version:
116
- type: :runtime
117
- version_requirement:
118
- name: data_objects
119
- - !ruby/object:Gem::Dependency
120
- version_requirements: !ruby/object:Gem::Requirement
121
- requirements:
122
- - - '>='
123
- - !ruby/object:Gem::Version
124
- version: 5.0.4
125
- version:
126
- type: :runtime
127
- version_requirement:
128
- name: jdbc-mysql
129
- - !ruby/object:Gem::Dependency
130
- version_requirements: !ruby/object:Gem::Requirement
131
- requirements:
132
- - - "="
133
- - !ruby/object:Gem::Version
134
- version: 0.10.0
135
- version:
136
- type: :runtime
137
- version_requirement:
138
- name: do_jdbc
139
- - !ruby/object:Gem::Dependency
140
- version_requirements: !ruby/object:Gem::Requirement
141
- requirements:
142
- - - ~>
143
- - !ruby/object:Gem::Version
144
- version: 1.2.0
145
- version:
146
- type: :development
147
- version_requirement:
148
- name: rspec
149
- bindir: bin
150
- has_rdoc: true
137
+ rubyforge_project: dorb
138
+ rubygems_version: 1.3.5
139
+ signing_key:
140
+ specification_version: 3
141
+ summary: DataObjects MySQL Driver
142
+ test_files:
143
+ - spec/command_spec.rb
144
+ - spec/connection_spec.rb
145
+ - spec/encoding_spec.rb
146
+ - spec/reader_spec.rb
147
+ - spec/result_spec.rb
148
+ - spec/spec_helper.rb
149
+ - spec/typecast/array_spec.rb
150
+ - spec/typecast/bigdecimal_spec.rb
151
+ - spec/typecast/boolean_spec.rb
152
+ - spec/typecast/byte_array_spec.rb
153
+ - spec/typecast/class_spec.rb
154
+ - spec/typecast/date_spec.rb
155
+ - spec/typecast/datetime_spec.rb
156
+ - spec/typecast/float_spec.rb
157
+ - spec/typecast/integer_spec.rb
158
+ - spec/typecast/nil_spec.rb
159
+ - spec/typecast/other_spec.rb
160
+ - spec/typecast/range_spec.rb
161
+ - spec/typecast/string_spec.rb
162
+ - spec/typecast/time_spec.rb