ruby-plsql 0.6.0 → 0.7.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.codeclimate.yml +30 -0
- data/.github/stale.yml +37 -0
- data/.rubocop.yml +153 -0
- data/.travis.yml +20 -6
- data/.travis/oracle/download.sh +9 -10
- data/.travis/oracle/install.sh +6 -6
- data/Gemfile +13 -9
- data/History.txt +26 -0
- data/README.md +9 -5
- data/Rakefile +31 -26
- data/VERSION +1 -1
- data/Vagrantfile +2 -2
- data/gemfiles/Gemfile.activerecord-5.0 +21 -0
- data/gemfiles/Gemfile.activerecord-5.1 +21 -0
- data/gemfiles/Gemfile.activerecord-5.2 +21 -0
- data/lib/plsql/connection.rb +16 -18
- data/lib/plsql/helpers.rb +1 -3
- data/lib/plsql/jdbc_connection.rb +66 -61
- data/lib/plsql/oci8_patches.rb +2 -2
- data/lib/plsql/oci_connection.rb +51 -69
- data/lib/plsql/package.rb +5 -8
- data/lib/plsql/procedure.rb +75 -78
- data/lib/plsql/procedure_call.rb +498 -501
- data/lib/plsql/schema.rb +95 -100
- data/lib/plsql/sequence.rb +10 -13
- data/lib/plsql/sql_statements.rb +9 -11
- data/lib/plsql/table.rb +59 -63
- data/lib/plsql/type.rb +71 -76
- data/lib/plsql/variable.rb +89 -94
- data/lib/plsql/version.rb +1 -1
- data/lib/plsql/view.rb +16 -19
- data/ruby-plsql.gemspec +41 -37
- data/spec/plsql/connection_spec.rb +67 -67
- data/spec/plsql/package_spec.rb +15 -15
- data/spec/plsql/procedure_spec.rb +286 -233
- data/spec/plsql/schema_spec.rb +22 -23
- data/spec/plsql/sequence_spec.rb +2 -2
- data/spec/plsql/sql_statements_spec.rb +5 -5
- data/spec/plsql/table_spec.rb +77 -77
- data/spec/plsql/type_spec.rb +23 -29
- data/spec/plsql/variable_spec.rb +59 -59
- data/spec/plsql/version_spec.rb +4 -4
- data/spec/plsql/view_spec.rb +42 -42
- data/spec/spec_helper.rb +37 -29
- data/spec/support/test_db.rb +12 -13
- metadata +44 -26
- data/.travis/oracle/LICENSE +0 -5
- data/.travis/oracle/README.md +0 -64
- data/.travis/oracle/download.js +0 -100
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: b174fe3a8e87e627e00e0686919948672e1d825297cd4ba08da51ffaf14adf2f
|
4
|
+
data.tar.gz: 2393ec2d7bb267f27b31303253d8bed0ea0f9d756e2e58a679cbe660c5027bc0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9ebfffeba8dd70188d82bf165d14addea0032ad48c5deb21a4b9b0416a2ce5d55f25af88a3ecfa2551cd7114ea9d5b05700942b9a800704363b2ed0f2e388cd7
|
7
|
+
data.tar.gz: ec8c86020d3633c76d7dd071be82ffc653dff93c4a79f357395534dc86947a5ed1174961aaf16ad5963c6021f4e2302bad5d1ac684a570fbf52c8b48187981e4
|
data/.codeclimate.yml
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
checks:
|
2
|
+
argument-count:
|
3
|
+
enabled: false
|
4
|
+
complex-logic:
|
5
|
+
enabled: false
|
6
|
+
file-lines:
|
7
|
+
enabled: false
|
8
|
+
method-complexity:
|
9
|
+
enabled: false
|
10
|
+
method-count:
|
11
|
+
enabled: false
|
12
|
+
method-lines:
|
13
|
+
enabled: false
|
14
|
+
nested-control-flow:
|
15
|
+
enabled: false
|
16
|
+
return-statements:
|
17
|
+
enabled: false
|
18
|
+
similar-code:
|
19
|
+
enabled: false
|
20
|
+
identical-code:
|
21
|
+
enabled: false
|
22
|
+
|
23
|
+
engines:
|
24
|
+
rubocop:
|
25
|
+
enabled: true
|
26
|
+
channel: rubocop-0-58
|
27
|
+
|
28
|
+
ratings:
|
29
|
+
paths:
|
30
|
+
- "**.rb"
|
data/.github/stale.yml
ADDED
@@ -0,0 +1,37 @@
|
|
1
|
+
# Configuration for probot-stale - https://github.com/probot/stale
|
2
|
+
|
3
|
+
# Number of days of inactivity before an Issue or Pull Request becomes stale
|
4
|
+
daysUntilStale: 60
|
5
|
+
# Number of days of inactivity before a stale Issue or Pull Request is closed
|
6
|
+
daysUntilClose: 7
|
7
|
+
# Issues or Pull Requests with these labels will never be considered stale. Set to `[]` to disable
|
8
|
+
exemptLabels:
|
9
|
+
- pinned
|
10
|
+
- security
|
11
|
+
- "[Status] Maybe Later"
|
12
|
+
# Label to use when marking as stale
|
13
|
+
staleLabel: wontfix
|
14
|
+
# Comment to post when marking as stale. Set to `false` to disable
|
15
|
+
markComment: >
|
16
|
+
This issue has been automatically marked as stale because it has not had
|
17
|
+
recent activity. It will be closed if no further activity occurs. Thank you
|
18
|
+
for your contributions.
|
19
|
+
# Comment to post when removing the stale label. Set to `false` to disable
|
20
|
+
unmarkComment: false
|
21
|
+
# Comment to post when closing a stale Issue or Pull Request. Set to `false` to disable
|
22
|
+
closeComment: false
|
23
|
+
# Limit the number of actions per hour, from 1-30. Default is 30
|
24
|
+
limitPerRun: 30
|
25
|
+
# Limit to only `issues` or `pulls`
|
26
|
+
# only: issues
|
27
|
+
#
|
28
|
+
# Optionally, specify configuration settings that are specific to just 'issues' or 'pulls':
|
29
|
+
# pulls:
|
30
|
+
# daysUntilStale: 30
|
31
|
+
# markComment: >
|
32
|
+
# This pull request has been automatically marked as stale because it has not had
|
33
|
+
# recent activity. It will be closed if no further activity occurs. Thank you
|
34
|
+
# for your contributions.
|
35
|
+
# issues:
|
36
|
+
# exemptLabels:
|
37
|
+
# - confirmed
|
data/.rubocop.yml
ADDED
@@ -0,0 +1,153 @@
|
|
1
|
+
# rubocop 0.51.0 requires Ruby 2.1
|
2
|
+
# We should not use cops only available for Ruby 2.1 or later
|
3
|
+
# since ruby-plsql itself supports Ruby 1.9.3
|
4
|
+
AllCops:
|
5
|
+
TargetRubyVersion: 2.2
|
6
|
+
DisabledByDefault: true
|
7
|
+
|
8
|
+
# Prefer &&/|| over and/or.
|
9
|
+
Style/AndOr:
|
10
|
+
Enabled: true
|
11
|
+
|
12
|
+
# Do not use braces for hash literals when they are the last argument of a
|
13
|
+
# method call.
|
14
|
+
Style/BracesAroundHashParameters:
|
15
|
+
Enabled: true
|
16
|
+
EnforcedStyle: context_dependent
|
17
|
+
|
18
|
+
# Align `when` with `case`.
|
19
|
+
Layout/CaseIndentation:
|
20
|
+
Enabled: true
|
21
|
+
|
22
|
+
# Align comments with method definitions.
|
23
|
+
Layout/CommentIndentation:
|
24
|
+
Enabled: true
|
25
|
+
|
26
|
+
Layout/ElseAlignment:
|
27
|
+
Enabled: true
|
28
|
+
|
29
|
+
Layout/EmptyLineAfterMagicComment:
|
30
|
+
Enabled: true
|
31
|
+
|
32
|
+
# No extra empty lines.
|
33
|
+
Layout/EmptyLines:
|
34
|
+
Enabled: true
|
35
|
+
|
36
|
+
# In a regular class definition, no empty lines around the body.
|
37
|
+
Layout/EmptyLinesAroundClassBody:
|
38
|
+
Enabled: true
|
39
|
+
|
40
|
+
# In a regular method definition, no empty lines around the body.
|
41
|
+
Layout/EmptyLinesAroundMethodBody:
|
42
|
+
Enabled: true
|
43
|
+
|
44
|
+
# In a regular module definition, no empty lines around the body.
|
45
|
+
Layout/EmptyLinesAroundModuleBody:
|
46
|
+
Enabled: true
|
47
|
+
|
48
|
+
Layout/FirstParameterIndentation:
|
49
|
+
Enabled: true
|
50
|
+
|
51
|
+
# Use Ruby >= 1.9 syntax for hashes. Prefer { a: :b } over { :a => :b }.
|
52
|
+
Style/HashSyntax:
|
53
|
+
Enabled: true
|
54
|
+
|
55
|
+
# Method definitions after `private` or `protected` isolated calls need one
|
56
|
+
# extra level of indentation.
|
57
|
+
Layout/IndentationConsistency:
|
58
|
+
Enabled: true
|
59
|
+
EnforcedStyle: rails
|
60
|
+
|
61
|
+
# Two spaces, no tabs (for indentation).
|
62
|
+
Layout/IndentationWidth:
|
63
|
+
Enabled: true
|
64
|
+
|
65
|
+
Layout/LeadingCommentSpace:
|
66
|
+
Enabled: true
|
67
|
+
|
68
|
+
Layout/SpaceAfterColon:
|
69
|
+
Enabled: true
|
70
|
+
|
71
|
+
Layout/SpaceAfterComma:
|
72
|
+
Enabled: true
|
73
|
+
|
74
|
+
Layout/SpaceAroundEqualsInParameterDefault:
|
75
|
+
Enabled: true
|
76
|
+
|
77
|
+
Layout/SpaceAroundKeyword:
|
78
|
+
Enabled: true
|
79
|
+
|
80
|
+
Layout/SpaceAroundOperators:
|
81
|
+
Enabled: true
|
82
|
+
|
83
|
+
Layout/SpaceBeforeComma:
|
84
|
+
Enabled: true
|
85
|
+
|
86
|
+
Layout/SpaceBeforeFirstArg:
|
87
|
+
Enabled: true
|
88
|
+
|
89
|
+
Style/DefWithParentheses:
|
90
|
+
Enabled: true
|
91
|
+
|
92
|
+
# Defining a method with parameters needs parentheses.
|
93
|
+
Style/MethodDefParentheses:
|
94
|
+
Enabled: true
|
95
|
+
|
96
|
+
Style/FrozenStringLiteralComment:
|
97
|
+
Enabled: false
|
98
|
+
EnforcedStyle: always
|
99
|
+
|
100
|
+
# Use `foo {}` not `foo{}`.
|
101
|
+
Layout/SpaceBeforeBlockBraces:
|
102
|
+
Enabled: true
|
103
|
+
|
104
|
+
# Use `foo { bar }` not `foo {bar}`.
|
105
|
+
Layout/SpaceInsideBlockBraces:
|
106
|
+
Enabled: true
|
107
|
+
|
108
|
+
# Use `{ a: 1 }` not `{a:1}`.
|
109
|
+
Layout/SpaceInsideHashLiteralBraces:
|
110
|
+
Enabled: true
|
111
|
+
|
112
|
+
Layout/SpaceInsideParens:
|
113
|
+
Enabled: true
|
114
|
+
|
115
|
+
# Check quotes usage according to lint rule below.
|
116
|
+
Style/StringLiterals:
|
117
|
+
Enabled: true
|
118
|
+
EnforcedStyle: double_quotes
|
119
|
+
|
120
|
+
# Detect hard tabs, no hard tabs.
|
121
|
+
Layout/Tab:
|
122
|
+
Enabled: true
|
123
|
+
|
124
|
+
# Blank lines should not have any spaces.
|
125
|
+
Layout/TrailingBlankLines:
|
126
|
+
Enabled: true
|
127
|
+
|
128
|
+
# No trailing whitespace.
|
129
|
+
Layout/TrailingWhitespace:
|
130
|
+
Enabled: true
|
131
|
+
|
132
|
+
# Use quotes for string literals when they are enough.
|
133
|
+
Style/UnneededPercentQ:
|
134
|
+
Enabled: true
|
135
|
+
|
136
|
+
# Align `end` with the matching keyword or starting expression except for
|
137
|
+
# assignments, where it should be aligned with the LHS.
|
138
|
+
Layout/EndAlignment:
|
139
|
+
Enabled: true
|
140
|
+
EnforcedStyleAlignWith: variable
|
141
|
+
AutoCorrect: true
|
142
|
+
|
143
|
+
# Use my_method(my_arg) not my_method( my_arg ) or my_method my_arg.
|
144
|
+
Lint/RequireParentheses:
|
145
|
+
Enabled: true
|
146
|
+
|
147
|
+
Style/RedundantReturn:
|
148
|
+
Enabled: true
|
149
|
+
AllowMultipleReturnValues: true
|
150
|
+
|
151
|
+
Style/Semicolon:
|
152
|
+
Enabled: true
|
153
|
+
AllowAsExpressionSeparator: true
|
data/.travis.yml
CHANGED
@@ -19,17 +19,31 @@ before_install:
|
|
19
19
|
- chmod +x .travis/oracle/download.sh
|
20
20
|
- chmod +x .travis/oracle/install.sh
|
21
21
|
- chmod +x .travis/setup_accounts.sh
|
22
|
+
- gem install bundler
|
22
23
|
|
23
24
|
install:
|
24
25
|
- .travis/oracle/download.sh
|
25
26
|
- .travis/oracle/install.sh
|
26
27
|
- .travis/setup_accounts.sh
|
27
|
-
- bundle install
|
28
|
+
- bundle install --without=development
|
28
29
|
|
29
30
|
language: ruby
|
30
31
|
rvm:
|
31
|
-
- 2.
|
32
|
-
- 2.
|
33
|
-
-
|
34
|
-
-
|
35
|
-
- jruby-9.0.
|
32
|
+
- 2.5.1
|
33
|
+
- 2.4.4
|
34
|
+
- 2.3.7
|
35
|
+
- 2.2.10
|
36
|
+
- jruby-9.2.0.0
|
37
|
+
- ruby-head
|
38
|
+
- jruby-head
|
39
|
+
|
40
|
+
gemfile:
|
41
|
+
- Gemfile
|
42
|
+
- gemfiles/Gemfile.activerecord-5.0
|
43
|
+
- gemfiles/Gemfile.activerecord-5.1
|
44
|
+
- gemfiles/Gemfile.activerecord-5.2
|
45
|
+
|
46
|
+
matrix:
|
47
|
+
allow_failures:
|
48
|
+
- rvm: ruby-head
|
49
|
+
- rvm: jruby-head
|
data/.travis/oracle/download.sh
CHANGED
@@ -1,16 +1,15 @@
|
|
1
|
-
#!/bin/
|
2
|
-
|
3
|
-
[ -n "$ORACLE_COOKIE" ] || { echo "Missing ORACLE_COOKIE environment variable!"; exit 1; }
|
4
|
-
[ -n "$ORACLE_FILE" ] || { echo "Missing ORACLE_FILE environment variable!"; exit 1; }
|
1
|
+
#!/usr/bin/env bash
|
5
2
|
|
6
3
|
cd "$(dirname "$(readlink -f "$0")")"
|
7
4
|
|
8
|
-
|
5
|
+
deb_file=oracle-xe_11.2.0-1.0_amd64.deb
|
6
|
+
|
7
|
+
git clone https://github.com/wnameless/docker-oracle-xe-11g.git
|
8
|
+
|
9
|
+
cd docker-oracle-xe-11g/assets &&
|
10
|
+
cat "${deb_file}aa" "${deb_file}ab" "${deb_file}ac" > "${deb_file}"
|
9
11
|
|
10
|
-
|
11
|
-
export USER_AGENT='Mozilla/5.0'
|
12
|
+
pwd
|
12
13
|
|
13
|
-
|
14
|
-
chmod 600 "$COOKIES"
|
14
|
+
ls -lAh "${deb_file}"
|
15
15
|
|
16
|
-
exec node download.js
|
data/.travis/oracle/install.sh
CHANGED
@@ -1,14 +1,14 @@
|
|
1
|
-
#!/bin/
|
1
|
+
#!/usr/bin/env bash
|
2
2
|
|
3
3
|
[ -n "$ORACLE_FILE" ] || { echo "Missing ORACLE_FILE environment variable!"; exit 1; }
|
4
4
|
[ -n "$ORACLE_HOME" ] || { echo "Missing ORACLE_HOME environment variable!"; exit 1; }
|
5
5
|
|
6
|
-
ORACLE_RPM="$(basename $ORACLE_FILE .zip)"
|
7
|
-
|
8
6
|
cd "$(dirname "$(readlink -f "$0")")"
|
9
7
|
|
8
|
+
ORACLE_DEB=docker-oracle-xe-11g/assets/oracle-xe_11.2.0-1.0_amd64.deb
|
9
|
+
|
10
10
|
sudo apt-get -qq update
|
11
|
-
sudo apt-get --no-install-recommends -qq install bc libaio1
|
11
|
+
sudo apt-get --no-install-recommends -qq install bc libaio1
|
12
12
|
|
13
13
|
df -B1 /dev/shm | awk 'END { if ($1 != "shmfs" && $1 != "tmpfs" || $2 < 2147483648) exit 1 }' ||
|
14
14
|
( sudo rm -r /dev/shm && sudo mkdir /dev/shm && sudo mount -t tmpfs shmfs -o size=2G /dev/shm )
|
@@ -18,10 +18,10 @@ test -f /sbin/chkconfig ||
|
|
18
18
|
|
19
19
|
test -d /var/lock/subsys || sudo mkdir /var/lock/subsys
|
20
20
|
|
21
|
-
|
22
|
-
sudo rpm --install --nodeps --nopre "$ORACLE_RPM"
|
21
|
+
sudo dpkg -i "${ORACLE_DEB}"
|
23
22
|
|
24
23
|
echo 'OS_AUTHENT_PREFIX=""' | sudo tee -a "$ORACLE_HOME/config/scripts/init.ora" > /dev/null
|
24
|
+
echo 'disk_asynch_io=false' | sudo tee -a "$ORACLE_HOME/config/scripts/init.ora" > /dev/null
|
25
25
|
sudo usermod -aG dba $USER
|
26
26
|
|
27
27
|
( echo ; echo ; echo travis ; echo travis ; echo n ) | sudo AWK='/usr/bin/awk' /etc/init.d/oracle-xe configure
|
data/Gemfile
CHANGED
@@ -1,17 +1,21 @@
|
|
1
|
-
source
|
1
|
+
source "http://rubygems.org"
|
2
2
|
|
3
3
|
group :development do
|
4
|
-
gem
|
5
|
-
gem
|
6
|
-
|
4
|
+
gem "juwelier", "~> 2.0"
|
5
|
+
gem "rspec_junit_formatter"
|
6
|
+
end
|
7
|
+
|
8
|
+
group :test, :development do
|
9
|
+
gem "rake", ">= 10.0"
|
10
|
+
gem "rspec", "~> 3.1"
|
7
11
|
|
8
|
-
unless ENV[
|
9
|
-
gem
|
10
|
-
gem
|
11
|
-
gem
|
12
|
+
unless ENV["NO_ACTIVERECORD"]
|
13
|
+
gem "activerecord", ">= 3.2.3", "< 5.2.0"
|
14
|
+
gem "activerecord-oracle_enhanced-adapter", ">= 1.4.1", "< 1.9.0"
|
15
|
+
gem "simplecov", ">= 0"
|
12
16
|
end
|
13
17
|
|
14
18
|
platforms :ruby, :mswin, :mingw do
|
15
|
-
gem
|
19
|
+
gem "ruby-oci8", "~> 2.1"
|
16
20
|
end
|
17
21
|
end
|
data/History.txt
CHANGED
@@ -1,3 +1,29 @@
|
|
1
|
+
== 0.7.0 2018-09-03
|
2
|
+
* Improvements and fixes
|
3
|
+
|
4
|
+
* Support Rails 5.0, 5.1 and 5.2
|
5
|
+
* Drop Rails 4.1 and 4.2 support
|
6
|
+
* Drop JRuby 1.7 support
|
7
|
+
* Drop JRuby 9.0 support
|
8
|
+
* Drop CRuby 2.1 or lower support
|
9
|
+
* Allow calling procedures in INVALID status
|
10
|
+
* Bignum, Fixnum, Integer fixes for Ruby 2.4
|
11
|
+
* Replace deprecated BigDecimal.new() with BigDecimal()
|
12
|
+
* Suppress warning `BigDecimal.new` is deprecated
|
13
|
+
* Avoid using `OCI8#describe_synonym`
|
14
|
+
* Allow ojdbc7.jar when Java version is 1.7 or higher
|
15
|
+
* Fix unguarded OCIError (breaks on JRuby)
|
16
|
+
* Suppress `warning: instance variable @dbms_output_stream not initialized`
|
17
|
+
* Suppress `warning: assigned but unused variable`
|
18
|
+
* Suppress `warning: shadowing outer local variable - column`
|
19
|
+
* Add license to gemspec
|
20
|
+
* Migrate from jeweler to juwelier
|
21
|
+
* CI against JRuby 9.1.8 and CRuby 2.4 and 2.5
|
22
|
+
* CI against jruby-head and ruby-head
|
23
|
+
* Enable RuboCop
|
24
|
+
* Set `disk_asynch_io` to `false`
|
25
|
+
* Skip XMLType specs if Oracle Database version is 12c or higher
|
26
|
+
|
1
27
|
== 0.6.0 2016-03-13
|
2
28
|
* Improvements
|
3
29
|
* Add support for records with boolean attributes - as input and output parameters and as return values of stored procedures
|
data/README.md
CHANGED
@@ -12,7 +12,7 @@ ruby-plsql gem provides simple Ruby API for calling Oracle PL/SQL procedures. It
|
|
12
12
|
|
13
13
|
NUMBER, BINARY_INTEGER, PLS_INTEGER, NATURAL, NATURALN, POSITIVE, POSITIVEN, SIGNTYPE, SIMPLE_INTEGER, VARCHAR, VARCHAR2, NVARCHAR2, CHAR, NCHAR, DATE, TIMESTAMP, CLOB, BLOB, BOOLEAN, PL/SQL RECORD, TABLE, VARRAY, OBJECT and CURSOR types are supported for input and output parameters and return values of PL/SQL procedures and functions.
|
14
14
|
|
15
|
-
ruby-plsql supports Ruby
|
15
|
+
ruby-plsql supports Ruby 2.2, 2.3, 2.4, 2.5 (ruby-oci8 2.2.3+ is needed for Ruby 2.4) and JRuby 9.1 implementations.
|
16
16
|
|
17
17
|
USAGE
|
18
18
|
-----
|
@@ -135,15 +135,19 @@ or include gem in Gemfile if using bundler.
|
|
135
135
|
|
136
136
|
In addition install either ruby-oci8 (for MRI/YARV) or copy Oracle JDBC driver to $JRUBY_HOME/lib (for JRuby).
|
137
137
|
|
138
|
-
If you are using MRI
|
138
|
+
If you are using MRI Ruby implementation then you need to install ruby-oci8 gem (version 2.0.x or 2.1.x)
|
139
139
|
as well as Oracle client, e.g. [Oracle Instant Client](http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html).
|
140
140
|
|
141
|
-
If you are using JRuby then you need to download latest [Oracle JDBC driver](http://www.oracle.com/technetwork/database/enterprise-edition/jdbc-112010-090769.html) - either ojdbc6.jar for Java 6, 7, 8 or ojdbc5.jar for Java 5.
|
141
|
+
If you are using JRuby then you need to download latest [Oracle JDBC driver](http://www.oracle.com/technetwork/database/enterprise-edition/jdbc-112010-090769.html) - either ojdbc7.jar for Java 8 and 7, ojdbc6.jar for Java 6, 7, 8 or ojdbc5.jar for Java 5. You can refer [the support matrix](http://www.oracle.com/technetwork/database/enterprise-edition/jdbc-faq-090281.html#01_03) for details.
|
142
|
+
|
143
|
+
And copy this file to one of these locations. JDBC driver will be searched in this order:
|
142
144
|
|
143
|
-
* in `./lib` directory of Rails application and require it manually
|
144
|
-
* in some directory which is in `PATH`
|
145
145
|
* in `JRUBY_HOME/lib` directory
|
146
|
+
* in `./lib` directory of Rails application
|
146
147
|
* or include path to JDBC driver jar file in Java `CLASSPATH`
|
148
|
+
* in some directory which is in `PATH`
|
149
|
+
|
150
|
+
If you put multiple versions of JDBC driver in the same directory the higher version one will be used.
|
147
151
|
|
148
152
|
Make sure to setup the following Oracle-specific environment variables properly
|
149
153
|
|
data/Rakefile
CHANGED
@@ -1,5 +1,5 @@
|
|
1
|
-
require
|
2
|
-
require
|
1
|
+
require "rubygems"
|
2
|
+
require "bundler"
|
3
3
|
begin
|
4
4
|
Bundler.setup(:default, :development)
|
5
5
|
rescue Bundler::BundlerError => e
|
@@ -8,41 +8,46 @@ rescue Bundler::BundlerError => e
|
|
8
8
|
exit e.status_code
|
9
9
|
end
|
10
10
|
|
11
|
-
require
|
11
|
+
require "rake"
|
12
12
|
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
13
|
+
begin
|
14
|
+
require "juwelier"
|
15
|
+
Juwelier::Tasks.new do |gem|
|
16
|
+
gem.name = "ruby-plsql"
|
17
|
+
gem.summary = "Ruby API for calling Oracle PL/SQL procedures."
|
18
|
+
gem.description = <<-EOS
|
19
|
+
ruby-plsql gem provides simple Ruby API for calling Oracle PL/SQL procedures.
|
20
|
+
It could be used both for accessing Oracle PL/SQL API procedures in legacy applications
|
21
|
+
as well as it could be used to create PL/SQL unit tests using Ruby testing libraries.
|
22
|
+
EOS
|
23
|
+
gem.email = "raimonds.simanovskis@gmail.com"
|
24
|
+
gem.homepage = "http://github.com/rsim/ruby-plsql"
|
25
|
+
gem.license = "MIT".freeze
|
26
|
+
gem.authors = ["Raimonds Simanovskis"]
|
27
|
+
gem.extra_rdoc_files = ["README.md"]
|
28
|
+
end
|
29
|
+
Juwelier::RubygemsDotOrgTasks.new
|
30
|
+
rescue LoadError
|
31
|
+
# juwelier not installed
|
26
32
|
end
|
27
|
-
Jeweler::RubygemsDotOrgTasks.new
|
28
33
|
|
29
|
-
require
|
34
|
+
require "rspec/core/rake_task"
|
30
35
|
RSpec::Core::RakeTask.new(:spec)
|
31
36
|
|
32
37
|
desc "Code coverage detail"
|
33
38
|
task :simplecov do
|
34
|
-
ENV[
|
35
|
-
Rake::Task[
|
39
|
+
ENV["COVERAGE"] = "true"
|
40
|
+
Rake::Task["spec"].execute
|
36
41
|
end
|
37
42
|
|
38
|
-
task :
|
43
|
+
task default: :spec
|
39
44
|
|
40
|
-
require
|
45
|
+
require "rdoc/task"
|
41
46
|
Rake::RDocTask.new do |rdoc|
|
42
|
-
version = File.exist?(
|
47
|
+
version = File.exist?("VERSION") ? File.read("VERSION") : ""
|
43
48
|
|
44
|
-
rdoc.rdoc_dir =
|
49
|
+
rdoc.rdoc_dir = "doc"
|
45
50
|
rdoc.title = "ruby-plsql #{version}"
|
46
|
-
rdoc.rdoc_files.include(
|
47
|
-
rdoc.rdoc_files.include(
|
51
|
+
rdoc.rdoc_files.include("README*")
|
52
|
+
rdoc.rdoc_files.include("lib/**/*.rb")
|
48
53
|
end
|