fluiddb 0.0.10 → 0.0.11
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/lib/FluidDb/Mock.rb +39 -2
- data/lib/FluidDb/Pgsql.rb +1 -1
- metadata +2 -2
data/lib/FluidDb/Mock.rb
CHANGED
@@ -5,8 +5,16 @@ module FluidDb
|
|
5
5
|
#A constant way of enabling testing for FluidDb
|
6
6
|
class Mock<Base
|
7
7
|
|
8
|
+
@verbose = false
|
9
|
+
|
8
10
|
def initialize
|
9
11
|
@hash = Hash.new
|
12
|
+
|
13
|
+
end
|
14
|
+
|
15
|
+
def verbose()
|
16
|
+
@verbose = true
|
17
|
+
return self
|
10
18
|
end
|
11
19
|
|
12
20
|
def connect()
|
@@ -17,21 +25,46 @@ module FluidDb
|
|
17
25
|
|
18
26
|
def queryForArray( sql, params )
|
19
27
|
sql = self.format_to_sql( sql, params )
|
20
|
-
|
28
|
+
puts "FluidDb::Mock.queryForArray. sql: #{sql}" if @verbose == true
|
29
|
+
|
30
|
+
results = @hash[sql]
|
31
|
+
case results.length
|
32
|
+
when 0
|
33
|
+
raise FluidDb::NoDataFoundError.new
|
34
|
+
when 1
|
35
|
+
return results.first
|
36
|
+
return r
|
37
|
+
else
|
38
|
+
raise FluidDb::TooManyRowsError.new
|
39
|
+
end
|
40
|
+
|
21
41
|
end
|
22
42
|
|
23
43
|
def queryForValue( sql, params )
|
24
44
|
sql = self.format_to_sql( sql, params )
|
45
|
+
puts "FluidDb::Mock.queryForValue. sql: #{sql}" if @verbose == true
|
46
|
+
|
47
|
+
results = @hash[sql]
|
48
|
+
case results.length
|
49
|
+
when 0
|
50
|
+
raise FluidDb::NoDataFoundError.new
|
51
|
+
when 1
|
52
|
+
return results.first.first[1]
|
53
|
+
else
|
54
|
+
raise FluidDb::TooManyRowsError.new
|
55
|
+
end
|
25
56
|
return @hash[sql]
|
26
57
|
end
|
27
58
|
|
28
59
|
def queryForResultset( sql, params )
|
29
60
|
sql = self.format_to_sql( sql, params )
|
61
|
+
puts "FluidDb::Mock.queryForResultset. sql: #{sql}" if @verbose == true
|
30
62
|
return @hash[sql]
|
31
63
|
end
|
32
64
|
|
33
65
|
def execute( sql, params, expected_affected_rows=nil )
|
34
66
|
sql = self.format_to_sql( sql, params )
|
67
|
+
puts "FluidDb::Mock.execute. sql: #{sql}" if @verbose == true
|
35
68
|
return @hash[sql]
|
36
69
|
end
|
37
70
|
|
@@ -40,9 +73,13 @@ module FluidDb
|
|
40
73
|
end
|
41
74
|
|
42
75
|
def addSql( sql, result )
|
76
|
+
if !result.is_a? Array then
|
77
|
+
raise TypeError.new( "Expecting an Array of Hashes, eg [{'field1'=>1, 'field2'=>2}]. Note, the Array may be empty" )
|
78
|
+
end
|
79
|
+
|
43
80
|
@hash[sql] = result;
|
44
81
|
end
|
45
|
-
|
82
|
+
|
46
83
|
def addSqlWithParams( sql, params, result )
|
47
84
|
sql = self.format_to_sql( sql, params )
|
48
85
|
|
data/lib/FluidDb/Pgsql.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fluiddb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.11
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-10-
|
12
|
+
date: 2012-10-26 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
14
|
description: A semantic layer for db interaction
|
15
15
|
email: guy@guyirvine.com
|