do_mysql 0.10.0-java → 0.10.1-java

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 +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