connectator 0.0.6 → 0.0.7

Sign up to get free protection for your applications and to get access to all the features.
data/lib/connectator.rb CHANGED
@@ -2,13 +2,16 @@ require 'dbi'
2
2
  require 'timeout'
3
3
  require 'ostruct'
4
4
 
5
+ require_relative 'connectator/factory'
6
+ require_relative 'connectator/pinger'
7
+ require_relative 'connectator/dbi_proxy'
8
+ require_relative 'connectator/using_dbi_proxy'
9
+
5
10
  require_relative 'connectator/base/connection'
6
- require_relative 'connectator/base/dbi_proxy'
7
11
  require_relative 'connectator/db2/connection'
8
12
  require_relative 'connectator/mysql/connection'
9
13
  require_relative 'connectator/oracle/connection'
10
14
  require_relative 'connectator/sql/connection'
11
15
  require_relative 'connectator/sql/connection/server_instance_string'
12
16
  require_relative 'connectator/sybase/connection'
13
- require_relative 'connectator/factory'
14
- require_relative 'connectator/pinger'
17
+
@@ -60,11 +60,11 @@ module Connectator
60
60
  end
61
61
 
62
62
  def new_system_connection_proxy
63
- DBIProxy.new(open)
63
+ raise 'Abstract Method'
64
64
  end
65
65
 
66
66
  def open
67
- DBI.connect(connection_string)
67
+ raise 'Abstract Method'
68
68
  end
69
69
 
70
70
  def connection_params_list
@@ -1,11 +1,12 @@
1
1
  module Connectator
2
2
  module DB2
3
3
  class Connection < Base::Connection
4
+ include UsingDBIProxy
4
5
 
5
6
  def initialize(opts = {})
6
- connection_params.database = opts[:database]
7
7
  connection_params.driver = 'DB2'
8
8
  connection_params.protocol = 'TCPIP'
9
+ connection_params.database = opts[:database]
9
10
  super(opts)
10
11
  end
11
12
 
@@ -20,7 +21,7 @@ module Connectator
20
21
  "DRIVER" => connection_params.driver,
21
22
  "PROTOCOL" => connection_params.protocol,
22
23
  "HOSTNAME" => connection_params.server,
23
- "Port" => connection_params.port,
24
+ "PORT" => connection_params.port,
24
25
  "DATABASE" => connection_params.database,
25
26
  "UID" => connection_params.username,
26
27
  "PWD" => connection_params.password
@@ -0,0 +1,31 @@
1
+ module Connectator
2
+ class DBIProxy
3
+
4
+ def initialize(connection)
5
+ @connection = connection
6
+ end
7
+
8
+ def connection
9
+ @connection
10
+ end
11
+
12
+ def close
13
+ connection.disconnect
14
+ end
15
+
16
+ # Do not use this method on queries that return lots of data
17
+ # because it would use a lot of memory.
18
+ def select_all_to_hash(query)
19
+ result = []
20
+ sth = connection.execute(query)
21
+ sth.fetch_hash do |row|
22
+ result << row
23
+ end
24
+ result
25
+ end
26
+
27
+ def method_missing(method, *args, &blk)
28
+ connection.send(method, *args, &blk)
29
+ end
30
+ end
31
+ end
@@ -1,6 +1,7 @@
1
1
  module Connectator
2
2
  module Mysql
3
3
  class Connection < Base::Connection
4
+ include UsingDBIProxy
4
5
 
5
6
  def initialize(opts = {})
6
7
  connection_params.driver = 'MySQL'
@@ -1,6 +1,7 @@
1
1
  module Connectator
2
2
  module Oracle
3
3
  class Connection < Base::Connection
4
+ include UsingDBIProxy
4
5
 
5
6
  def connection_string
6
7
  "DBI:OCI8://#{connection_params.server}:#{connection_params.port}/#{connection_params.instance}"
@@ -1,6 +1,7 @@
1
1
  module Connectator
2
2
  module Sql
3
3
  class Connection < Base::Connection
4
+ include UsingDBIProxy
4
5
 
5
6
  def initialize(opts = {})
6
7
  connection_params.driver = 'FreeTDS'
@@ -24,7 +25,7 @@ module Connectator
24
25
  "DRIVER" => connection_params.driver,
25
26
  "TDS_Version" => connection_params.tds_version,
26
27
  "SERVER" => server_instance_string,
27
- "Port" => connection_params.port,
28
+ "PORT" => connection_params.port,
28
29
  "DATABASE" => connection_params.database,
29
30
  "UID" => connection_params.username,
30
31
  "PWD" => connection_params.password
@@ -1,6 +1,7 @@
1
1
  module Connectator
2
2
  module Sybase
3
3
  class Connection < Base::Connection
4
+ include UsingDBIProxy
4
5
 
5
6
  def initialize(opts = {})
6
7
  connection_params.driver = 'FreeTDS'
@@ -20,7 +21,7 @@ module Connectator
20
21
  "DRIVER" => connection_params.driver,
21
22
  "TDS_Version" => connection_params.tds_version,
22
23
  "SERVER" => connection_params.server,
23
- "Port" => connection_params.port,
24
+ "PORT" => connection_params.port,
24
25
  "DATABASE" => connection_params.database,
25
26
  "UID" => connection_params.username,
26
27
  "PWD" => connection_params.password
@@ -0,0 +1,18 @@
1
+ # Include this module in any connection that you want to use
2
+ # DBI and the DBIProxy
3
+
4
+ module Connectator
5
+ module UsingDBIProxy
6
+
7
+ private
8
+
9
+ def new_system_connection_proxy
10
+ DBIProxy.new(open)
11
+ end
12
+
13
+ def open
14
+ DBI.connect(connection_string)
15
+ end
16
+ end
17
+ end
18
+
@@ -26,6 +26,18 @@ describe Connectator::DB2::Connection do
26
26
  Then { connection.connection_params.database.should == 'ABCDEFG' }
