oci8_simple 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.document +5 -0
- data/Gemfile +7 -0
- data/Gemfile.lock +19 -0
- data/LICENSE.txt +20 -0
- data/README.rdoc +67 -0
- data/Rakefile +46 -0
- data/VERSION +1 -0
- data/lib/oci8_simple.rb +143 -0
- data/oci8_simple.gemspec +67 -0
- data/test/helper.rb +18 -0
- data/test/test_oci8_simple.rb +53 -0
- metadata +158 -0
data/.document
ADDED
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
GEM
|
2
|
+
specs:
|
3
|
+
git (1.2.5)
|
4
|
+
jeweler (1.5.2)
|
5
|
+
bundler (~> 1.0.0)
|
6
|
+
git (>= 1.2.5)
|
7
|
+
rake
|
8
|
+
rake (0.8.7)
|
9
|
+
ruby-oci8 (2.0.4)
|
10
|
+
shoulda (2.10.1)
|
11
|
+
|
12
|
+
PLATFORMS
|
13
|
+
ruby
|
14
|
+
|
15
|
+
DEPENDENCIES
|
16
|
+
bundler (~> 1.0.0)
|
17
|
+
jeweler (~> 1.5.2)
|
18
|
+
ruby-oci8 (~> 2.0.4)
|
19
|
+
shoulda
|
data/LICENSE.txt
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright (c) 2011 Billy Reisinger
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.rdoc
ADDED
@@ -0,0 +1,67 @@
|
|
1
|
+
= oci8_simple
|
2
|
+
|
3
|
+
Run single statements against an arbitrary Oracle schema. This client is intended to be used by simple
|
4
|
+
command-line scripts to aid automation. This is *not* meant to replace an ORM such as ActiveRecord + OracleEnhancedAdapter.
|
5
|
+
The only prerequisite to running this code is that you have installed the ruby-oci8 gem on your machine.
|
6
|
+
|
7
|
+
== Installation
|
8
|
+
[sudo] gem install oci8-simple
|
9
|
+
|
10
|
+
== Configuration
|
11
|
+
To configure environments and schema settings, edit the
|
12
|
+
database.yml file in ~/.oci8_simple/
|
13
|
+
development:
|
14
|
+
database: oracle.hostname:1521/sid
|
15
|
+
username: foo_dev
|
16
|
+
password: OMG333
|
17
|
+
test:
|
18
|
+
database: oracle.hostname:1521/sid
|
19
|
+
username: foo_test
|
20
|
+
password: OMG333
|
21
|
+
|
22
|
+
== Logging
|
23
|
+
All logging is done to ~/.oci8_simple/oci8_simple.log
|
24
|
+
|
25
|
+
== Examples
|
26
|
+
* Initialize a client against the development schema
|
27
|
+
client = Oci8Simple.new
|
28
|
+
* Run a simple select query against development schema
|
29
|
+
client.run('select id, name from foos') => [[2, "lol"], [3, "hey"], ...]
|
30
|
+
* Run a simple select query against stage schema
|
31
|
+
Oci8Simple.new("stage").run('select id, name from foos') => [[2, "lol"], [3, "hey"], ...]
|
32
|
+
* Update something
|
33
|
+
client.run <<-SQL
|
34
|
+
UPDATE foos SET bar='baz' WHERE id=1233
|
35
|
+
SQL
|
36
|
+
* Run some DDL
|
37
|
+
client.run <<-SQL
|
38
|
+
CREATE TABLE foos (
|
39
|
+
ID NUMBER(38) NOT NULL
|
40
|
+
)
|
41
|
+
SQL
|
42
|
+
* Run some PL/SQL
|
43
|
+
client.run <<-SQL
|
44
|
+
DECLARE
|
45
|
+
a NUMBER;
|
46
|
+
b NUMBER;
|
47
|
+
BEGIN
|
48
|
+
SELECT e,f INTO a,b FROM T1 WHERE e>1;
|
49
|
+
INSERT INTO T1 VALUES(b,a);
|
50
|
+
END;
|
51
|
+
SQL
|
52
|
+
|
53
|
+
== Contributing to oci8_simple
|
54
|
+
|
55
|
+
* Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet
|
56
|
+
* Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it
|
57
|
+
* Fork the project
|
58
|
+
* Start a feature/bugfix branch
|
59
|
+
* Commit and push until you are happy with your contribution
|
60
|
+
* Make sure to add tests for it. This is important so I don't break it in a future version unintentionally.
|
61
|
+
* Please try not to mess with the Rakefile, version, or history. If you want to have your own version, or is otherwise necessary, that is fine, but please isolate to its own commit so I can cherry-pick around it.
|
62
|
+
|
63
|
+
== Copyright
|
64
|
+
|
65
|
+
Copyright (c) 2011 Billy Reisinger. See LICENSE.txt for
|
66
|
+
further details.
|
67
|
+
|
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
|
+
require 'rake'
|
11
|
+
|
12
|
+
require 'jeweler'
|
13
|
+
Jeweler::Tasks.new do |gem|
|
14
|
+
# gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
|
15
|
+
gem.name = "oci8_simple"
|
16
|
+
gem.homepage = "http://github.com/unclebilly/oci8_simple"
|
17
|
+
gem.license = "MIT"
|
18
|
+
gem.summary = %Q{Run single statements against an arbitrary Oracle schema.}
|
19
|
+
gem.description = %Q{Run single statements against an arbitrary Oracle schema. This client is intended to be used by simple
|
20
|
+
command-line scripts to aid automation. This is *not* meant to replace an ORM such as ActiveRecord + OracleEnhancedAdapter.
|
21
|
+
The only prerequisite to running this code is that you have installed the ruby-oci8 gem on your machine.}
|
22
|
+
gem.email = "billy.reisinger@gmail.com"
|
23
|
+
gem.authors = ["Billy Reisinger"]
|
24
|
+
gem.add_dependency "ruby-oci8", "~> 2.0.4"
|
25
|
+
gem.extra_rdoc_files = ['README.rdoc']
|
26
|
+
end
|
27
|
+
Jeweler::RubygemsDotOrgTasks.new
|
28
|
+
|
29
|
+
require 'rake/testtask'
|
30
|
+
Rake::TestTask.new(:test) do |test|
|
31
|
+
test.libs << 'lib' << 'test'
|
32
|
+
test.pattern = 'test/**/test_*.rb'
|
33
|
+
test.verbose = true
|
34
|
+
end
|
35
|
+
|
36
|
+
task :default => :test
|
37
|
+
|
38
|
+
require 'rake/rdoctask'
|
39
|
+
Rake::RDocTask.new do |rdoc|
|
40
|
+
version = File.exist?('VERSION') ? File.read('VERSION') : ""
|
41
|
+
|
42
|
+
rdoc.rdoc_dir = 'rdoc'
|
43
|
+
rdoc.title = "oci8_simple #{version}"
|
44
|
+
rdoc.rdoc_files.include('README*')
|
45
|
+
rdoc.rdoc_files.include('lib/**/*.rb')
|
46
|
+
end
|
data/VERSION
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
0.1.0
|
data/lib/oci8_simple.rb
ADDED
@@ -0,0 +1,143 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'rubygems'
|
4
|
+
gem 'ruby-oci8'
|
5
|
+
require 'oci8'
|
6
|
+
require 'pp'
|
7
|
+
require 'bigdecimal'
|
8
|
+
require 'yaml'
|
9
|
+
|
10
|
+
# Run single statements against an arbitrary Oracle schema. This client is intended to be used by simple
|
11
|
+
# command-line scripts to aid automation. This is *not* meant to replace an ORM such as ActiveRecord + OracleEnhancedAdapter.
|
12
|
+
# The only prerequisite to running this code is that you have installed the ruby-oci8 gem on your machine.
|
13
|
+
#
|
14
|
+
# == Installation
|
15
|
+
# [sudo] gem install oci8-simple
|
16
|
+
#
|
17
|
+
# == Configuration
|
18
|
+
# To configure environments and schema settings, edit the
|
19
|
+
# database.yml file in ~/.oci8_simple/
|
20
|
+
# development:
|
21
|
+
# database: oracle.hostname:1521/sid
|
22
|
+
# username: foo_dev
|
23
|
+
# password: OMG333
|
24
|
+
# test:
|
25
|
+
# database: oracle.hostname:1521/sid
|
26
|
+
# username: foo_test
|
27
|
+
# password: OMG333
|
28
|
+
#
|
29
|
+
# == Logging
|
30
|
+
# All logging is done to ~/.oci8_simple/oci8_simple.log
|
31
|
+
#
|
32
|
+
# == Examples
|
33
|
+
# * Initialize a client against the development schema
|
34
|
+
# client = Oci8Simple.new
|
35
|
+
# * Run a simple select query against development schema
|
36
|
+
# client.run('select id, name from foos') => [[2, "lol"], [3, "hey"], ...]
|
37
|
+
# * Run a simple select query against stage schema
|
38
|
+
# Oci8Simple.new("stage").run('select id, name from foos') => [[2, "lol"], [3, "hey"], ...]
|
39
|
+
# * Update something
|
40
|
+
# client.run <<-SQL
|
41
|
+
# UPDATE foos SET bar='baz' WHERE id=1233
|
42
|
+
# SQL
|
43
|
+
# * Run some DDL
|
44
|
+
# client.run <<-SQL
|
45
|
+
# CREATE TABLE foos (
|
46
|
+
# ID NUMBER(38) NOT NULL
|
47
|
+
# )
|
48
|
+
# SQL
|
49
|
+
# * Run some PL/SQL
|
50
|
+
# client.run <<-SQL
|
51
|
+
# DECLARE
|
52
|
+
# a NUMBER;
|
53
|
+
# b NUMBER;
|
54
|
+
# BEGIN
|
55
|
+
# SELECT e,f INTO a,b FROM T1 WHERE e>1;
|
56
|
+
# INSERT INTO T1 VALUES(b,a);
|
57
|
+
# END;
|
58
|
+
# SQL
|
59
|
+
class Oci8Simple
|
60
|
+
USER_DIR = File.join(ENV["HOME"], ".oci8_simple")
|
61
|
+
CONFIG_FILE = File.join(USER_DIR, "database.yml")
|
62
|
+
LOG_FILE = File.join(USER_DIR, "oci8_simple.log")
|
63
|
+
|
64
|
+
attr_accessor :log_file, :puts_mode
|
65
|
+
|
66
|
+
# * env is the environment heading in your database.yml file
|
67
|
+
# * uname is the username you want to use (defaults to config["username"])
|
68
|
+
# * puts_mode is whether you want to format the result for printing to a terminal (defaults to false)
|
69
|
+
def initialize(env, uname=nil, puts_mode=false)
|
70
|
+
@env = env
|
71
|
+
@uname = uname
|
72
|
+
@puts_mode = puts_mode
|
73
|
+
conn.autocommit = true
|
74
|
+
end
|
75
|
+
|
76
|
+
def log_file
|
77
|
+
@log_file ||= File.open(LOG_FILE, 'a')
|
78
|
+
end
|
79
|
+
|
80
|
+
def run(sql)
|
81
|
+
log(sql)
|
82
|
+
result = []
|
83
|
+
conn.exec(sql) do |r|
|
84
|
+
row = []
|
85
|
+
r.map do |col|
|
86
|
+
if col.class == BigDecimal
|
87
|
+
row << col.to_i
|
88
|
+
elsif col.class == OCI8::CLOB
|
89
|
+
row << col.read
|
90
|
+
else
|
91
|
+
row << col.to_s
|
92
|
+
end
|
93
|
+
end
|
94
|
+
result << row
|
95
|
+
end
|
96
|
+
|
97
|
+
if @puts_mode
|
98
|
+
result.map{|row| row.join(", ")}.join("\n")
|
99
|
+
else
|
100
|
+
if(result.length == 1 && result[0].length == 1)
|
101
|
+
result[0][0]
|
102
|
+
else
|
103
|
+
result
|
104
|
+
end
|
105
|
+
end
|
106
|
+
end
|
107
|
+
|
108
|
+
def config
|
109
|
+
@config ||= YAML.load_file(CONFIG_FILE)[@env]
|
110
|
+
end
|
111
|
+
|
112
|
+
private
|
113
|
+
def conn
|
114
|
+
@o ||= OCI8.new(@uname || config["username"], config["password"], config["database"])
|
115
|
+
end
|
116
|
+
|
117
|
+
def log(str)
|
118
|
+
log_file.puts "#{Time.now} - #{@env} - #{str}"
|
119
|
+
end
|
120
|
+
|
121
|
+
def self.help
|
122
|
+
<<-HELP
|
123
|
+
Run arbitrary SQL against an Oracle schema. The default schema is the one defined
|
124
|
+
in the development section of your ~/.oci8_simple/database.yml file.
|
125
|
+
|
126
|
+
You do not need to include a semicolon to end a statement. The statement should be enclosed in single
|
127
|
+
or double quotes.
|
128
|
+
|
129
|
+
Usage: #{$0} SQL [ENV]
|
130
|
+
Example: #{$0} 'select id from users' stage
|
131
|
+
HELP
|
132
|
+
end
|
133
|
+
end
|
134
|
+
|
135
|
+
if __FILE__ == $0
|
136
|
+
if(["-h", "--help"].include?(ARGV[0]) || ARGV.empty?)
|
137
|
+
Oci8Simple.help
|
138
|
+
else
|
139
|
+
sql = ARGV[0] || ""
|
140
|
+
env = ARGV[1] || "development"
|
141
|
+
Oci8Simple.new(env).run(sql)
|
142
|
+
end
|
143
|
+
end
|
data/oci8_simple.gemspec
ADDED
@@ -0,0 +1,67 @@
|
|
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{oci8_simple}
|
8
|
+
s.version = "0.1.0"
|
9
|
+
|
10
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
+
s.authors = ["Billy Reisinger"]
|
12
|
+
s.date = %q{2011-05-12}
|
13
|
+
s.description = %q{Run single statements against an arbitrary Oracle schema. This client is intended to be used by simple
|
14
|
+
command-line scripts to aid automation. This is *not* meant to replace an ORM such as ActiveRecord + OracleEnhancedAdapter.
|
15
|
+
The only prerequisite to running this code is that you have installed the ruby-oci8 gem on your machine.}
|
16
|
+
s.email = %q{billy.reisinger@gmail.com}
|
17
|
+
s.extra_rdoc_files = [
|
18
|
+
"README.rdoc"
|
19
|
+
]
|
20
|
+
s.files = [
|
21
|
+
".document",
|
22
|
+
"Gemfile",
|
23
|
+
"Gemfile.lock",
|
24
|
+
"LICENSE.txt",
|
25
|
+
"README.rdoc",
|
26
|
+
"Rakefile",
|
27
|
+
"VERSION",
|
28
|
+
"lib/oci8_simple.rb",
|
29
|
+
"oci8_simple.gemspec",
|
30
|
+
"test/helper.rb",
|
31
|
+
"test/test_oci8_simple.rb"
|
32
|
+
]
|
33
|
+
s.homepage = %q{http://github.com/unclebilly/oci8_simple}
|
34
|
+
s.licenses = ["MIT"]
|
35
|
+
s.require_paths = ["lib"]
|
36
|
+
s.rubygems_version = %q{1.5.2}
|
37
|
+
s.summary = %q{Run single statements against an arbitrary Oracle schema.}
|
38
|
+
s.test_files = [
|
39
|
+
"test/helper.rb",
|
40
|
+
"test/test_oci8_simple.rb"
|
41
|
+
]
|
42
|
+
|
43
|
+
if s.respond_to? :specification_version then
|
44
|
+
s.specification_version = 3
|
45
|
+
|
46
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
47
|
+
s.add_runtime_dependency(%q<ruby-oci8>, ["~> 2.0.4"])
|
48
|
+
s.add_development_dependency(%q<shoulda>, [">= 0"])
|
49
|
+
s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
|
50
|
+
s.add_development_dependency(%q<jeweler>, ["~> 1.5.2"])
|
51
|
+
s.add_runtime_dependency(%q<ruby-oci8>, ["~> 2.0.4"])
|
52
|
+
else
|
53
|
+
s.add_dependency(%q<ruby-oci8>, ["~> 2.0.4"])
|
54
|
+
s.add_dependency(%q<shoulda>, [">= 0"])
|
55
|
+
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
56
|
+
s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
|
57
|
+
s.add_dependency(%q<ruby-oci8>, ["~> 2.0.4"])
|
58
|
+
end
|
59
|
+
else
|
60
|
+
s.add_dependency(%q<ruby-oci8>, ["~> 2.0.4"])
|
61
|
+
s.add_dependency(%q<shoulda>, [">= 0"])
|
62
|
+
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
63
|
+
s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
|
64
|
+
s.add_dependency(%q<ruby-oci8>, ["~> 2.0.4"])
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
data/test/helper.rb
ADDED
@@ -0,0 +1,18 @@
|
|
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
|
+
require 'test/unit'
|
11
|
+
require 'shoulda'
|
12
|
+
|
13
|
+
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
14
|
+
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
15
|
+
require 'oci8_simple'
|
16
|
+
|
17
|
+
class Test::Unit::TestCase
|
18
|
+
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
require 'helper'
|
2
|
+
|
3
|
+
class TestOci8Simple < Test::Unit::TestCase
|
4
|
+
context "Given a table" do
|
5
|
+
setup do
|
6
|
+
@client = Oci8Simple.new("test", nil, false)
|
7
|
+
@client.run "DROP TABLE OCI8_SIMPLE_TEST CASCADE CONSTRAINTS" rescue nil
|
8
|
+
@client.run <<-SQL
|
9
|
+
CREATE TABLE "OCI8_SIMPLE_TEST"
|
10
|
+
(
|
11
|
+
"ID" NUMBER(38,0) NOT NULL ENABLE,
|
12
|
+
"NAME" VARCHAR2(400 CHAR) NOT NULL ENABLE,
|
13
|
+
"TEXTS" CLOB
|
14
|
+
)
|
15
|
+
SQL
|
16
|
+
@client.run <<-SQL
|
17
|
+
INSERT INTO OCI8_SIMPLE_TEST (ID, NAME, TEXTS) VALUES (1, 'Johnny', 'OMG')
|
18
|
+
SQL
|
19
|
+
@client.run <<-SQL
|
20
|
+
INSERT INTO OCI8_SIMPLE_TEST (ID, NAME, TEXTS) VALUES (2, 'Jenny', 'OMG')
|
21
|
+
SQL
|
22
|
+
end
|
23
|
+
context "when puts mode is false the client" do
|
24
|
+
setup do
|
25
|
+
end
|
26
|
+
should "be able to run a simple query with a single result" do
|
27
|
+
assert_equal 2, @client.run("select count(*) from OCI8_SIMPLE_TEST")
|
28
|
+
end
|
29
|
+
should "be able to run a simple query with multiple results and multiple columns" do
|
30
|
+
assert_equal [["1", "Johnny", "OMG"], ["2", "Jenny", "OMG"]], @client.run("select * from OCI8_SIMPLE_TEST")
|
31
|
+
end
|
32
|
+
|
33
|
+
should "have logged something" do
|
34
|
+
File.unlink(Oci8Simple::LOG_FILE)
|
35
|
+
assert(!File.exists?(Oci8Simple::LOG_FILE))
|
36
|
+
@client = Oci8Simple.new("test", nil, false)
|
37
|
+
@client.run "select NULL from dual"
|
38
|
+
@client.log_file.close
|
39
|
+
assert(File.exists?(Oci8Simple::LOG_FILE))
|
40
|
+
assert(!(0 == File.size(Oci8Simple::LOG_FILE)))
|
41
|
+
end
|
42
|
+
end
|
43
|
+
context "when puts mode is true the client" do
|
44
|
+
setup do
|
45
|
+
@client.puts_mode = true
|
46
|
+
end
|
47
|
+
should "format result" do
|
48
|
+
result = @client.run("select * from OCI8_SIMPLE_TEST")
|
49
|
+
assert_equal "1, Johnny, OMG\n2, Jenny, OMG", result
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
metadata
ADDED
@@ -0,0 +1,158 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: oci8_simple
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 27
|
5
|
+
prerelease:
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 1
|
9
|
+
- 0
|
10
|
+
version: 0.1.0
|
11
|
+
platform: ruby
|
12
|
+
authors:
|
13
|
+
- Billy Reisinger
|
14
|
+
autorequire:
|
15
|
+
bindir: bin
|
16
|
+
cert_chain: []
|
17
|
+
|
18
|
+
date: 2011-05-12 00:00:00 -05:00
|
19
|
+
default_executable:
|
20
|
+
dependencies:
|
21
|
+
- !ruby/object:Gem::Dependency
|
22
|
+
name: ruby-oci8
|
23
|
+
version_requirements: &id001 !ruby/object:Gem::Requirement
|
24
|
+
none: false
|
25
|
+
requirements:
|
26
|
+
- - ~>
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
hash: 7
|
29
|
+
segments:
|
30
|
+
- 2
|
31
|
+
- 0
|
32
|
+
- 4
|
33
|
+
version: 2.0.4
|
34
|
+
prerelease: false
|
35
|
+
type: :runtime
|
36
|
+
requirement: *id001
|
37
|
+
- !ruby/object:Gem::Dependency
|
38
|
+
name: shoulda
|
39
|
+
version_requirements: &id002 !ruby/object:Gem::Requirement
|
40
|
+
none: false
|
41
|
+
requirements:
|
42
|
+
- - ">="
|
43
|
+
- !ruby/object:Gem::Version
|
44
|
+
hash: 3
|
45
|
+
segments:
|
46
|
+
- 0
|
47
|
+
version: "0"
|
48
|
+
prerelease: false
|
49
|
+
type: :development
|
50
|
+
requirement: *id002
|
51
|
+
- !ruby/object:Gem::Dependency
|
52
|
+
name: bundler
|
53
|
+
version_requirements: &id003 !ruby/object:Gem::Requirement
|
54
|
+
none: false
|
55
|
+
requirements:
|
56
|
+
- - ~>
|
57
|
+
- !ruby/object:Gem::Version
|
58
|
+
hash: 23
|
59
|
+
segments:
|
60
|
+
- 1
|
61
|
+
- 0
|
62
|
+
- 0
|
63
|
+
version: 1.0.0
|
64
|
+
prerelease: false
|
65
|
+
type: :development
|
66
|
+
requirement: *id003
|
67
|
+
- !ruby/object:Gem::Dependency
|
68
|
+
name: jeweler
|
69
|
+
version_requirements: &id004 !ruby/object:Gem::Requirement
|
70
|
+
none: false
|
71
|
+
requirements:
|
72
|
+
- - ~>
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
hash: 7
|
75
|
+
segments:
|
76
|
+
- 1
|
77
|
+
- 5
|
78
|
+
- 2
|
79
|
+
version: 1.5.2
|
80
|
+
prerelease: false
|
81
|
+
type: :development
|
82
|
+
requirement: *id004
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: ruby-oci8
|
85
|
+
version_requirements: &id005 !ruby/object:Gem::Requirement
|
86
|
+
none: false
|
87
|
+
requirements:
|
88
|
+
- - ~>
|
89
|
+
- !ruby/object:Gem::Version
|
90
|
+
hash: 7
|
91
|
+
segments:
|
92
|
+
- 2
|
93
|
+
- 0
|
94
|
+
- 4
|
95
|
+
version: 2.0.4
|
96
|
+
prerelease: false
|
97
|
+
type: :runtime
|
98
|
+
requirement: *id005
|
99
|
+
description: |-
|
100
|
+
Run single statements against an arbitrary Oracle schema. This client is intended to be used by simple
|
101
|
+
command-line scripts to aid automation. This is *not* meant to replace an ORM such as ActiveRecord + OracleEnhancedAdapter.
|
102
|
+
The only prerequisite to running this code is that you have installed the ruby-oci8 gem on your machine.
|
103
|
+
email: billy.reisinger@gmail.com
|
104
|
+
executables: []
|
105
|
+
|
106
|
+
extensions: []
|
107
|
+
|
108
|
+
extra_rdoc_files:
|
109
|
+
- README.rdoc
|
110
|
+
files:
|
111
|
+
- .document
|
112
|
+
- Gemfile
|
113
|
+
- Gemfile.lock
|
114
|
+
- LICENSE.txt
|
115
|
+
- README.rdoc
|
116
|
+
- Rakefile
|
117
|
+
- VERSION
|
118
|
+
- lib/oci8_simple.rb
|
119
|
+
- oci8_simple.gemspec
|
120
|
+
- test/helper.rb
|
121
|
+
- test/test_oci8_simple.rb
|
122
|
+
has_rdoc: true
|
123
|
+
homepage: http://github.com/unclebilly/oci8_simple
|
124
|
+
licenses:
|
125
|
+
- MIT
|
126
|
+
post_install_message:
|
127
|
+
rdoc_options: []
|
128
|
+
|
129
|
+
require_paths:
|
130
|
+
- lib
|
131
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
132
|
+
none: false
|
133
|
+
requirements:
|
134
|
+
- - ">="
|
135
|
+
- !ruby/object:Gem::Version
|
136
|
+
hash: 3
|
137
|
+
segments:
|
138
|
+
- 0
|
139
|
+
version: "0"
|
140
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
141
|
+
none: false
|
142
|
+
requirements:
|
143
|
+
- - ">="
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
hash: 3
|
146
|
+
segments:
|
147
|
+
- 0
|
148
|
+
version: "0"
|
149
|
+
requirements: []
|
150
|
+
|
151
|
+
rubyforge_project:
|
152
|
+
rubygems_version: 1.5.2
|
153
|
+
signing_key:
|
154
|
+
specification_version: 3
|
155
|
+
summary: Run single statements against an arbitrary Oracle schema.
|
156
|
+
test_files:
|
157
|
+
- test/helper.rb
|
158
|
+
- test/test_oci8_simple.rb
|