fluiddb 0.1.17 → 0.1.18

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.
Files changed (3) hide show
  1. checksums.yaml +7 -0
  2. data/lib/FluidDb/TinyTds.rb +41 -37
  3. metadata +7 -10
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: d41ef8c88a11e0ece4a4eca92d8998cf387f7701
4
+ data.tar.gz: be7a7757cb029b40cf14e08065ef1a20597aa836
5
+ SHA512:
6
+ metadata.gz: d174b047e9a60d943d8086326495ccc37f4c7df2e3aeb4f2ccf575dfdcef28bda501e4e9508a5fd2f22a854e4b770fbbabdc8f033e2a072b234c80b023199223
7
+ data.tar.gz: 6c2edac4d0e036c57b0cfc3719973330030792071f882360b88f664083eee3e07e80cb8b5f74bca6c98aeed9421ac6f24062404066ee96936fa4d0295ca4a580
@@ -1,11 +1,11 @@
1
- require "FluidDb"
2
- require "tiny_tds"
3
- require "cgi"
1
+ require 'FluidDb'
2
+ require 'tiny_tds'
3
+ require 'cgi'
4
4
 
5
5
  module FluidDb
6
-
6
+
7
7
  class TinyTds<Base
8
-
8
+
9
9
  # Connect to Db.
10
10
  #
11
11
  # @param [String] uri a location for the resource to which we will attach, eg tinytds://<user>:<pass>@<dataserver>/<database>
@@ -13,28 +13,32 @@ module FluidDb
13
13
  uri = @uri
14
14
 
15
15
  dataserver = uri.host
16
- database = uri.path.sub( "/", "" )
16
+ database = uri.path.sub( "/", '' )
17
17
  username = URI.unescape( uri.user )
18
18
  password = uri.password
19
19
 
20
-
21
- if dataserver == "" ||
22
- database == "" then
20
+
21
+ if dataserver == '' ||
22
+ database == '' then
23
23
  raise "*** You need to specify both a dataserver and a database for the tinytds driver. Expected format: tinytds://<user>:<pass>@<dataserver>/<database>\n" +
24
24
  "*** The specified dataserver should have an entry in /etc/freetds/freetds.conf"
25
25
  end
26
-
27
- if username == "" ||
28
- password == "" then
26
+
27
+ if username == '' ||
28
+ password == '' then
29
29
  puts "*** Warning - you will normally need to specify both a username and password for the tinytds driver to work correctly."
30
30
  end
31
-
31
+
32
32
  hash = Hash[:username, username, :password, password, :database, database, :dataserver, dataserver]
33
33
  failOverDataServer = nil
34
34
  if !uri.query.nil? then
35
35
  cgi = CGI.parse( uri.query )
36
36
  hash[:timeout] = cgi["timeout"][0].to_i if cgi.has_key?( "timeout" )
37
-
37
+ if cgi.has_key( "host" )
38
+ hash.delete(:dataserver)
39
+ hash[:host] = dataserver
40
+ end
41
+
38
42
  failOverDataServer = cgi["failoverdataserver"][0] if cgi.has_key?( "failoverdataserver" )
39
43
  end
40
44
 
@@ -53,17 +57,17 @@ module FluidDb
53
57
  raise e
54
58
  end
55
59
  end
56
-
60
+
57
61
  if !@connection.active? then
58
62
  raise "Unable to connect to the database"
59
63
  end
60
-
64
+
61
65
  end
62
-
66
+
63
67
  def close
64
68
  @connection.close
65
69
  end
66
-
70
+
67
71
  def escape_string( input )
68
72
  return @connection.escape( input )
69
73
  end
@@ -71,69 +75,69 @@ module FluidDb
71
75
  def queryForArray( sql, params=[] )
72
76
  sql = self.format_to_sql( sql, params )
73
77
  results = @connection.execute(sql)
74
-
78
+
75
79
  count = 0
