ctreatma-activerecord-oracle_enhanced-adapter 1.4.1.1
Sign up to get free protection for your applications and to get access to all the features.
- data/.rspec +2 -0
- data/Gemfile +51 -0
- data/History.md +269 -0
- data/License.txt +20 -0
- data/README.md +378 -0
- data/RUNNING_TESTS.md +45 -0
- data/Rakefile +46 -0
- data/VERSION +1 -0
- data/activerecord-oracle_enhanced-adapter.gemspec +130 -0
- data/ctreatma-activerecord-oracle_enhanced-adapter.gemspec +129 -0
- data/lib/active_record/connection_adapters/emulation/oracle_adapter.rb +5 -0
- data/lib/active_record/connection_adapters/oracle_enhanced.rake +105 -0
- data/lib/active_record/connection_adapters/oracle_enhanced_activerecord_patches.rb +41 -0
- data/lib/active_record/connection_adapters/oracle_enhanced_adapter.rb +1390 -0
- data/lib/active_record/connection_adapters/oracle_enhanced_base_ext.rb +106 -0
- data/lib/active_record/connection_adapters/oracle_enhanced_column.rb +136 -0
- data/lib/active_record/connection_adapters/oracle_enhanced_connection.rb +119 -0
- data/lib/active_record/connection_adapters/oracle_enhanced_context_index.rb +328 -0
- data/lib/active_record/connection_adapters/oracle_enhanced_core_ext.rb +25 -0
- data/lib/active_record/connection_adapters/oracle_enhanced_cpk.rb +21 -0
- data/lib/active_record/connection_adapters/oracle_enhanced_dirty.rb +39 -0
- data/lib/active_record/connection_adapters/oracle_enhanced_jdbc_connection.rb +553 -0
- data/lib/active_record/connection_adapters/oracle_enhanced_oci_connection.rb +492 -0
- data/lib/active_record/connection_adapters/oracle_enhanced_procedures.rb +260 -0
- data/lib/active_record/connection_adapters/oracle_enhanced_schema_definitions.rb +213 -0
- data/lib/active_record/connection_adapters/oracle_enhanced_schema_dumper.rb +252 -0
- data/lib/active_record/connection_adapters/oracle_enhanced_schema_statements.rb +373 -0
- data/lib/active_record/connection_adapters/oracle_enhanced_schema_statements_ext.rb +265 -0
- data/lib/active_record/connection_adapters/oracle_enhanced_structure_dump.rb +290 -0
- data/lib/active_record/connection_adapters/oracle_enhanced_tasks.rb +17 -0
- data/lib/active_record/connection_adapters/oracle_enhanced_version.rb +1 -0
- data/lib/activerecord-oracle_enhanced-adapter.rb +25 -0
- data/spec/active_record/connection_adapters/oracle_enhanced_adapter_spec.rb +749 -0
- data/spec/active_record/connection_adapters/oracle_enhanced_connection_spec.rb +310 -0
- data/spec/active_record/connection_adapters/oracle_enhanced_context_index_spec.rb +426 -0
- data/spec/active_record/connection_adapters/oracle_enhanced_core_ext_spec.rb +19 -0
- data/spec/active_record/connection_adapters/oracle_enhanced_cpk_spec.rb +113 -0
- data/spec/active_record/connection_adapters/oracle_enhanced_data_types_spec.rb +1330 -0
- data/spec/active_record/connection_adapters/oracle_enhanced_dbms_output_spec.rb +69 -0
- data/spec/active_record/connection_adapters/oracle_enhanced_dirty_spec.rb +121 -0
- data/spec/active_record/connection_adapters/oracle_enhanced_emulate_oracle_adapter_spec.rb +25 -0
- data/spec/active_record/connection_adapters/oracle_enhanced_procedures_spec.rb +374 -0
- data/spec/active_record/connection_adapters/oracle_enhanced_schema_dump_spec.rb +380 -0
- data/spec/active_record/connection_adapters/oracle_enhanced_schema_statements_spec.rb +1112 -0
- data/spec/active_record/connection_adapters/oracle_enhanced_structure_dump_spec.rb +323 -0
- data/spec/spec_helper.rb +185 -0
- metadata +287 -0
data/RUNNING_TESTS.md
ADDED
@@ -0,0 +1,45 @@
|
|
1
|
+
Creating the test database
|
2
|
+
--------------------------
|
3
|
+
|
4
|
+
You need Oracle database (version 10.2 or later) with SYS and SYSTEM user access.
|
5
|
+
|
6
|
+
If you are on a Mac OS X 10.6 then use [these instructions](http://blog.rayapps.com/2009/09/14/how-to-install-oracle-database-10g-on-mac-os-x-snow-leopard) to install local Oracle DB 10.2.0.4. Other option is to use Linux VM and install Oracle DB on it.
|
7
|
+
|
8
|
+
If you are on Linux (or will use Linux virtual machine) and need Oracle DB just for running tests then Oracle DB XE edition is enough. See [Oracle XE downloads page](http://www.oracle.com/technetwork/database/express-edition/downloads/index.html) for download links and instructions.
|
9
|
+
|
10
|
+
If you are getting ORA-12520 errors when running tests then it means that Oracle cannot create enough processes to handle many connections (as during tests many connections are created and destroyed). In this case you need to log in as SYSTEM user and execute e.g.
|
11
|
+
|
12
|
+
alter system set processes=200 scope=spfile;
|
13
|
+
|
14
|
+
to increase process limit and then restart the database (this will be necessary if Oracle XE will be used as default processes limit is 40).
|
15
|
+
|
16
|
+
Ruby versions
|
17
|
+
-------------
|
18
|
+
|
19
|
+
It is recommended to use [RVM](http://rvm.beginrescueend.com) to run tests with different Ruby implementations. oracle_enhanced is mainly tested with MRI 1.8.7 (all Rails versions) and 1.9.2 (Rails 3) and JRuby 1.6.
|
20
|
+
|
21
|
+
Running tests
|
22
|
+
-------------
|
23
|
+
|
24
|
+
* Create Oracle database schema for test purposes. Review `spec/spec_helper.rb` to see default schema/user names and database names (use environment variables to override defaults)
|
25
|
+
|
26
|
+
SQL> CREATE USER oracle_enhanced IDENTIFIED BY oracle_enhanced;
|
27
|
+
SQL> GRANT unlimited tablespace, create session, create table, create sequence, create procedure, create trigger, create view, create materialized view, create database link, create synonym, create type, ctxapp TO oracle_enhanced;
|
28
|
+
|
29
|
+
* If you use RVM then switch to corresponding Ruby (1.8.7, 1.9.2 or JRuby) and it is recommended to create isolated gemset for test purposes (e.g. rvm create gemset oracle_enhanced)
|
30
|
+
|
31
|
+
* Install bundler with
|
32
|
+
|
33
|
+
gem install bundler
|
34
|
+
|
35
|
+
* Set RAILS_GEM_VERSION to Rails version that you would like to use in oracle_enhanced tests, e.g.
|
36
|
+
|
37
|
+
export RAILS_GEM_VERSION=3.0.3
|
38
|
+
|
39
|
+
* Install necessary gems with
|
40
|
+
|
41
|
+
bundle install
|
42
|
+
|
43
|
+
* Run tests with
|
44
|
+
|
45
|
+
rake spec
|
data/Rakefile
ADDED
@@ -0,0 +1,46 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'bundler'
|
3
|
+
begin
|
4
|
+
Bundler.setup(:default, :development)
|
5
|
+
rescue Bundler::BundlerError => e
|
6
|
+
$stderr.puts e.message
|
7
|
+
$stderr.puts "Run `bundle install` to install missing gems"
|
8
|
+
exit e.status_code
|
9
|
+
end
|
10
|
+
|
11
|
+
require 'rake'
|
12
|
+
|
13
|
+
require 'jeweler'
|
14
|
+
Jeweler::Tasks.new do |gem|
|
15
|
+
gem.name = "ctreatma-activerecord-oracle_enhanced-adapter"
|
16
|
+
gem.summary = "Oracle enhanced adapter for ActiveRecord"
|
17
|
+
gem.description = <<-EOS
|
18
|
+
Oracle "enhanced" ActiveRecord adapter contains useful additional methods for working with new and legacy Oracle databases.
|
19
|
+
This adapter is superset of original ActiveRecord Oracle adapter.
|
20
|
+
EOS
|
21
|
+
gem.email = "charles.treatman@gmail.com"
|
22
|
+
gem.homepage = "http://github.com/ctreatma/oracle-enhanced"
|
23
|
+
gem.authors = ["Charles Treatman", "Raimonds Simanovskis"]
|
24
|
+
gem.extra_rdoc_files = ['README.md']
|
25
|
+
end
|
26
|
+
Jeweler::RubygemsDotOrgTasks.new
|
27
|
+
|
28
|
+
require 'rspec/core/rake_task'
|
29
|
+
RSpec::Core::RakeTask.new(:spec)
|
30
|
+
|
31
|
+
RSpec::Core::RakeTask.new(:rcov) do |t|
|
32
|
+
t.rcov = true
|
33
|
+
t.rcov_opts = ['--exclude', '/Library,spec/']
|
34
|
+
end
|
35
|
+
|
36
|
+
task :default => :spec
|
37
|
+
|
38
|
+
require 'rake/rdoctask'
|
39
|
+
Rake::RDocTask.new do |rdoc|
|
40
|
+
version = File.exist?('VERSION') ? File.read('VERSION') : ""
|
41
|
+
|
42
|
+
rdoc.rdoc_dir = 'doc'
|
43
|
+
rdoc.title = "activerecord-oracle_enhanced-adapter #{version}"
|
44
|
+
rdoc.rdoc_files.include('README*')
|
45
|
+
rdoc.rdoc_files.include('lib/**/*.rb')
|
46
|
+
end
|
data/VERSION
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
1.4.1.1
|
@@ -0,0 +1,130 @@
|
|
1
|
+
# Generated by jeweler
|
2
|
+
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
|
+
# -*- encoding: utf-8 -*-
|
5
|
+
|
6
|
+
Gem::Specification.new do |s|
|
7
|
+
s.name = %q{activerecord-oracle_enhanced-adapter}
|
8
|
+
s.version = "1.4.1"
|
9
|
+
|
10
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
+
s.authors = [%q{Raimonds Simanovskis}]
|
12
|
+
s.date = %q{2012-01-27}
|
13
|
+
s.description = %q{Oracle "enhanced" ActiveRecord adapter contains useful additional methods for working with new and legacy Oracle databases.
|
14
|
+
This adapter is superset of original ActiveRecord Oracle adapter.
|
15
|
+
}
|
16
|
+
s.email = %q{raimonds.simanovskis@gmail.com}
|
17
|
+
s.extra_rdoc_files = [
|
18
|
+
"README.md"
|
19
|
+
]
|
20
|
+
s.files = [
|
21
|
+
".rspec",
|
22
|
+
"Gemfile",
|
23
|
+
"History.md",
|
24
|
+
"License.txt",
|
25
|
+
"README.md",
|
26
|
+
"RUNNING_TESTS.md",
|
27
|
+
"Rakefile",
|
28
|
+
"VERSION",
|
29
|
+
"activerecord-oracle_enhanced-adapter.gemspec",
|
30
|
+
"lib/active_record/connection_adapters/emulation/oracle_adapter.rb",
|
31
|
+
"lib/active_record/connection_adapters/oracle_enhanced.rake",
|
32
|
+
"lib/active_record/connection_adapters/oracle_enhanced_activerecord_patches.rb",
|
33
|
+
"lib/active_record/connection_adapters/oracle_enhanced_adapter.rb",
|
34
|
+
"lib/active_record/connection_adapters/oracle_enhanced_base_ext.rb",
|
35
|
+
"lib/active_record/connection_adapters/oracle_enhanced_column.rb",
|
36
|
+
"lib/active_record/connection_adapters/oracle_enhanced_connection.rb",
|
37
|
+
"lib/active_record/connection_adapters/oracle_enhanced_context_index.rb",
|
38
|
+
"lib/active_record/connection_adapters/oracle_enhanced_core_ext.rb",
|
39
|
+
"lib/active_record/connection_adapters/oracle_enhanced_cpk.rb",
|
40
|
+
"lib/active_record/connection_adapters/oracle_enhanced_dirty.rb",
|
41
|
+
"lib/active_record/connection_adapters/oracle_enhanced_jdbc_connection.rb",
|
42
|
+
"lib/active_record/connection_adapters/oracle_enhanced_oci_connection.rb",
|
43
|
+
"lib/active_record/connection_adapters/oracle_enhanced_procedures.rb",
|
44
|
+
"lib/active_record/connection_adapters/oracle_enhanced_schema_definitions.rb",
|
45
|
+
"lib/active_record/connection_adapters/oracle_enhanced_schema_dumper.rb",
|
46
|
+
"lib/active_record/connection_adapters/oracle_enhanced_schema_statements.rb",
|
47
|
+
"lib/active_record/connection_adapters/oracle_enhanced_schema_statements_ext.rb",
|
48
|
+
"lib/active_record/connection_adapters/oracle_enhanced_structure_dump.rb",
|
49
|
+
"lib/active_record/connection_adapters/oracle_enhanced_tasks.rb",
|
50
|
+
"lib/active_record/connection_adapters/oracle_enhanced_version.rb",
|
51
|
+
"lib/activerecord-oracle_enhanced-adapter.rb",
|
52
|
+
"spec/active_record/connection_adapters/oracle_enhanced_adapter_spec.rb",
|
53
|
+
"spec/active_record/connection_adapters/oracle_enhanced_connection_spec.rb",
|
54
|
+
"spec/active_record/connection_adapters/oracle_enhanced_context_index_spec.rb",
|
55
|
+
"spec/active_record/connection_adapters/oracle_enhanced_core_ext_spec.rb",
|
56
|
+
"spec/active_record/connection_adapters/oracle_enhanced_cpk_spec.rb",
|
57
|
+
"spec/active_record/connection_adapters/oracle_enhanced_data_types_spec.rb",
|
58
|
+
"spec/active_record/connection_adapters/oracle_enhanced_dbms_output_spec.rb",
|
59
|
+
"spec/active_record/connection_adapters/oracle_enhanced_dirty_spec.rb",
|
60
|
+
"spec/active_record/connection_adapters/oracle_enhanced_emulate_oracle_adapter_spec.rb",
|
61
|
+
"spec/active_record/connection_adapters/oracle_enhanced_procedures_spec.rb",
|
62
|
+
"spec/active_record/connection_adapters/oracle_enhanced_schema_dump_spec.rb",
|
63
|
+
"spec/active_record/connection_adapters/oracle_enhanced_schema_statements_spec.rb",
|
64
|
+
"spec/active_record/connection_adapters/oracle_enhanced_structure_dump_spec.rb",
|
65
|
+
"spec/spec_helper.rb"
|
66
|
+
]
|
67
|
+
s.homepage = %q{http://github.com/rsim/oracle-enhanced}
|
68
|
+
s.require_paths = [%q{lib}]
|
69
|
+
s.rubygems_version = %q{1.8.6}
|
70
|
+
s.summary = %q{Oracle enhanced adapter for ActiveRecord}
|
71
|
+
s.test_files = [
|
72
|
+
"spec/active_record/connection_adapters/oracle_enhanced_adapter_spec.rb",
|
73
|
+
"spec/active_record/connection_adapters/oracle_enhanced_connection_spec.rb",
|
74
|
+
"spec/active_record/connection_adapters/oracle_enhanced_context_index_spec.rb",
|
75
|
+
"spec/active_record/connection_adapters/oracle_enhanced_core_ext_spec.rb",
|
76
|
+
"spec/active_record/connection_adapters/oracle_enhanced_cpk_spec.rb",
|
77
|
+
"spec/active_record/connection_adapters/oracle_enhanced_data_types_spec.rb",
|
78
|
+
"spec/active_record/connection_adapters/oracle_enhanced_dbms_output_spec.rb",
|
79
|
+
"spec/active_record/connection_adapters/oracle_enhanced_dirty_spec.rb",
|
80
|
+
"spec/active_record/connection_adapters/oracle_enhanced_emulate_oracle_adapter_spec.rb",
|
81
|
+
"spec/active_record/connection_adapters/oracle_enhanced_procedures_spec.rb",
|
82
|
+
"spec/active_record/connection_adapters/oracle_enhanced_schema_dump_spec.rb",
|
83
|
+
"spec/active_record/connection_adapters/oracle_enhanced_schema_statements_spec.rb",
|
84
|
+
"spec/active_record/connection_adapters/oracle_enhanced_structure_dump_spec.rb",
|
85
|
+
"spec/spec_helper.rb"
|
86
|
+
]
|
87
|
+
|
88
|
+
if s.respond_to? :specification_version then
|
89
|
+
s.specification_version = 3
|
90
|
+
|
91
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
92
|
+
s.add_development_dependency(%q<jeweler>, ["~> 1.5.1"])
|
93
|
+
s.add_development_dependency(%q<rspec>, ["~> 2.4"])
|
94
|
+
s.add_development_dependency(%q<activerecord>, [">= 0"])
|
95
|
+
s.add_development_dependency(%q<activemodel>, [">= 0"])
|
96
|
+
s.add_development_dependency(%q<activesupport>, [">= 0"])
|
97
|
+
s.add_development_dependency(%q<actionpack>, [">= 0"])
|
98
|
+
s.add_development_dependency(%q<railties>, [">= 0"])
|
99
|
+
s.add_development_dependency(%q<arel>, [">= 0"])
|
100
|
+
s.add_development_dependency(%q<journey>, [">= 0"])
|
101
|
+
s.add_development_dependency(%q<ruby-plsql>, [">= 0.4.4"])
|
102
|
+
s.add_development_dependency(%q<ruby-oci8>, [">= 2.0.4"])
|
103
|
+
else
|
104
|
+
s.add_dependency(%q<jeweler>, ["~> 1.5.1"])
|
105
|
+
s.add_dependency(%q<rspec>, ["~> 2.4"])
|
106
|
+
s.add_dependency(%q<activerecord>, [">= 0"])
|
107
|
+
s.add_dependency(%q<activemodel>, [">= 0"])
|
108
|
+
s.add_dependency(%q<activesupport>, [">= 0"])
|
109
|
+
s.add_dependency(%q<actionpack>, [">= 0"])
|
110
|
+
s.add_dependency(%q<railties>, [">= 0"])
|
111
|
+
s.add_dependency(%q<arel>, [">= 0"])
|
112
|
+
s.add_dependency(%q<journey>, [">= 0"])
|
113
|
+
s.add_dependency(%q<ruby-plsql>, [">= 0.4.4"])
|
114
|
+
s.add_dependency(%q<ruby-oci8>, [">= 2.0.4"])
|
115
|
+
end
|
116
|
+
else
|
117
|
+
s.add_dependency(%q<jeweler>, ["~> 1.5.1"])
|
118
|
+
s.add_dependency(%q<rspec>, ["~> 2.4"])
|
119
|
+
s.add_dependency(%q<activerecord>, [">= 0"])
|
120
|
+
s.add_dependency(%q<activemodel>, [">= 0"])
|
121
|
+
s.add_dependency(%q<activesupport>, [">= 0"])
|
122
|
+
s.add_dependency(%q<actionpack>, [">= 0"])
|
123
|
+
s.add_dependency(%q<railties>, [">= 0"])
|
124
|
+
s.add_dependency(%q<arel>, [">= 0"])
|
125
|
+
s.add_dependency(%q<journey>, [">= 0"])
|
126
|
+
s.add_dependency(%q<ruby-plsql>, [">= 0.4.4"])
|
127
|
+
s.add_dependency(%q<ruby-oci8>, [">= 2.0.4"])
|
128
|
+
end
|
129
|
+
end
|
130
|
+
|
@@ -0,0 +1,129 @@
|
|
1
|
+
# Generated by jeweler
|
2
|
+
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
|
+
# -*- encoding: utf-8 -*-
|
5
|
+
|
6
|
+
Gem::Specification.new do |s|
|
7
|
+
s.name = "ctreatma-activerecord-oracle_enhanced-adapter"
|
8
|
+
s.version = "1.4.1.1"
|
9
|
+
|
10
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
+
s.authors = ["Charles Treatman", "Raimonds Simanovskis"]
|
12
|
+
s.date = "2012-04-10"
|
13
|
+
s.description = "Oracle \"enhanced\" ActiveRecord adapter contains useful additional methods for working with new and legacy Oracle databases.\nThis adapter is superset of original ActiveRecord Oracle adapter.\n"
|
14
|
+
s.email = "charles.treatman@gmail.com"
|
15
|
+
s.extra_rdoc_files = [
|
16
|
+
"README.md"
|
17
|
+
]
|
18
|
+
s.files = [
|
19
|
+
".rspec",
|
20
|
+
"Gemfile",
|
21
|
+
"History.md",
|
22
|
+
"License.txt",
|
23
|
+
"README.md",
|
24
|
+
"RUNNING_TESTS.md",
|
25
|
+
"Rakefile",
|
26
|
+
"VERSION",
|
27
|
+
"activerecord-oracle_enhanced-adapter.gemspec",
|
28
|
+
"ctreatma-activerecord-oracle_enhanced-adapter.gemspec",
|
29
|
+
"lib/active_record/connection_adapters/emulation/oracle_adapter.rb",
|
30
|
+
"lib/active_record/connection_adapters/oracle_enhanced.rake",
|
31
|
+
"lib/active_record/connection_adapters/oracle_enhanced_activerecord_patches.rb",
|
32
|
+
"lib/active_record/connection_adapters/oracle_enhanced_adapter.rb",
|
33
|
+
"lib/active_record/connection_adapters/oracle_enhanced_base_ext.rb",
|
34
|
+
"lib/active_record/connection_adapters/oracle_enhanced_column.rb",
|
35
|
+
"lib/active_record/connection_adapters/oracle_enhanced_connection.rb",
|
36
|
+
"lib/active_record/connection_adapters/oracle_enhanced_context_index.rb",
|
37
|
+
"lib/active_record/connection_adapters/oracle_enhanced_core_ext.rb",
|
38
|
+
"lib/active_record/connection_adapters/oracle_enhanced_cpk.rb",
|
39
|
+
"lib/active_record/connection_adapters/oracle_enhanced_dirty.rb",
|
40
|
+
"lib/active_record/connection_adapters/oracle_enhanced_jdbc_connection.rb",
|
41
|
+
"lib/active_record/connection_adapters/oracle_enhanced_oci_connection.rb",
|
42
|
+
"lib/active_record/connection_adapters/oracle_enhanced_procedures.rb",
|
43
|
+
"lib/active_record/connection_adapters/oracle_enhanced_schema_definitions.rb",
|
44
|
+
"lib/active_record/connection_adapters/oracle_enhanced_schema_dumper.rb",
|
45
|
+
"lib/active_record/connection_adapters/oracle_enhanced_schema_statements.rb",
|
46
|
+
"lib/active_record/connection_adapters/oracle_enhanced_schema_statements_ext.rb",
|
47
|
+
"lib/active_record/connection_adapters/oracle_enhanced_structure_dump.rb",
|
48
|
+
"lib/active_record/connection_adapters/oracle_enhanced_tasks.rb",
|
49
|
+
"lib/active_record/connection_adapters/oracle_enhanced_version.rb",
|
50
|
+
"lib/activerecord-oracle_enhanced-adapter.rb",
|
51
|
+
"spec/active_record/connection_adapters/oracle_enhanced_adapter_spec.rb",
|
52
|
+
"spec/active_record/connection_adapters/oracle_enhanced_connection_spec.rb",
|
53
|
+
"spec/active_record/connection_adapters/oracle_enhanced_context_index_spec.rb",
|
54
|
+
"spec/active_record/connection_adapters/oracle_enhanced_core_ext_spec.rb",
|
55
|
+
"spec/active_record/connection_adapters/oracle_enhanced_cpk_spec.rb",
|
56
|
+
"spec/active_record/connection_adapters/oracle_enhanced_data_types_spec.rb",
|
57
|
+
"spec/active_record/connection_adapters/oracle_enhanced_dbms_output_spec.rb",
|
58
|
+
"spec/active_record/connection_adapters/oracle_enhanced_dirty_spec.rb",
|
59
|
+
"spec/active_record/connection_adapters/oracle_enhanced_emulate_oracle_adapter_spec.rb",
|
60
|
+
"spec/active_record/connection_adapters/oracle_enhanced_procedures_spec.rb",
|
61
|
+
"spec/active_record/connection_adapters/oracle_enhanced_schema_dump_spec.rb",
|
62
|
+
"spec/active_record/connection_adapters/oracle_enhanced_schema_statements_spec.rb",
|
63
|
+
"spec/active_record/connection_adapters/oracle_enhanced_structure_dump_spec.rb",
|
64
|
+
"spec/spec_helper.rb"
|
65
|
+
]
|
66
|
+
s.homepage = "http://github.com/ctreatma/oracle-enhanced"
|
67
|
+
s.require_paths = ["lib"]
|
68
|
+
s.rubygems_version = "1.8.21"
|
69
|
+
s.summary = "Oracle enhanced adapter for ActiveRecord"
|
70
|
+
s.test_files = [
|
71
|
+
"spec/active_record/connection_adapters/oracle_enhanced_adapter_spec.rb",
|
72
|
+
"spec/active_record/connection_adapters/oracle_enhanced_connection_spec.rb",
|
73
|
+
"spec/active_record/connection_adapters/oracle_enhanced_context_index_spec.rb",
|
74
|
+
"spec/active_record/connection_adapters/oracle_enhanced_core_ext_spec.rb",
|
75
|
+
"spec/active_record/connection_adapters/oracle_enhanced_cpk_spec.rb",
|
76
|
+
"spec/active_record/connection_adapters/oracle_enhanced_data_types_spec.rb",
|
77
|
+
"spec/active_record/connection_adapters/oracle_enhanced_dbms_output_spec.rb",
|
78
|
+
"spec/active_record/connection_adapters/oracle_enhanced_dirty_spec.rb",
|
79
|
+
"spec/active_record/connection_adapters/oracle_enhanced_emulate_oracle_adapter_spec.rb",
|
80
|
+
"spec/active_record/connection_adapters/oracle_enhanced_procedures_spec.rb",
|
81
|
+
"spec/active_record/connection_adapters/oracle_enhanced_schema_dump_spec.rb",
|
82
|
+
"spec/active_record/connection_adapters/oracle_enhanced_schema_statements_spec.rb",
|
83
|
+
"spec/active_record/connection_adapters/oracle_enhanced_structure_dump_spec.rb",
|
84
|
+
"spec/spec_helper.rb"
|
85
|
+
]
|
86
|
+
|
87
|
+
if s.respond_to? :specification_version then
|
88
|
+
s.specification_version = 3
|
89
|
+
|
90
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
91
|
+
s.add_development_dependency(%q<jeweler>, ["~> 1.5.1"])
|
92
|
+
s.add_development_dependency(%q<rspec>, ["~> 2.4"])
|
93
|
+
s.add_development_dependency(%q<activerecord>, [">= 0"])
|
94
|
+
s.add_development_dependency(%q<activemodel>, [">= 0"])
|
95
|
+
s.add_development_dependency(%q<activesupport>, [">= 0"])
|
96
|
+
s.add_development_dependency(%q<actionpack>, [">= 0"])
|
97
|
+
s.add_development_dependency(%q<railties>, [">= 0"])
|
98
|
+
s.add_development_dependency(%q<arel>, [">= 0"])
|
99
|
+
s.add_development_dependency(%q<journey>, [">= 0"])
|
100
|
+
s.add_development_dependency(%q<ruby-plsql>, [">= 0.4.4"])
|
101
|
+
s.add_development_dependency(%q<ruby-oci8>, [">= 2.0.4"])
|
102
|
+
else
|
103
|
+
s.add_dependency(%q<jeweler>, ["~> 1.5.1"])
|
104
|
+
s.add_dependency(%q<rspec>, ["~> 2.4"])
|
105
|
+
s.add_dependency(%q<activerecord>, [">= 0"])
|
106
|
+
s.add_dependency(%q<activemodel>, [">= 0"])
|
107
|
+
s.add_dependency(%q<activesupport>, [">= 0"])
|
108
|
+
s.add_dependency(%q<actionpack>, [">= 0"])
|
109
|
+
s.add_dependency(%q<railties>, [">= 0"])
|
110
|
+
s.add_dependency(%q<arel>, [">= 0"])
|
111
|
+
s.add_dependency(%q<journey>, [">= 0"])
|
112
|
+
s.add_dependency(%q<ruby-plsql>, [">= 0.4.4"])
|
113
|
+
s.add_dependency(%q<ruby-oci8>, [">= 2.0.4"])
|
114
|
+
end
|
115
|
+
else
|
116
|
+
s.add_dependency(%q<jeweler>, ["~> 1.5.1"])
|
117
|
+
s.add_dependency(%q<rspec>, ["~> 2.4"])
|
118
|
+
s.add_dependency(%q<activerecord>, [">= 0"])
|
119
|
+
s.add_dependency(%q<activemodel>, [">= 0"])
|
120
|
+
s.add_dependency(%q<activesupport>, [">= 0"])
|
121
|
+
s.add_dependency(%q<actionpack>, [">= 0"])
|
122
|
+
s.add_dependency(%q<railties>, [">= 0"])
|
123
|
+
s.add_dependency(%q<arel>, [">= 0"])
|
124
|
+
s.add_dependency(%q<journey>, [">= 0"])
|
125
|
+
s.add_dependency(%q<ruby-plsql>, [">= 0.4.4"])
|
126
|
+
s.add_dependency(%q<ruby-oci8>, [">= 2.0.4"])
|
127
|
+
end
|
128
|
+
end
|
129
|
+
|
@@ -0,0 +1,105 @@
|
|
1
|
+
# implementation idea taken from JDBC adapter
|
2
|
+
# added possibility to execute previously defined task (passed as argument to task block)
|
3
|
+
def redefine_task(*args, &block)
|
4
|
+
task_name = Hash === args.first ? args.first.keys[0] : args.first
|
5
|
+
existing_task = Rake.application.lookup task_name
|
6
|
+
existing_actions = nil
|
7
|
+
if existing_task
|
8
|
+
class << existing_task; public :instance_variable_set, :instance_variable_get; end
|
9
|
+
existing_task.instance_variable_set "@prerequisites", FileList[]
|
10
|
+
existing_actions = existing_task.instance_variable_get "@actions"
|
11
|
+
existing_task.instance_variable_set "@actions", []
|
12
|
+
end
|
13
|
+
task(*args) do
|
14
|
+
block.call(existing_actions)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
# Creates database user with db:create
|
19
|
+
if defined?(create_database) == 'method'
|
20
|
+
def create_database_with_oracle_enhanced(config)
|
21
|
+
if config['adapter'] == 'oracle_enhanced'
|
22
|
+
print "Please provide the SYSTEM password for your oracle installation\n>"
|
23
|
+
system_password = $stdin.gets.strip
|
24
|
+
ActiveRecord::Base.establish_connection(config.merge('username' => 'SYSTEM', 'password' => system_password))
|
25
|
+
begin
|
26
|
+
ActiveRecord::Base.connection.execute "CREATE USER #{config['username']} IDENTIFIED BY #{config['password']}"
|
27
|
+
rescue => e
|
28
|
+
if e.message =~ /ORA-01920/ # user name conflicts with another user or role name
|
29
|
+
ActiveRecord::Base.connection.execute "ALTER USER #{config['username']} IDENTIFIED BY #{config['password']}"
|
30
|
+
else
|
31
|
+
raise e
|
32
|
+
end
|
33
|
+
end
|
34
|
+
ActiveRecord::Base.connection.execute "GRANT unlimited tablespace TO #{config['username']}"
|
35
|
+
ActiveRecord::Base.connection.execute "GRANT create session TO #{config['username']}"
|
36
|
+
ActiveRecord::Base.connection.execute "GRANT create table TO #{config['username']}"
|
37
|
+
ActiveRecord::Base.connection.execute "GRANT create sequence TO #{config['username']}"
|
38
|
+
else
|
39
|
+
create_database_without_oracle_enhanced(config)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
alias :create_database_without_oracle_enhanced :create_database
|
43
|
+
alias :create_database :create_database_with_oracle_enhanced
|
44
|
+
end
|
45
|
+
|
46
|
+
# Drops database user with db:drop
|
47
|
+
if defined?(drop_database) == 'method'
|
48
|
+
def drop_database_with_oracle_enhanced(config)
|
49
|
+
if config['adapter'] == 'oracle_enhanced'
|
50
|
+
ActiveRecord::Base.establish_connection(config)
|
51
|
+
ActiveRecord::Base.connection.execute_structure_dump(ActiveRecord::Base.connection.full_drop)
|
52
|
+
else
|
53
|
+
drop_database_without_oracle_enhanced(config)
|
54
|
+
end
|
55
|
+
end
|
56
|
+
alias :drop_database_without_oracle_enhanced :drop_database
|
57
|
+
alias :drop_database :drop_database_with_oracle_enhanced
|
58
|
+
end
|
59
|
+
|
60
|
+
namespace :db do
|
61
|
+
|
62
|
+
namespace :structure do
|
63
|
+
redefine_task :dump => :environment do |existing_actions|
|
64
|
+
abcs = ActiveRecord::Base.configurations
|
65
|
+
rails_env = defined?(Rails.env) ? Rails.env : RAILS_ENV
|
66
|
+
if abcs[rails_env]['adapter'] == 'oracle_enhanced'
|
67
|
+
ActiveRecord::Base.establish_connection(abcs[rails_env])
|
68
|
+
File.open("db/#{rails_env}_structure.sql", "w+") { |f| f << ActiveRecord::Base.connection.structure_dump }
|
69
|
+
if ActiveRecord::Base.connection.supports_migrations?
|
70
|
+
File.open("db/#{rails_env}_structure.sql", "a") { |f| f << ActiveRecord::Base.connection.dump_schema_information }
|
71
|
+
end
|
72
|
+
if abcs[rails_env]['structure_dump'] == "db_stored_code"
|
73
|
+
File.open("db/#{rails_env}_structure.sql", "a") { |f| f << ActiveRecord::Base.connection.structure_dump_db_stored_code }
|
74
|
+
end
|
75
|
+
else
|
76
|
+
Array(existing_actions).each{|action| action.call}
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
namespace :test do
|
82
|
+
redefine_task :clone_structure => [ "db:structure:dump", "db:test:purge" ] do |existing_actions|
|
83
|
+
abcs = ActiveRecord::Base.configurations
|
84
|
+
rails_env = defined?(Rails.env) ? Rails.env : RAILS_ENV
|
85
|
+
if abcs[rails_env]['adapter'] == 'oracle_enhanced' && abcs['test']['adapter'] == 'oracle_enhanced'
|
86
|
+
ActiveRecord::Base.establish_connection(:test)
|
87
|
+
ActiveRecord::Base.connection.execute_structure_dump(File.read("db/#{rails_env}_structure.sql"))
|
88
|
+
else
|
89
|
+
Array(existing_actions).each{|action| action.call}
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
93
|
+
redefine_task :purge => :environment do |existing_actions|
|
94
|
+
abcs = ActiveRecord::Base.configurations
|
95
|
+
if abcs['test']['adapter'] == 'oracle_enhanced'
|
96
|
+
ActiveRecord::Base.establish_connection(:test)
|
97
|
+
ActiveRecord::Base.connection.execute_structure_dump(ActiveRecord::Base.connection.full_drop)
|
98
|
+
ActiveRecord::Base.connection.execute("PURGE RECYCLEBIN") rescue nil
|
99
|
+
else
|
100
|
+
Array(existing_actions).each{|action| action.call}
|
101
|
+
end
|
102
|
+
end
|
103
|
+
|
104
|
+
end
|
105
|
+
end
|