27
27
 
28
28
  Then { connection.connection_string.should ==
29
- 'DBI:ODBC:DRIVER=DB2;PROTOCOL=TCPIP;HOSTNAME=Server;Port=Port;DATABASE=ABCDEFG;UID=User;PWD=Pass' }
29
+ 'DBI:ODBC:DRIVER=DB2;PROTOCOL=TCPIP;HOSTNAME=Server;PORT=Port;DATABASE=ABCDEFG;UID=User;PWD=Pass' }
30
+
31
+ Then { connection.send(:connection_params_hash).should ==
32
+ {
33
+ "DRIVER" => 'DB2',
34
+ "PROTOCOL" => 'TCPIP',
35
+ "HOSTNAME" => 'Server',
36
+ "PORT" => 'Port',
37
+ "DATABASE" => 'ABCDEFG',
38
+ "UID" => 'User',
39
+ "PWD" => 'Pass'
40
+ }
41
+ }
30
42
  end
31
43
  end
@@ -24,13 +24,14 @@ describe Connectator::Sql::Connection do
24
24
  Then { connection.connection_params.database.should == 'master' }
25
25
 
26
26
  Then { connection.connection_string.should ==
27
- "DBI:ODBC:DRIVER=FreeTDS;TDS_Version=8.0;SERVER=Server;Port=Port;DATABASE=master;UID=User;PWD=Pass" }
27
+ "DBI:ODBC:DRIVER=FreeTDS;TDS_Version=8.0;SERVER=Server;PORT=Port;DATABASE=master;UID=User;PWD=Pass" }
28
+
28
29
  Then { connection.send(:connection_params_hash).should ==
29
30
  {
30
31
  "DRIVER" => 'FreeTDS',
31
32
  "TDS_Version" => '8.0',
32
33
  "SERVER" => 'Server',
33
- "Port" => 'Port',
34
+ "PORT" => 'Port',
34
35
  "DATABASE" => 'master',
35
36
  "UID" => 'User',
36
37
  "PWD" => 'Pass'
@@ -24,14 +24,14 @@ describe Connectator::Sybase::Connection do
24
24
  Then { connection.connection_params.database.should == 'master' }
25
25
 
26
26
  Then { connection.connection_string.should ==
27
- "DBI:ODBC:DRIVER=FreeTDS;TDS_Version=5.0;SERVER=Server;Port=Port;DATABASE=master;UID=User;PWD=Pass" }
27
+ "DBI:ODBC:DRIVER=FreeTDS;TDS_Version=5.0;SERVER=Server;PORT=Port;DATABASE=master;UID=User;PWD=Pass" }
28
28
 
29
29
  Then { connection.send(:connection_params_hash).should ==
30
30
  {
31
31
  "DRIVER" => 'FreeTDS',
32
32
  "TDS_Version" => '5.0',
33
33
  "SERVER" => 'Server',
34
- "Port" => 'Port',
34
+ "PORT" => 'Port',
35
35
  "DATABASE" => 'master',
36
36
  "UID" => 'User',
37
37
  "PWD" => 'Pass'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: connectator
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.7
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -43,22 +43,6 @@ dependencies:
43
43
  - - ! '>='
44
44
  - !ruby/object:Gem::Version
45
45
  version: 0.2.5
46
- - !ruby/object:Gem::Dependency
47
- name: ruby-oci8
48
- requirement: !ruby/object:Gem::Requirement
49
- none: false
50
- requirements:
51
- - - ! '>='
52
- - !ruby/object:Gem::Version
53
- version: '0'
54
- type: :runtime
55
- prerelease: false
56
- version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
- requirements:
59
- - - ! '>='
60
- - !ruby/object:Gem::Version
61
- version: '0'
62
46
  - !ruby/object:Gem::Dependency
63
47
  name: bundler
64
48
  requirement: !ruby/object:Gem::Requirement
@@ -132,9 +116,10 @@ extra_rdoc_files: []
132
116
  files:
133
117
  - lib/connectator.rb
134
118
  - lib/connectator/factory.rb
119
+ - lib/connectator/dbi_proxy.rb
120
+ - lib/connectator/using_dbi_proxy.rb
135
121
  - lib/connectator/oracle/connection.rb
136
122
  - lib/connectator/base/connection.rb
137
- - lib/connectator/base/dbi_proxy.rb
138
123
  - lib/connectator/pinger.rb
139
124
  - lib/connectator/db2/connection.rb
140
125
  - lib/connectator/sybase/connection.rb
@@ -165,7 +150,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
165
150
  version: '0'
166
151
  segments:
167
152
  - 0
168
- hash: 4490405009583718652
153
+ hash: 3410537790936780615
169
154
  required_rubygems_version: !ruby/object:Gem::Requirement
170
155
  none: false
171
156
  requirements:
@@ -1,33 +0,0 @@
1
- module Connectator
2
- module Base
3
- class DBIProxy
4
-
5
- def initialize(connection)
6
- @connection = connection
7
- end
8
-
9
- def connection
10
- @connection
11
- end
12
-
13
- def close
14
- connection.disconnect
15
- end
16
-
17
- # Do not use this method on queries that return lots of data
18
- # because it would use a lot of memory.
19
- def select_all_to_hash(query)
20
- result = []
21
- sth = connection.execute(query)
22
- sth.fetch_hash do |row|
23
- result << row
24
- end
25
- result
26
- end
27
-
28
- def method_missing(method, *args, &blk)
29
- connection.send(method, *args, &blk)
30
- end
31
- end
32
- end
33
- end