do_oracle 0.10.1-x86-mingw32

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.
@@ -0,0 +1,85 @@
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::Oracle with Time' do
7
+ behaves_like 'supporting Time'
8
+ end
9
+
10
+ describe 'DataObjects::Oracle with Time' do
11
+
12
+ setup_test_environment
13
+
14
+ before do
15
+ @connection = DataObjects::Connection.new(CONFIG.uri)
16
+ end
17
+
18
+ after do
19
+ @connection.close
20
+ end
21
+
22
+ describe 'reading a Time' do
23
+
24
+ describe 'with automatic typecasting' do
25
+
26
+ before do
27
+ @reader = @connection.create_command("SELECT release_datetime FROM widgets WHERE ad_description = ?").execute_reader('Buy this product now!')
28
+ @reader.next!
29
+ @values = @reader.values
30
+ end
31
+
32
+ after do
33
+ @reader.close
34
+ end
35
+
36
+ it 'should return the correctly typed result' do
37
+ @values.first.should.be.kind_of(Time)
38
+ end
39
+
40
+ it 'should return the correct result' do
41
+ @values.first.should == Time.local(2008, 2, 14, 00, 31, 12)
42
+ end
43
+
44
+ end
45
+
46
+ end
47
+
48
+ end
49
+
50
+ describe 'DataObjects::Oracle session time zone' do
51
+
52
+ after do
53
+ @connection.close
54
+ end
55
+
56
+ describe 'set from environment' do
57
+
58
+ before do
59
+ pending "set TZ environment shell variable before running this test" unless ENV['TZ']
60
+ @connection = DataObjects::Connection.new(CONFIG.uri)
61
+ end
62
+
63
+ it "should have time zone from environment" do
64
+ @reader = @connection.create_command("SELECT sessiontimezone FROM dual").execute_reader
65
+ @reader.next!
66
+ @reader.values.first.should == ENV['TZ']
67
+ end
68
+
69
+ end
70
+
71
+ describe "set with connection string option" do
72
+
73
+ before do
74
+ @connection = DataObjects::Connection.new(CONFIG.uri+"?time_zone=CET")
75
+ end
76
+
77
+ it "should have time zone from connection option" do
78
+ @reader = @connection.create_command("SELECT sessiontimezone FROM dual").execute_reader
79
+ @reader.next!
80
+ @reader.values.first.should == 'CET'
81
+ end
82
+
83
+ end
84
+
85
+ end
@@ -0,0 +1,42 @@
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_oracle', gemspec) do |ext|
14
+
15
+ ext.lib_dir = "lib/#{gemspec.name}"
16
+
17
+ # automatically add build options to avoid need of manual input
18
+ if RUBY_PLATFORM =~ /mswin|mingw/ then
19
+ else
20
+ ext.cross_compile = true
21
+ ext.cross_platform = ['x86-mingw32', 'x86-mswin32-60']
22
+ end
23
+
24
+ end
25
+
26
+ Rake::JavaExtensionTask.new('do_oracle', gemspec) do |ext|
27
+ ext.lib_dir = "lib/#{gemspec.name}"
28
+ ext.ext_dir = 'ext-java/src/main/java'
29
+ ext.debug = ENV.has_key?('DO_JAVA_DEBUG') && ENV['DO_JAVA_DEBUG']
30
+ ext.classpath = '../do_jdbc/lib/do_jdbc_internal.jar'
31
+ ext.java_compiling do |gem|
32
+
33
+ # Hack: Unfortunately there is no way to remove a dependency in the
34
+ # Gem::Specification API.
35
+ gem.dependencies.delete_if { |d| d.name == 'ruby-oci8'}
36
+
37
+ gem.add_dependency "do_jdbc", '0.10.1'
38
+ end
39
+ end
40
+ rescue LoadError
41
+ warn "To compile, install rake-compiler (gem install rake-compiler)"
42
+ end
@@ -0,0 +1,16 @@
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`
7
+ end
8
+
9
+ desc 'Release all gems (native, binaries for JRuby and Windows)'
10
+ task :release_all => :build_all do
11
+ Dir["pkg/do_oracle-#{DataObjects::Oracle::VERSION}*.gem"].each do |gem_path|
12
+ command = "gem push #{gem_path}"
13
+ puts "Executing #{command.inspect}:"
14
+ sh command
15
+ end
16
+ end
@@ -0,0 +1,67 @@
1
+ begin
2
+ gem 'rake-compiler', '~>0.7'
3
+ require 'rake/clean'
4
+ require 'rake/extensioncompiler'
5
+
6
+ # download mysql library and headers
7
+ directory "vendor"
8
+
9
+ # only on Windows or cross platform compilation
10
+ def dlltool(dllname, deffile, libfile)
11
+ # define if we are using GCC or not
12
+ if Rake::ExtensionCompiler.mingw_gcc_executable then
13
+ dir = File.dirname(Rake::ExtensionCompiler.mingw_gcc_executable)
14
+ tool = case RUBY_PLATFORM
15
+ when /mingw/
16
+ File.join(dir, 'dlltool.exe')
17
+ when /linux|darwin/
18
+ File.join(dir, "#{Rake::ExtensionCompiler.mingw_host}-dlltool")
19
+ end
20
+ return "#{tool} --dllname #{dllname} --def #{deffile} --output-lib #{libfile}"
21
+ else
22
+ if RUBY_PLATFORM =~ /mswin/ then
23
+ tool = 'lib.exe'
24
+ else
25
+ fail "Unsupported platform for cross-compilation (please, contribute some patches)."
26
+ end
27
+ return "#{tool} /DEF:#{deffile} /OUT:#{libfile}"
28
+ end
29
+ end
30
+
31
+ # file "vendor/mysql-noinstall-#{BINARY_VERSION}-win32.zip" => ['vendor'] do |t|
32
+ # base_version = BINARY_VERSION.gsub(/\.[0-9]+$/, '')
33
+ # url = "http://mysql.proserve.nl/Downloads/MySQL-#{base_version}/#{File.basename(t.name)}"
34
+ # when_writing "downloading #{t.name}" do
35
+ # cd File.dirname(t.name) do
36
+ # sh "wget -c #{url} || curl -C - -O #{url}"
37
+ # end
38
+ # end
39
+ # end
40
+ #
41
+ # file "vendor/mysql-#{BINARY_VERSION}-win32/include/mysql.h" => ["vendor/mysql-noinstall-#{BINARY_VERSION}-win32.zip"] do |t|
42
+ # full_file = File.expand_path(t.prerequisites.last)
43
+ # when_writing "creating #{t.name}" do
44
+ # cd "vendor" do
45
+ # sh "unzip #{full_file} mysql-#{BINARY_VERSION}-win32/bin/** mysql-#{BINARY_VERSION}-win32/include/** mysql-#{BINARY_VERSION}-win32/lib/**"
46
+ # end
47
+ # # update file timestamp to avoid Rake perform this extraction again.
48
+ # touch t.name
49
+ # end
50
+ # end
51
+
52
+ # # clobber vendored packages
53
+ # CLOBBER.include('vendor')
54
+
55
+ # # vendor:mysql
56
+ # task 'vendor:mysql' => ["vendor/mysql-#{BINARY_VERSION}-win32/include/mysql.h"]
57
+ #
58
+ # # hook into cross compilation vendored mysql dependency
59
+ # if RUBY_PLATFORM =~ /mingw|mswin/ then
60
+ # Rake::Task['compile'].prerequisites.unshift 'vendor:mysql'
61
+ # else
62
+ # if Rake::Task.tasks.map {|t| t.name }.include? 'cross'
63
+ # Rake::Task['cross'].prerequisites.unshift 'vendor:mysql'
64
+ # end
65
+ # end
66
+ rescue LoadError
67
+ end
data/tasks/spec.rake ADDED
@@ -0,0 +1,23 @@
1
+ require 'rake/testtask'
2
+
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)
11
+
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'
22
+ end
23
+ end
metadata ADDED
@@ -0,0 +1,151 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: do_oracle
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.10.1
5
+ platform: x86-mingw32
6
+ authors:
7
+ - Raimonds Simanovskis
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
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: ruby-oci8
27
+ type: :runtime
28
+ version_requirement:
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ~>
32
+ - !ruby/object:Gem::Version
33
+ version: "2.0"
34
+ version:
35
+ - !ruby/object:Gem::Dependency
36
+ name: bacon
37
+ type: :development
38
+ version_requirement:
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - ~>
42
+ - !ruby/object:Gem::Version
43
+ version: "1.1"
44
+ version:
45
+ - !ruby/object:Gem::Dependency
46
+ name: rake-compiler
47
+ type: :development
48
+ version_requirement:
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ~>
52
+ - !ruby/object:Gem::Version
53
+ version: "0.7"
54
+ version:
55
+ description: Implements the DataObjects API for Oracle
56
+ email: raimonds.simanovskis@gmail.com
57
+ executables: []
58
+
59
+ extensions: []
60
+
61
+ extra_rdoc_files:
62
+ - README.markdown
63
+ - ChangeLog.markdown
64
+ - INSTALL.markdown
65
+ - LICENSE
66
+ files:
67
+ - lib/do_oracle/transaction.rb
68
+ - lib/do_oracle/version.rb
69
+ - lib/do_oracle.rb
70
+ - spec/command_spec.rb
71
+ - spec/connection_spec.rb
72
+ - spec/encoding_spec.rb
73
+ - spec/reader_spec.rb
74
+ - spec/result_spec.rb
75
+ - spec/spec_helper.rb
76
+ - spec/typecast/array_spec.rb
77
+ - spec/typecast/bigdecimal_spec.rb
78
+ - spec/typecast/boolean_spec.rb
79
+ - spec/typecast/byte_array_spec.rb
80
+ - spec/typecast/class_spec.rb
81
+ - spec/typecast/date_spec.rb
82
+ - spec/typecast/datetime_spec.rb
83
+ - spec/typecast/float_spec.rb
84
+ - spec/typecast/integer_spec.rb
85
+ - spec/typecast/nil_spec.rb
86
+ - spec/typecast/other_spec.rb
87
+ - spec/typecast/range_spec.rb
88
+ - spec/typecast/string_spec.rb
89
+ - spec/typecast/time_spec.rb
90
+ - tasks/compile.rake
91
+ - tasks/release.rake
92
+ - tasks/retrieve.rake
93
+ - tasks/spec.rake
94
+ - ext/do_oracle/extconf.rb
95
+ - ext/do_oracle/do_oracle.c
96
+ - LICENSE
97
+ - Rakefile
98
+ - ChangeLog.markdown
99
+ - INSTALL.markdown
100
+ - README.markdown
101
+ - lib/do_oracle/1.8/do_oracle.so
102
+ - lib/do_oracle/1.9/do_oracle.so
103
+ has_rdoc: false
104
+ homepage:
105
+ licenses: []
106
+
107
+ post_install_message:
108
+ rdoc_options:
109
+ - --charset=UTF-8
110
+ require_paths:
111
+ - lib
112
+ required_ruby_version: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - ">="
115
+ - !ruby/object:Gem::Version
116
+ version: "0"
117
+ version:
118
+ required_rubygems_version: !ruby/object:Gem::Requirement
119
+ requirements:
120
+ - - ">="
121
+ - !ruby/object:Gem::Version
122
+ version: "0"
123
+ version:
124
+ requirements: []
125
+
126
+ rubyforge_project: dorb
127
+ rubygems_version: 1.3.5
128
+ signing_key:
129
+ specification_version: 3
130
+ summary: DataObjects Oracle Driver
131
+ test_files:
132
+ - spec/command_spec.rb
133
+ - spec/connection_spec.rb
134
+ - spec/encoding_spec.rb
135
+ - spec/reader_spec.rb
136
+ - spec/result_spec.rb
137
+ - spec/spec_helper.rb
138
+ - spec/typecast/array_spec.rb
139
+ - spec/typecast/bigdecimal_spec.rb
140
+ - spec/typecast/boolean_spec.rb
141
+ - spec/typecast/byte_array_spec.rb
142
+ - spec/typecast/class_spec.rb
143
+ - spec/typecast/date_spec.rb
144
+ - spec/typecast/datetime_spec.rb
145
+ - spec/typecast/float_spec.rb
146
+ - spec/typecast/integer_spec.rb
147
+ - spec/typecast/nil_spec.rb
148
+ - spec/typecast/other_spec.rb
149
+ - spec/typecast/range_spec.rb
150
+ - spec/typecast/string_spec.rb
151
+ - spec/typecast/time_spec.rb