do_postgres 0.10.0 → 0.10.1

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 (42) hide show
  1. data/ChangeLog.markdown +22 -0
  2. data/LICENSE +1 -1
  3. data/README.markdown +106 -3
  4. data/Rakefile +56 -9
  5. data/ext/do_postgres/compat.h +55 -0
  6. data/ext/{do_postgres_ext/do_postgres_ext.c → do_postgres/do_postgres.c} +42 -49
  7. data/ext/{do_postgres_ext → do_postgres}/error.h +0 -0
  8. data/ext/{do_postgres_ext → do_postgres}/extconf.rb +4 -3
  9. data/ext/{do_postgres_ext → do_postgres}/pg_config.h +0 -0
  10. data/lib/do_postgres.rb +12 -16
  11. data/lib/do_postgres/version.rb +1 -1
  12. data/spec/command_spec.rb +2 -2
  13. data/spec/connection_spec.rb +22 -7
  14. data/spec/encoding_spec.rb +2 -1
  15. data/spec/reader_spec.rb +1 -1
  16. data/spec/result_spec.rb +12 -13
  17. data/spec/spec_helper.rb +27 -36
  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 +81 -0
  33. data/tasks/release.rake +12 -71
  34. data/tasks/retrieve.rake +5 -9
  35. data/tasks/spec.rake +19 -15
  36. metadata +51 -42
  37. data/HISTORY.markdown +0 -12
  38. data/Manifest.txt +0 -34
  39. data/spec/lib/rspec_immediate_feedback_formatter.rb +0 -3
  40. data/tasks/gem.rake +0 -8
  41. data/tasks/install.rake +0 -15
  42. data/tasks/native.rake +0 -35
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_postgres-#{DataObjects::Postgres::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
 
@@ -29,14 +29,10 @@ begin
29
29
  end
30
30
 
31
31
  def copy(from, to)
32
- if WINDOWS
33
- from.gsub!(/\//, '\\')
34
- to.gsub!(/\//, '\\')
35
- end
36
- sh "#{WINDOWS ? 'copy' : 'cp'} #{from} #{to}"
32
+ FileUtils.cp(from, to)
37
33
  end
38
34
 
39
- version = '8.3.7'
35
+ version = BINARY_VERSION
40
36
  file "vendor/postgresql-#{version}-1-binaries-no-installer.zip" => ['vendor'] do |t|
41
37
  url = "http://wwwmaster.postgresql.org/redir/107/h/binary/v#{version}/win32/#{File.basename(t.name)}"
42
38
  when_writing "downloading #{t.name}" do
@@ -52,8 +48,8 @@ begin
52
48
  cd "vendor" do
53
49
  sh "unzip #{full_file} pgsql/bin/** pgsql/include/** pgsql/lib/**"
54
50
  end
55
- copy "ext/do_postgres_ext/pg_config.h", "vendor/pgsql/include/pg_config.h"
56
- copy "ext/do_postgres_ext/pg_config.h", "vendor/pgsql/include/server/pg_config.h"
51
+ copy "ext/do_postgres/pg_config.h", "vendor/pgsql/include/pg_config.h"
52
+ copy "ext/do_postgres/pg_config.h", "vendor/pgsql/include/server/pg_config.h"
57
53
 
58
54
  # update file timestamp to avoid Rake perform this extraction again.
59
55
  touch t.name
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,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: do_postgres
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.10.0
4
+ version: 0.10.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dirkjan Bussink
@@ -9,66 +9,66 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-09-15 00:00:00 -07:00
12
+ date: 2010-01-09 00:00:00 +01:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
- name: addressable
16
+ name: data_objects
17
17
  type: :runtime
18
18
  version_requirement:
19
19
  version_requirements: !ruby/object:Gem::Requirement
20
20
  requirements:
21
- - - ~>
21
+ - - "="
22
22
  - !ruby/object:Gem::Version
23
- version: "2.0"
23
+ version: 0.10.1
24
24
  version:
25
25
  - !ruby/object:Gem::Dependency
26
- name: extlib
27
- type: :runtime
26
+ name: bacon
27
+ type: :development
28
28
  version_requirement:
29
29
  version_requirements: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - ~>
32
32
  - !ruby/object:Gem::Version
33
- version: 0.9.12
33
+ version: "1.1"
34
34
  version:
35
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.10.0
44
- version:
45
- - !ruby/object:Gem::Dependency
46
- name: rspec
36
+ name: rake-compiler
47
37
  type: :development
48
38
  version_requirement:
49
39
  version_requirements: !ruby/object:Gem::Requirement
50
40
  requirements:
51
41
  - - ~>
52
42
  - !ruby/object:Gem::Version
53
- version: 1.2.0
43
+ version: "0.7"
54
44
  version:
55
45
  description: Implements the DataObjects API for PostgreSQL
56
46
  email: d.bussink@gmail.com
57
47
  executables: []
58
48
 
59
49
  extensions:
60
- - ext/do_postgres_ext/extconf.rb
61
- extra_rdoc_files: []
62
-
50
+ - ext/do_postgres/extconf.rb
51
+ extra_rdoc_files:
52
+ - ChangeLog.markdown
53
+ - LICENSE
54
+ - README.markdown
63
55
  files:
56
+ - ChangeLog.markdown
57
+ - LICENSE
58
+ - README.markdown
59
+ - Rakefile
60
+ - ext/do_postgres/compat.h
61
+ - ext/do_postgres/do_postgres.c
62
+ - ext/do_postgres/error.h
63
+ - ext/do_postgres/extconf.rb
64
+ - ext/do_postgres/pg_config.h
65
+ - lib/do_postgres.rb
64
66
  - lib/do_postgres/encoding.rb
65
67
  - lib/do_postgres/transaction.rb
66
68
  - lib/do_postgres/version.rb
67
- - lib/do_postgres.rb
68
69
  - spec/command_spec.rb
69
70
  - spec/connection_spec.rb
70
71
  - spec/encoding_spec.rb
71
- - spec/lib/rspec_immediate_feedback_formatter.rb
72
72
  - spec/reader_spec.rb
73
73
  - spec/result_spec.rb
74
74
  - spec/spec_helper.rb
@@ -82,31 +82,21 @@ files:
82
82
  - spec/typecast/float_spec.rb
83
83
  - spec/typecast/integer_spec.rb
84
84
  - spec/typecast/nil_spec.rb
85
+ - spec/typecast/other_spec.rb
85
86
  - spec/typecast/range_spec.rb
86
87
  - spec/typecast/string_spec.rb
87
88
  - spec/typecast/time_spec.rb
88
- - tasks/gem.rake
89
- - tasks/install.rake
90
- - tasks/native.rake
89
+ - tasks/compile.rake
91
90
  - tasks/release.rake
92
91
  - tasks/retrieve.rake
93
92
  - tasks/spec.rake
94
- - ext/do_postgres_ext/extconf.rb
95
- - ext/do_postgres_ext/do_postgres_ext.c
96
- - ext/do_postgres_ext/error.h
97
- - ext/do_postgres_ext/pg_config.h
98
- - LICENSE
99
- - Rakefile
100
- - HISTORY.markdown
101
- - README.markdown
102
- - Manifest.txt
103
93
  has_rdoc: false
104
- homepage: http://github.com/datamapper/do
94
+ homepage:
105
95
  licenses: []
106
96
 
107
97
  post_install_message:
108
- rdoc_options: []
109
-
98
+ rdoc_options:
99
+ - --charset=UTF-8
110
100
  require_paths:
111
101
  - lib
112
102
  required_ruby_version: !ruby/object:Gem::Requirement
@@ -128,5 +118,24 @@ rubygems_version: 1.3.5
128
118
  signing_key:
129
119
  specification_version: 3
130
120
  summary: DataObjects PostgreSQL Driver
131
- test_files: []
132
-
121
+ test_files:
122
+ - spec/command_spec.rb
123
+ - spec/connection_spec.rb
124
+ - spec/encoding_spec.rb
125
+ - spec/reader_spec.rb
126
+ - spec/result_spec.rb
127
+ - spec/spec_helper.rb
128
+ - spec/typecast/array_spec.rb
129
+ - spec/typecast/bigdecimal_spec.rb
130
+ - spec/typecast/boolean_spec.rb
131
+ - spec/typecast/byte_array_spec.rb
132
+ - spec/typecast/class_spec.rb
133
+ - spec/typecast/date_spec.rb
134
+ - spec/typecast/datetime_spec.rb
135
+ - spec/typecast/float_spec.rb
136
+ - spec/typecast/integer_spec.rb
137
+ - spec/typecast/nil_spec.rb
138
+ - spec/typecast/other_spec.rb
139
+ - spec/typecast/range_spec.rb
140
+ - spec/typecast/string_spec.rb
141
+ - spec/typecast/time_spec.rb
data/HISTORY.markdown DELETED
@@ -1,12 +0,0 @@
1
- ## 0.9.12 2009-05-17
2
- * Improvements
3
- * Windows support
4
-
5
- ## 0.9.11 2009-01-19
6
- * Improvements
7
- * Ruby 1.9 support
8
- * Fixes
9
- * Fix build issue on certain platforms introduces with 0.9.10
10
-
11
- ## 0.9.9 2008-11-27
12
- * No changes since 0.9.8
data/Manifest.txt DELETED
@@ -1,34 +0,0 @@
1
- .gitignore
2
- HISTORY.markdown
3
- LICENSE
4
- Manifest.txt
5
- README.markdown
6
- Rakefile
7
- autobuild.rb
8
- buildfile
9
- ext-java/src/main/java/DoPostgresExtService.java
10
- ext-java/src/main/java/do_postgres/PostgresDriverDefinition.java
11
- ext/do_postgres_ext/do_postgres_ext.c
12
- ext/do_postgres_ext/extconf.rb
13
- lib/do_postgres.rb
14
- lib/do_postgres/transaction.rb
15
- lib/do_postgres/version.rb
16
- script/timezone_spec_runner.rb
17
- script/timezones.txt
18
- spec/command_spec.rb
19
- spec/connection_spec.rb
20
- spec/reader_spec.rb
21
- spec/result_spec.rb
22
- spec/spec.opts
23
- spec/spec_helper.rb
24
- spec/typecast/bigdecimal_spec.rb
25
- spec/typecast/boolean_spec.rb
26
- spec/typecast/byte_array_spec.rb
27
- spec/typecast/class_spec.rb
28
- spec/typecast/date_spec.rb
29
- spec/typecast/datetime_spec.rb
30
- spec/typecast/float_spec.rb
31
- spec/typecast/integer_spec.rb
32
- spec/typecast/nil_spec.rb
33
- spec/typecast/string_spec.rb
34
- spec/typecast/time_spec.rb
@@ -1,3 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require File.expand_path(File.join(File.dirname(__FILE__), '..', '..', '..', 'data_objects', 'spec', 'lib', 'rspec_immediate_feedback_formatter'))
data/tasks/gem.rake DELETED
@@ -1,8 +0,0 @@
1
- require 'rubygems/package_task'
2
-
3
- GEM_SPEC = eval(File.read('do_postgres.gemspec'))
4
-
5
- gem_package = Gem::PackageTask.new(GEM_SPEC) do |pkg|
6
- pkg.need_tar = false
7
- pkg.need_zip = false
8
- end
data/tasks/install.rake DELETED
@@ -1,15 +0,0 @@
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 DELETED
@@ -1,35 +0,0 @@
1
- begin
2
- gem('rake-compiler')
3
- require 'rake/extensiontask'
4
-
5
- Rake::ExtensionTask.new('do_postgres_ext', GEM_SPEC) do |ext|
6
-
7
- postgres_lib = File.expand_path(File.join(File.dirname(__FILE__), '..', 'vendor', 'pgsql'))
8
-
9
- # automatically add build options to avoid need of manual input
10
- if RUBY_PLATFORM =~ /mswin|mingw/ then
11
- ext.config_options << "--with-pgsql-server-include=#{postgres_lib}/include/server"
12
- ext.config_options << "--with-pgsql-client-include=#{postgres_lib}/include"
13
- ext.config_options << "--with-pgsql-win32-include=#{postgres_lib}/include/server/port/win32"
14
- ext.config_options << "--with-pgsql-client-lib=#{postgres_lib}/lib"
15
- else
16
- ext.cross_compile = true
17
- ext.cross_platform = ['x86-mingw32', 'x86-mswin32-60']
18
- ext.cross_config_options << "--with-pgsql-server-include=#{postgres_lib}/include/server"
19
- ext.cross_config_options << "--with-pgsql-client-include=#{postgres_lib}/include"
20
- ext.cross_config_options << "--with-pgsql-win32-include=#{postgres_lib}/include/server/port/win32"
21
- ext.cross_config_options << "--with-pgsql-client-lib=#{postgres_lib}/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