oracle_raw 0.1.6 → 0.1.8
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.
- data/Gemfile +5 -6
- data/LICENSE.txt +159 -670
- data/README.md +93 -0
- data/Rakefile +2 -10
- data/VERSION +1 -1
- data/lib/oracle_raw.rb +37 -87
- data/test/test_oracle_raw.rb +28 -3
- metadata +90 -79
- data/README.rdoc +0 -55
data/README.md
ADDED
@@ -0,0 +1,93 @@
|
|
1
|
+
oracle_raw
|
2
|
+
==========
|
3
|
+
|
4
|
+
This is a library for interfacing with an Oracle Database. It uses ActiveRecord Oracle Enhanced adapter (https://github.com/rsim/oracle-enhanced) for connection pooling, but otherwise a raw Ruby-OCI8 connection (http://ruby-oci8.rubyforge.org/en/) is used.
|
5
|
+
|
6
|
+
Installation
|
7
|
+
============
|
8
|
+
|
9
|
+
```bash
|
10
|
+
gem install oracle_raw
|
11
|
+
```
|
12
|
+
|
13
|
+
Usage
|
14
|
+
=====
|
15
|
+
|
16
|
+
At the moment the following methods are implemented:
|
17
|
+
|
18
|
+
* `query`: a general querying method
|
19
|
+
* `with_connection`: a method taking a block as an argument; inside the block you can use a raw connection object to execute queries, updates etc.
|
20
|
+
|
21
|
+
Connect to a database and create a pool of five connections. Global options (see below) and pool size are not mandatory. Default pool size is 1.
|
22
|
+
|
23
|
+
```ruby
|
24
|
+
tnsnames = '(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SID = TEST)))'
|
25
|
+
schema = 'scott'
|
26
|
+
password = 'tiger'
|
27
|
+
connection_pool_size = 5
|
28
|
+
global_options = {}
|
29
|
+
|
30
|
+
db = OracleRaw.new(tnsnames, schema, password, connection_pool_size, global_options)
|
31
|
+
```
|
32
|
+
|
33
|
+
Get a connection from the pool and do something with it:
|
34
|
+
|
35
|
+
```ruby
|
36
|
+
db.with_connection { |c|
|
37
|
+
c.exec('create table names (id number, name varchar2(50))')
|
38
|
+
c.exec("insert into names (id, name) values (1, 'Paul')")
|
39
|
+
c.exec("insert into names (id, name) values (2, 'Maria')")
|
40
|
+
c.commit
|
41
|
+
}
|
42
|
+
```
|
43
|
+
|
44
|
+
Use query method (handles connection internally). Without parameters:
|
45
|
+
|
46
|
+
```ruby
|
47
|
+
db.query('select name from names')
|
48
|
+
=> {:data=>[["Paul"], ["Maria"]]}
|
49
|
+
```
|
50
|
+
|
51
|
+
Query with parameters:
|
52
|
+
|
53
|
+
```ruby
|
54
|
+
db.query('select name from names where id = :id', [[:id, 1, Integer]])
|
55
|
+
=> {:data=>[["Paul"]]}
|
56
|
+
```
|
57
|
+
|
58
|
+
Query with options: the behaviour of the query method can be controlled with the following options given to initializer, #query or both:
|
59
|
+
|
60
|
+
* `:metadata`: if `:all`, returns the number of items in the result set, column names in lower case, and the time and duration of the query. If `:none`, returns only the result set.
|
61
|
+
* `:item_format`: if `:hash`, query returns the result items as hashes. The default is `:array`, i.e. the items are arrays.
|
62
|
+
* `:amount`: if `:all_rows`, returns all rows. If `:first_row`, returns only the first row. If `:single_value`, returns only the first value of the first row. `:single_value` cannot be used if `:item_format` is `:hash`. Default is to return all rows.
|
63
|
+
|
64
|
+
Global options can be changed after initialization.
|
65
|
+
Options given to `query` override global options given to initializer (but not when the option value is nil).
|
66
|
+
|
67
|
+
```ruby
|
68
|
+
db.query('select name from names', nil, {:item_format => :hash})
|
69
|
+
=> {:data=>[{"NAME"=>"Paul"}, {"NAME"=>"Maria"}]}
|
70
|
+
|
71
|
+
db.query('select name from names', nil, {:item_format => :array})
|
72
|
+
=> {:data=>[["Paul"], ["Maria"]]}
|
73
|
+
|
74
|
+
db.query('select name from names', nil, {:metadata=>:plain})
|
75
|
+
=> [["Paul"], ["Maria"]]
|
76
|
+
|
77
|
+
db.query('select name from names', nil, {:metadata => :all})
|
78
|
+
=> {:count=>2, :columns=>["name"], :data=>[["Paul"], ["Maria"]], :date=>2012-09-17 15:53:46 +0300, :duration=>0.0016196}
|
79
|
+
|
80
|
+
db.query('select count(*) from names', nil, {:amount=>:single_value, :metadata=>:plain}).to_i
|
81
|
+
=> 2
|
82
|
+
```
|
83
|
+
|
84
|
+
Close the connection pool:
|
85
|
+
|
86
|
+
```ruby
|
87
|
+
db.close
|
88
|
+
```
|
89
|
+
|
90
|
+
Copyright
|
91
|
+
=========
|
92
|
+
|
93
|
+
Copyright (c) 2011 opiskelijarekisteri-devel. License: LGPLv3. See LICENSE.txt for further details.
|
data/Rakefile
CHANGED
@@ -16,7 +16,7 @@ Jeweler::Tasks.new do |gem|
|
|
16
16
|
# gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
|
17
17
|
gem.name = "oracle_raw"
|
18
18
|
gem.homepage = "http://github.com/opiskelijarekisteri-devel/oracle_raw"
|
19
|
-
gem.license = "
|
19
|
+
gem.license = "LGPLv3"
|
20
20
|
gem.summary = %Q{Ruby library for interfacing with an Oracle Database using pooled OCI8 raw connections.}
|
21
21
|
gem.description = %Q{This is a Ruby library for interfacing with an Oracle Database using pooled OCI8 raw connections (http://ruby-oci8.rubyforge.org/en/). Connection pooling is achieved by utilizing ActiveRecord Oracle Enhanced adapter (https://github.com/rsim/oracle-enhanced).}
|
22
22
|
gem.email = "opiskelijarekisteri-devel@helsinki.fi"
|
@@ -32,17 +32,9 @@ Rake::TestTask.new(:test) do |test|
|
|
32
32
|
test.verbose = true
|
33
33
|
end
|
34
34
|
|
35
|
-
require 'rcov/rcovtask'
|
36
|
-
Rcov::RcovTask.new do |test|
|
37
|
-
test.libs << 'test'
|
38
|
-
test.pattern = 'test/**/test_*.rb'
|
39
|
-
test.verbose = true
|
40
|
-
test.rcov_opts << '--exclude "gems/*"'
|
41
|
-
end
|
42
|
-
|
43
35
|
task :default => :test
|
44
36
|
|
45
|
-
require '
|
37
|
+
require 'rdoc/task'
|
46
38
|
Rake::RDocTask.new do |rdoc|
|
47
39
|
version = File.exist?('VERSION') ? File.read('VERSION') : ""
|
48
40
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.8
|
data/lib/oracle_raw.rb
CHANGED
@@ -1,8 +1,4 @@
|
|
1
1
|
# encoding: UTF-8
|
2
|
-
#
|
3
|
-
# Author:: opiskelijarekisteri-devel (mailto:opiskelijarekisteri-devel@helsinki.fi)
|
4
|
-
# Copyright:: Copyright (c) 2011 opiskelijarekisteri-devel
|
5
|
-
# License:: GNU General Public License, Version 3 (http://www.gnu.org/copyleft/gpl.txt)
|
6
2
|
|
7
3
|
require 'oci8'
|
8
4
|
|
@@ -35,60 +31,18 @@ require 'active_record'
|
|
35
31
|
# This is a Ruby library for interfacing with an Oracle Database using pooled OCI8 raw connections (http://ruby-oci8.rubyforge.org/en/).
|
36
32
|
# It uses ActiveRecord Oracle Enhanced adapter (https://github.com/rsim/oracle-enhanced) for connection pooling.
|
37
33
|
#
|
38
|
-
# At the moment the following methods are implemented:
|
39
|
-
# * #query: a general querying method
|
40
|
-
# * #with_connection: a method taking a block as an argument; inside the block you can use a raw connection object to execute queries, updates etc.
|
41
|
-
#
|
42
|
-
# The behaviour of the query method can be controlled with the following options given to initializer, #query or both:
|
43
|
-
# * +:metadata+: if +:all+, returns the number of items in the result set, column names in lower case, and the time and duration of the query. If +:none+, returns only the result set.
|
44
|
-
# * +:item_format+: if +:hash+, query returns the result items as hashes. The default is +:array+, i.e. the items are arrays.
|
45
|
-
# * +:amount+: if +:all_rows+, returns all rows. If +:first_row+, returns only the first row. If +:single_value+, returns only the first value of the first row. +:single_value+ cannot be used if +:item_format+ is +:hash+. Default is to return all rows.
|
46
|
-
#
|
47
|
-
# Global options can be changed after initialization.
|
48
|
-
# Options given to #query override global options given to initializer (but not when the option value is nil).
|
49
|
-
#
|
50
34
|
# == Installation
|
51
35
|
#
|
52
36
|
# <tt>gem install oracle_raw</tt>
|
53
37
|
#
|
54
38
|
# == Usage
|
55
39
|
#
|
56
|
-
#
|
57
|
-
#
|
58
|
-
# <tt>schema = 'scott'</tt>
|
59
|
-
#
|
60
|
-
# <tt>password = 'tiger'</tt>
|
61
|
-
#
|
62
|
-
# <tt>connection_pool_size = 5</tt>
|
63
|
-
#
|
64
|
-
# <tt>global_options = { :metadata => :all, :item_format => :hash, :amount => :first_row }</tt>
|
65
|
-
#
|
66
|
-
# <tt>db = OracleRaw.new(tnsnames, schema, password, connection_pool_size, global_options)</tt>
|
67
|
-
#
|
68
|
-
# <tt>students_sql = 'select * from students where last_name = :last_name' and first_name = :first_name</tt>
|
69
|
-
#
|
70
|
-
# <tt>last_name = 'Kruskal-Wallis'</tt>
|
71
|
-
#
|
72
|
-
# <tt>first_name = 'Lucy'</tt>
|
73
|
-
#
|
74
|
-
# <tt>result = db.query(students_sql, [[:last_name, last_name, String], [:first_name, first_name, String]])</tt>
|
75
|
-
#
|
76
|
-
# <tt>puts result[:rowcount]</tt>
|
77
|
-
#
|
78
|
-
# <tt>puts result[:duration]</tt>
|
79
|
-
#
|
80
|
-
# <tt>result = db.query(students_sql, [[:last_name, last_name, String, 50], [:first_name, first_name, String, 50]], { :metadata => :none, :item_format => :array })</tt>
|
81
|
-
#
|
82
|
-
# <tt>puts result[:data]</tt>
|
40
|
+
# Consult the README.
|
83
41
|
#
|
84
|
-
#
|
42
|
+
# == Additional information
|
85
43
|
#
|
86
|
-
# <tt>puts db.query(sysdate_sql, nil, { :metadata => :none, :amount => :single_value})[:data]</tt>
|
87
|
-
#
|
88
|
-
# <tt>puts db.with_connection { |c| (c.exec(sysdate_sql).fetch)[0] }</tt>
|
89
|
-
#
|
90
|
-
#--
|
91
44
|
# ActiveRecord and ConnectionPool documentation:
|
45
|
+
#
|
92
46
|
# * http://ar.rubyonrails.org/
|
93
47
|
# * http://api.rubyonrails.org/classes/ActiveRecord/ConnectionAdapters/ConnectionPool.html
|
94
48
|
|
@@ -123,58 +77,54 @@ class OracleRaw
|
|
123
77
|
ActiveRecord::Base.connection_pool.with_connection { |conn| yield conn.raw_connection }
|
124
78
|
end
|
125
79
|
|
126
|
-
# Depending whether the +:metadata+ option is +:
|
80
|
+
# Depending whether the +:metadata+ option is +:none+ or +:all+, returns either a plain result set or a map of the following kind:
|
127
81
|
#
|
128
82
|
# <tt>{ :count => rowcount, :columns => colnames, :data => data, :date => date, :duration => duration }</tt>
|
129
|
-
#
|
130
|
-
# <tt>{ :data => data }</tt>
|
131
83
|
#
|
132
|
-
#
|
84
|
+
# Exception are propagated to the caller.
|
133
85
|
|
134
86
|
def query(sqlquery, parameters = [], options = {})
|
135
87
|
|
136
|
-
|
137
|
-
with_connection { |conn|
|
88
|
+
with_connection { |conn|
|
138
89
|
|
139
|
-
|
90
|
+
starttime = Time.new; data = []
|
140
91
|
|
141
|
-
|
142
|
-
|
143
|
-
|
92
|
+
cursor = conn.parse(sqlquery)
|
93
|
+
cursor.bind_parameters(parameters) if parameters
|
94
|
+
cursor.exec_with_prefetch(5000)
|
144
95
|
|
145
|
-
|
96
|
+
case options[:item_format] || @global_options[:item_format]
|
146
97
|
|
147
|
-
|
98
|
+
when :hash then
|
148
99
|
|
149
|
-
|
100
|
+
case options[:amount] || @global_options[:amount]
|
150
101
|
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
102
|
+
when :first_row then data = cursor.fetch_hash()
|
103
|
+
else while r = cursor.fetch_hash(); data << r; end
|
104
|
+
end
|
105
|
+
else
|
106
|
+
case options[:amount] || @global_options[:amount]
|
156
107
|
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
108
|
+
when :single_value then temp = cursor.fetch(); data = (temp ? temp[0] : nil)
|
109
|
+
when :first_row then data = cursor.fetch()
|
110
|
+
else while r = cursor.fetch(); data << r; end
|
111
|
+
end
|
112
|
+
end
|
162
113
|
|
163
|
-
|
114
|
+
case options[:metadata] || @global_options[:metadata]
|
164
115
|
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
116
|
+
when :all then
|
117
|
+
colnames = cursor.get_col_names.each do |n| n.downcase! end
|
118
|
+
rowcount = cursor.row_count
|
119
|
+
cursor.close
|
120
|
+
{:count => rowcount, :columns => colnames, :data => data, :date => starttime, :duration => Time.new - starttime}
|
121
|
+
when :plain then
|
122
|
+
cursor.close
|
123
|
+
data
|
124
|
+
else
|
125
|
+
cursor.close
|
126
|
+
{:data => data}
|
127
|
+
end
|
128
|
+
}
|
178
129
|
end
|
179
130
|
end
|
180
|
-
|
data/test/test_oracle_raw.rb
CHANGED
@@ -36,7 +36,8 @@ class TestOracleRaw < Test::Unit::TestCase
|
|
36
36
|
c.exec("insert into oracle_raw_test (name, age) values ('Lucia', 25)")
|
37
37
|
|
38
38
|
cursor = c.parse('insert into oracle_raw_test (name, age) values (:name, :age)')
|
39
|
-
cursor.
|
39
|
+
cursor.bind_param(:name, 'Kinnie', String)
|
40
|
+
cursor.bind_param(:age, 30, Integer)
|
40
41
|
cursor.exec
|
41
42
|
cursor.close
|
42
43
|
|
@@ -67,7 +68,7 @@ class TestOracleRaw < Test::Unit::TestCase
|
|
67
68
|
start = Time.new; num_calls = 1000
|
68
69
|
num_calls.times do
|
69
70
|
result = db.query('select 1 from dual')
|
70
|
-
puts result[:exception].backtrace if result[:exception]
|
71
|
+
#puts result[:exception].backtrace if result[:exception]
|
71
72
|
assert_equal(result[:exception], nil)
|
72
73
|
end
|
73
74
|
puts "\nSpeed test: pooled: #{num_calls/(Time.new - start)} calls/second.\n"
|
@@ -106,5 +107,29 @@ puts result[:exception].backtrace if result[:exception]
|
|
106
107
|
assert(/ORA-00942/ =~ result[:exception].message)
|
107
108
|
db.close
|
108
109
|
end
|
109
|
-
end
|
110
110
|
|
111
|
+
def test_bind
|
112
|
+
db = connect
|
113
|
+
id = 10
|
114
|
+
lastname = 'Kruskal-Wallis'
|
115
|
+
q = "select * from students where id = :id"
|
116
|
+
|
117
|
+
db.with_connection { |c|
|
118
|
+
|
119
|
+
cursor = c.parse(q)
|
120
|
+
|
121
|
+
# these should work and do work
|
122
|
+
cursor.bind_param(':id', id, Fixnum)
|
123
|
+
|
124
|
+
# these should not work and do not work
|
125
|
+
cursor.bind_param(':id', lastname, Fixnum) # TypeError; ok
|
126
|
+
assert(/ORA-00942/ =~ result[:exception].message)
|
127
|
+
cursor.bind_param(':lastname', lastname, String) # OCIError; ok
|
128
|
+
assert(/ORA-00942/ =~ result[:exception].message)
|
129
|
+
|
130
|
+
cursor.close
|
131
|
+
}
|
132
|
+
db.close # clear connection pool
|
133
|
+
true
|
134
|
+
end
|
135
|
+
end
|
metadata
CHANGED
@@ -1,131 +1,142 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: oracle_raw
|
3
|
-
version: !ruby/object:Gem::Version
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.8
|
4
5
|
prerelease:
|
5
|
-
version: 0.1.6
|
6
6
|
platform: ruby
|
7
|
-
authors:
|
7
|
+
authors:
|
8
8
|
- opiskelijarekisteri-devel
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2012-09-17 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
16
15
|
name: ruby-oci8
|
17
|
-
requirement:
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
18
17
|
none: false
|
19
|
-
requirements:
|
20
|
-
- -
|
21
|
-
- !ruby/object:Gem::Version
|
22
|
-
version: 2.
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: 2.1.2
|
23
22
|
type: :runtime
|
24
23
|
prerelease: false
|
25
|
-
version_requirements:
|
26
|
-
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 2.1.2
|
30
|
+
- !ruby/object:Gem::Dependency
|
27
31
|
name: activerecord
|
28
|
-
requirement:
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
29
33
|
none: false
|
30
|
-
requirements:
|
31
|
-
- -
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: 3.
|
34
|
+
requirements:
|
35
|
+
- - ! '>='
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: 3.2.8
|
34
38
|
type: :runtime
|
35
39
|
prerelease: false
|
36
|
-
version_requirements:
|
37
|
-
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: 3.2.8
|
46
|
+
- !ruby/object:Gem::Dependency
|
38
47
|
name: activerecord-oracle_enhanced-adapter
|
39
|
-
requirement:
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
40
49
|
none: false
|
41
|
-
requirements:
|
42
|
-
- -
|
43
|
-
- !ruby/object:Gem::Version
|
44
|
-
version: 1.4.
|
50
|
+
requirements:
|
51
|
+
- - ! '>='
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: 1.4.1
|
45
54
|
type: :runtime
|
46
55
|
prerelease: false
|
47
|
-
version_requirements:
|
48
|
-
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ! '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 1.4.1
|
62
|
+
- !ruby/object:Gem::Dependency
|
49
63
|
name: bundler
|
50
|
-
requirement:
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
51
65
|
none: false
|
52
|
-
requirements:
|
53
|
-
- -
|
54
|
-
- !ruby/object:Gem::Version
|
55
|
-
version: 1.
|
66
|
+
requirements:
|
67
|
+
- - ! '>='
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: 1.1.5
|
56
70
|
type: :development
|
57
71
|
prerelease: false
|
58
|
-
version_requirements:
|
59
|
-
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ! '>='
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: 1.1.5
|
78
|
+
- !ruby/object:Gem::Dependency
|
60
79
|
name: jeweler
|
61
|
-
requirement:
|
80
|
+
requirement: !ruby/object:Gem::Requirement
|
62
81
|
none: false
|
63
|
-
requirements:
|
64
|
-
- -
|
65
|
-
- !ruby/object:Gem::Version
|
66
|
-
version: 1.
|
82
|
+
requirements:
|
83
|
+
- - ! '>='
|
84
|
+
- !ruby/object:Gem::Version
|
85
|
+
version: 1.8.4
|
67
86
|
type: :development
|
68
87
|
prerelease: false
|
69
|
-
version_requirements:
|
70
|
-
- !ruby/object:Gem::Dependency
|
71
|
-
name: rcov
|
72
|
-
requirement: &id006 !ruby/object:Gem::Requirement
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
89
|
none: false
|
74
|
-
requirements:
|
75
|
-
- -
|
76
|
-
- !ruby/object:Gem::Version
|
77
|
-
version:
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
description: This is a Ruby library for interfacing with an Oracle Database using pooled OCI8 raw connections (http://ruby-oci8.rubyforge.org/en/). Connection pooling is achieved by utilizing ActiveRecord Oracle Enhanced adapter (https://github.com/rsim/oracle-enhanced).
|
90
|
+
requirements:
|
91
|
+
- - ! '>='
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: 1.8.4
|
94
|
+
description: This is a Ruby library for interfacing with an Oracle Database using
|
95
|
+
pooled OCI8 raw connections (http://ruby-oci8.rubyforge.org/en/). Connection pooling
|
96
|
+
is achieved by utilizing ActiveRecord Oracle Enhanced adapter (https://github.com/rsim/oracle-enhanced).
|
82
97
|
email: opiskelijarekisteri-devel@helsinki.fi
|
83
98
|
executables: []
|
84
|
-
|
85
99
|
extensions: []
|
86
|
-
|
87
|
-
extra_rdoc_files:
|
100
|
+
extra_rdoc_files:
|
88
101
|
- LICENSE.txt
|
89
|
-
- README.
|
90
|
-
files:
|
102
|
+
- README.md
|
103
|
+
files:
|
91
104
|
- .document
|
92
105
|
- Gemfile
|
93
106
|
- LICENSE.txt
|
94
|
-
- README.
|
107
|
+
- README.md
|
95
108
|
- Rakefile
|
96
109
|
- VERSION
|
97
110
|
- lib/oracle_raw.rb
|
98
111
|
- test/helper.rb
|
99
112
|
- test/test_oracle_raw.rb
|
100
113
|
homepage: http://github.com/opiskelijarekisteri-devel/oracle_raw
|
101
|
-
licenses:
|
102
|
-
-
|
114
|
+
licenses:
|
115
|
+
- LGPLv3
|
103
116
|
post_install_message:
|
104
117
|
rdoc_options: []
|
105
|
-
|
106
|
-
require_paths:
|
118
|
+
require_paths:
|
107
119
|
- lib
|
108
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
120
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
109
121
|
none: false
|
110
|
-
requirements:
|
111
|
-
- -
|
112
|
-
- !ruby/object:Gem::Version
|
113
|
-
|
114
|
-
segments:
|
122
|
+
requirements:
|
123
|
+
- - ! '>='
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: '0'
|
126
|
+
segments:
|
115
127
|
- 0
|
116
|
-
|
117
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
128
|
+
hash: 2071649133811204594
|
129
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
118
130
|
none: false
|
119
|
-
requirements:
|
120
|
-
- -
|
121
|
-
- !ruby/object:Gem::Version
|
122
|
-
version:
|
131
|
+
requirements:
|
132
|
+
- - ! '>='
|
133
|
+
- !ruby/object:Gem::Version
|
134
|
+
version: '0'
|
123
135
|
requirements: []
|
124
|
-
|
125
136
|
rubyforge_project:
|
126
|
-
rubygems_version: 1.8.
|
137
|
+
rubygems_version: 1.8.23
|
127
138
|
signing_key:
|
128
139
|
specification_version: 3
|
129
|
-
summary: Ruby library for interfacing with an Oracle Database using pooled OCI8 raw
|
140
|
+
summary: Ruby library for interfacing with an Oracle Database using pooled OCI8 raw
|
141
|
+
connections.
|
130
142
|
test_files: []
|
131
|
-
|