76
- tuple = ""
80
+ tuple = ''
77
81
  results.each do |row|
78
82
  count = count + 1
79
83
  raise FluidDb::TooManyRowsError.new if count > 1
80
-
84
+
81
85
  tuple = row
82
86
  end
83
-
87
+
84
88
  raise FluidDb::NoDataFoundError.new if count == 0
85
-
89
+
86
90
  return tuple
87
91
  end
88
-
92
+
89
93
  def queryForValue( sql, params=[] )
90
94
  sql = self.format_to_sql( sql, params )
91
95
  results = @connection.execute(sql)
92
-
96
+
93
97
  count = 0
94
- value = ""
98
+ value = ''
95
99
  results.each do |row|
96
100
  count = count + 1
97
101
  raise FluidDb::TooManyRowsError.new if count > 1
98
-
102
+
99
103
  value = row[results.fields[0]]
100
104
  end
101
-
105
+
102
106
  raise FluidDb::NoDataFoundError.new if count == 0
103
-
107
+
104
108
  return value
105
109
  end
106
110
 
107
111
  def queryForResultset( sql, params=[] )
108
112
  sql = self.format_to_sql( sql, params )
109
113
  results = @connection.execute(sql)
110
-
114
+
111
115
  list = Array.new
112
116
  results.each do |row|
113
117
  list << row
114
118
  end
115
-
119
+
116
120
  return list
117
121
  end
118
-
119
-
122
+
123
+
120
124
  def execute( sql, params=[], expected_affected_rows=nil )
121
125
  sql = self.format_to_sql( sql, params )
122
126
  r = @connection.execute( sql );
123
127
  r.each
124
-
128
+
125
129
  if !expected_affected_rows.nil? and
126
130
  r.affected_rows != expected_affected_rows then
127
131
  raise ExpectedAffectedRowsError.new( "Expected affected rows, #{expected_affected_rows}, Actual affected rows, #{r.affected_rows}")
128
132
  end
129
133
  end
130
-
134
+
131
135
  def insert( sql, params )
132
136
  raise "Pgsql uses SEQUENCES, so possibly easier to use 2 executes"
133
137
  # self.execute( sql, params )
134
138
  #return @connection.last_id
135
139
  end
136
-
140
+
137
141
  end
138
-
142
+
139
143
  end
metadata CHANGED
@@ -1,15 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluiddb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.17
5
- prerelease:
4
+ version: 0.1.18
6
5
  platform: ruby
7
6
  authors:
8
7
  - Guy Irvine
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2014-08-27 00:00:00.000000000 Z
11
+ date: 2016-07-29 00:00:00.000000000 Z
13
12
  dependencies: []
14
13
  description: A semantic layer for db interaction
15
14
  email: guy@guyirvine.com
@@ -29,27 +28,25 @@ files:
29
28
  - README.md
30
29
  homepage: http://rubygems.org/gems/fluiddb
31
30
  licenses: []
31
+ metadata: {}
32
32
  post_install_message:
33
33
  rdoc_options: []
34
34
  require_paths:
35
35
  - lib
36
36
  required_ruby_version: !ruby/object:Gem::Requirement
37
- none: false
38
37
  requirements:
39
- - - ! '>='
38
+ - - '>='
40
39
  - !ruby/object:Gem::Version
41
40
  version: '0'
42
41
  required_rubygems_version: !ruby/object:Gem::Requirement
43
- none: false
44
42
  requirements:
45
- - - ! '>='
43
+ - - '>='
46
44
  - !ruby/object:Gem::Version
47
45
  version: '0'
48
46
  requirements: []
49
47
  rubyforge_project:
50
- rubygems_version: 1.8.11
48
+ rubygems_version: 2.0.14.1
51
49
  signing_key:
52
- specification_version: 3
50
+ specification_version: 4
53
51
  summary: FluidDB
54
52
  test_files: []
55
- has_rdoc: