sc_analytics 0.1.3 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d9864de13fe26767611a76fd94a91784a65324a1
4
- data.tar.gz: bcfbff3d11d421936d8177b84d4b27a1398690ca
3
+ metadata.gz: 06117d6a47148c891d4af3938f92aa4bffefb7e5
4
+ data.tar.gz: 3faa62b4852ae7c19a4f6f2b5d9af9ff83c516af
5
5
  SHA512:
6
- metadata.gz: 3236feb06cd93fd8372584f57827e3c8e7f937e686b379cb469635487c4a4aa400ec38ba9777499442c6139188283095d274316cb5bf948d632f8713c2c2a3cb
7
- data.tar.gz: a2ac15fd5052a069b2c1952c66fb98c2fcbc34205cf00198aac7d0a69bd31228bb5195b6fe57d319e164c51ab08875b87c41d78f64db155c67d929e7d5553166
6
+ metadata.gz: 4ce36305a428e1f3588a74b2ef0d1f6436e89d8b2d9fee0431f7a44f3b5181820294c326f3601a7bc3768f6ca72584a63521757d367e6c61dc1f8352ca3e066d
7
+ data.tar.gz: 6673bc0d9c2db54470fbc30735a3d879fb2f6602f0799eaa9bd95a3d44f223fdce01def57207f14ad3cc1e62b060edb0487f397f1b43108eace7dfdcac545008
@@ -4,15 +4,12 @@ module SCAnalytics
4
4
  Struct.new("QueryResult",:headers,:rows)
5
5
 
6
6
  class Connection
7
- attr_reader :host, :port, :service, :username
7
+ attr_reader :host, :port, :username
8
8
 
9
- def initialize(connection_name, options)
9
+ def initialize(connection_name, config)
10
10
  @connection_name = connection_name
11
- @host = options[:connection][:host]
12
- @port = options[:connection][:port]
13
- @service = options[:connection][:service]
14
- @username = options[:credentials][:username]
15
- @password = options[:credentials][:password]
11
+ @username = config[:username]
12
+ @password = config[:password]
16
13
  end
17
14
 
18
15
  private
@@ -22,7 +19,6 @@ module SCAnalytics
22
19
  yield
23
20
  alert "Successfully connected to #{@connection_name.to_s} as user #{@username.to_s}!"
24
21
  end
25
-
26
22
  end
27
23
  end
28
24
  end
@@ -20,7 +20,7 @@ module SCAnalytics
20
20
  @credentials = symbolize_keys_for @credentials
21
21
 
22
22
  def self.connection_type(db_name)
23
- @credentials[db_name.downcase.to_sym][:connection][:type].downcase
23
+ @credentials[db_name.downcase.to_sym][:type].downcase
24
24
  end
25
25
 
26
26
  def self.connection_details(db_name)
@@ -1,13 +1,20 @@
1
1
  module SCAnalytics
2
2
  module Connections
3
3
  class Oracle < Connection
4
+ attr_reader :connect_string, :service_name, :sid
5
+
4
6
  require 'oci8'
5
7
  OCI8::BindType::Mapping[:number_unknown_prec] = OCI8::BindType::BasicNumberType
6
8
 
7
- def initialize(connection_name, options)
9
+ def initialize(connection_name, config)
8
10
  super
9
11
 
10
- parse_db_url
12
+ @host = config[:connection][:description][:address][:host]
13
+ @port = config[:connection][:description][:address][:port]
14
+ @service_name = config[:connection][:description][:connect_data][:service_name]
15
+ @sid = config[:connection][:description][:connect_data][:sid]
16
+
17
+ @connect_string = generate_connect_string_for(config[:connection])
11
18
  connect
12
19
  end
13
20
 
@@ -39,18 +46,18 @@ module SCAnalytics
39
46
 
40
47
  def connect
41
48
  super do
42
- @client = OCI8.new @username, @password, @db_url
49
+ @client = OCI8.new @username, @password, @connect_string
43
50
  end
44
51
  end
45
52
 
46
- def parse_db_url
47
- url = []
48
- url << "//#{@host}" if @host
49
- url << ":#{@port}" if @port
50
- url << "/" if @host
51
- url << @service
52
-
53
- @db_url = url.join
53
+ def generate_connect_string_for(conn_hsh, conn_str = "")
54
+ conn_hsh.each_pair do |descriptor,detail|
55
+ conn_str << "("
56
+ conn_str << "#{descriptor.to_s}="
57
+ detail.is_a?(Hash) ? conn_str = generate_connect_string_for(detail, conn_str) : conn_str << detail.to_s
58
+ conn_str << ")"
59
+ end
60
+ conn_str
54
61
  end
55
62
 
56
63
  end
@@ -1,3 +1,3 @@
1
1
  module SCAnalytics
2
- VERSION = "0.1.3"
2
+ VERSION = "0.2.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sc_analytics
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dave Rowan
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-11-19 00:00:00.000000000 Z
11
+ date: 2015-12-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler