Rubernate 0.1.4 → 0.1.5

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.
@@ -184,6 +184,24 @@ module Rubernate
184
184
  raise "method MUST be overiden in subclass"
185
185
  end
186
186
 
187
+ # Checks wether ref_obj has been deleted and calls on_lose_ref callback on obj if so.
188
+ def ref_lost? obj, ref_prop, ref_obj
189
+ return true unless ref_obj
190
+ return false unless ref_obj.removed?
191
+ obj.on_lose_ref ref_prop, ref_obj
192
+ true
193
+ end
194
+
195
+ # Removes removed refs fom Hash
196
+ def ref_lost_hash obj, name, hash
197
+ hash.delete_if {|key, ref| ref_lost? obj, name, ref}
198
+ end
199
+
200
+ # Removes removed refs fom Array
201
+ def ref_lost_array obj, name, array
202
+ array.delete_if {|ref| !ref or ref_lost? obj, name, ref}
203
+ end
204
+
187
205
  def post_load object
188
206
  for value in object.peer.values
189
207
  value.compact! if value.is_a? Array
data/lib/rubernate.rb CHANGED
@@ -35,14 +35,8 @@ module Rubernate
35
35
  require 'rubernate/callbacks'
36
36
  require 'rubernate/persistent'
37
37
  require 'rubernate/peer'
38
- require 'rubernate/runtime'
39
- require 'rubernate/impl/dbi_generic'
38
+ require 'rubernate/runtime'
40
39
  require 'rubernate/queries'
41
- require 'rubernate/impl/memory'
42
- require 'rubernate/impl/dbi_mysql'
43
- require 'rubernate/impl/dbi_oracle'
44
- require 'rubernate/init/init_mysql'
45
- require 'rubernate/init/init_oracle'
46
40
 
47
41
  # Rubernate core singelton methods.
48
42
  class << self
@@ -60,13 +54,42 @@ module Rubernate
60
54
  # * password - databases users password
61
55
  def config db, url, user, password
62
56
  impl, init = case db
63
- when :mysql: [DBI::MySqlRuntime, DBI::MySqlInit]
64
- when :oracle: [DBI::OracleRuntime, DBI::OracleInit]
57
+ when :mysql : require_mysql
58
+ when :oracle: require_oracle
59
+ when :pg : require_pg
60
+ when :memory: require_memory
65
61
  else raise "Database #{db} not supported"
66
- end
62
+ end
67
63
  self.configuration = DBI::Configuration.new impl, init, url, user, password
68
64
  end
69
65
 
66
+ # Loads MySQL module
67
+ def require_mysql
68
+ require 'rubernate/impl/dbi_mysql'
69
+ require 'rubernate/init/init_mysql'
70
+ [DBI::MySqlRuntime, DBI::MySqlInit.new]
71
+ end
72
+
73
+ # Loads Oracle module
74
+ def require_oracle
75
+ require 'rubernate/impl/dbi_oracle'
76
+ require 'rubernate/init/init_oracle'
77
+ [DBI::OracleRuntime, DBI::OracleInit.new]
78
+ end
79
+
80
+ # Loads Postgres module
81
+ def require_pg
82
+ require 'rubernate/impl/dbi_pg'
83
+ require 'rubernate/init/init_pg'
84
+ [DBI::PgRuntime, DBI::PgInit.new]
85
+ end
86
+
87
+ # Loads Memory module used only for testing
88
+ def require_memory
89
+ require 'rubernate/impl/memory'
90
+ Memory::Runtime
91
+ end
92
+
70
93
  # Intializes database - creates necessary tables, sequences and indices.
71
94
  def init_db
72
95
  @factory.init_db
data/tests/all_tests.rb CHANGED
@@ -18,3 +18,8 @@ if $run_mysql_tests
18
18
  require 'rubernate/impl/queries_mysql_test'
19
19
  require 'rubernate/impl/dbi_mysql_test'
20
20
  end
21
+
22
+ if $run_pg_tests
23
+ require 'rubernate/impl/queries_pg_test'
24
+ require 'rubernate/impl/dbi_pg_test'
25
+ end
data/tests/config.rb CHANGED
@@ -1,19 +1,29 @@
1
- # Set to true to run tests or Oracle
2
- $run_oracle_tests = true
1
+ # Set to true to run tests on Oracle
2
+ $run_oracle_tests = false
3
3
 
4
- ORA_RUNTIME_CLASS = Rubernate::DBI::OracleRuntime
5
- ORA_DB_URL = 'dbi:OCI8:dbg91'
6
- ORA_DB_USER = 'netcracker65'
7
- ORA_DB_PWD = 'netcracker65'
4
+ ORA_RUNTIME_CLASS = Rubernate.require_oracle[0]
5
+ ORA_DB_URL = 'dbi:OCI8:dbg91'
6
+ ORA_DB_USER = 'netcracker65'
7
+ ORA_DB_PWD = 'netcracker65'
8
8
 
9
9
  # Set to true to run tests on MySQL
10
- $run_mysql_tests = true
10
+ $run_mysql_tests = false
11
11
 
12
- MYSQL_RUNTIME_CLASS = Rubernate::DBI::MySqlRuntime
12
+ MYSQL_RUNTIME_CLASS = Rubernate.require_mysql[0]
13
13
  MYSQL_DB_URL = 'dbi:Mysql:rubernate_db:localhost'
14
14
  MYSQL_DB_USER = nil
15
15
  MYSQL_DB_PWD = nil
16
16
 
17
+ # Set to true to run tests on PostgreSQL
18
+ $run_pg_tests = false
19
+
20
+ PG_RUNTIME_CLASS = Rubernate.require_pg[0]
21
+ PG_DB_URL = 'dbi:Pg:rubernate_db'
22
+ PG_DB_USER = 'rn_test'
23
+ PG_DB_PWD = 'rn_password'
24
+
25
+ Rubernate.require_memory
26
+
17
27
  # Log4r configuration
18
28
  Rubernate::Log.level = Log4r::DEBUG
19
29
  Rubernate::Log.add Log4r::FileOutputter.new('file',
@@ -45,6 +45,11 @@ module Rubernate
45
45
  Callbacks.handlers << :on_modify
46
46
  Callbacks.events << Event.new(self, property, old_value, new_value)
47
47
  end
48
+
49
+ def on_lose_ref property, ref_obj
50
+ Callbacks.handlers << :on_lose_ref
51
+ Callbacks.events << Event.new(self, property, ref_obj)
52
+ end
48
53
  end
49
54
 
50
55
  # This module contains callback method and included in module Rubernate::Runtime
@@ -116,5 +121,20 @@ module Rubernate
116
121
  :on_modify, :on_modify, :before_flush, :on_save,
117
122
  :after_flush, :after_commit], Callbacks.handlers
118
123
  end
124
+
125
+ def test_lose_ref_callbacks
126
+ pk1, pk2 = nil
127
+ Rubernate.session do
128
+ o1 = Full.new.attach; pk1 = o1.primary_key
129
+ o2 = C1.new.attach; pk2 = o2.primary_key
130
+ o1.p_ref = o2
131
+ o1.p_array = [o2]
132
+ o1.p_hash = {'key' => o2}
133
+ o2.remove!
134
+ Callbacks.clear
135
+ end
136
+ assert_equal [:before_commit, :before_flush, :on_save, :on_lose_ref,
137
+ :on_lose_ref, :on_lose_ref, :after_flush, :after_commit], Callbacks.handlers
138
+ end
119
139
  end
120
140
  end
@@ -33,7 +33,7 @@ module FixtureClasses
33
33
  end
34
34
  end
35
35
  class Full
36
- persistent :p_nil, :p_int, :p_float, :p_str, :p_date, :p_time, :p_array, :p_hash
36
+ persistent :p_nil, :p_int, :p_float, :p_str, :p_date, :p_time, :p_ref, :p_array, :p_hash
37
37
  def to_s
38
38
  "#{self.class}:#{primary_key}"
39
39
  end
@@ -74,12 +74,12 @@ module DBI::GenericTests
74
74
  @runtime.save o
75
75
  rows = @runtime.dbh.select_all 'select * from r_params'
76
76
  assert_equal 1, rows.size
77
- assert_equal o.primary_key, rows[0]['OBJECT_PK'].to_i
78
- assert_equal PARAM_FLAG_STRING, rows[0]['FLAGS'].to_i
79
- assert_nil rows[0]['INT_VALUE']
80
- assert_equal 'test', rows[0]['STR_VALUE']
81
- assert_nil rows[0]['DAT_VALUE']
82
- assert_nil rows[0]['REF_VALUE']
77
+ assert_equal o.primary_key, rows[0][P_PK].to_i
78
+ assert_equal PARAM_FLAG_STRING, rows[0][P_FLAGS].to_i
79
+ assert_nil rows[0][P_INT]
80
+ assert_equal 'test', rows[0][P_STR]
81
+ assert_nil rows[0][P_TIME]
82
+ assert_nil rows[0][P_REF]
83
83
  end
84
84
 
85
85
  def test_save_param_int
@@ -88,12 +88,14 @@ module DBI::GenericTests
88
88
  @runtime.save o
89
89
  rows = @runtime.dbh.select_all 'select * from r_params'
90
90
  assert_equal 1, rows.size
91
- assert_equal o.primary_key, rows[0]['OBJECT_PK'].to_i
92
- assert_equal PARAM_FLAG_INT, rows[0]['FLAGS'].to_i
93
- assert_equal 777, rows[0]['INT_VALUE'].to_i
94
- assert_nil rows[0]['STR_VALUE']
95
- assert_nil rows[0]['DAT_VALUE']
96
- assert_nil rows[0]['REF_VALUE']
91
+ assert_equal o.primary_key, rows[0][P_PK].to_i
92
+ assert_equal PARAM_FLAG_INT, rows[0][P_FLAGS].to_i
93
+ assert_equal 'p1', rows[0][P_NAME]
94
+ assert_equal 777, rows[0][P_INT].to_i
95
+ assert_nil rows[0][P_FLT]
96
+ assert_nil rows[0][P_STR]
97
+ assert_nil rows[0][P_TIME]
98
+ assert_nil rows[0][P_REF]
97
99
  end
98
100
 
99
101
  def test_save_param_ref
@@ -105,12 +107,12 @@ module DBI::GenericTests
105
107
 
106
108
  rows = @runtime.dbh.select_all 'select * from r_params'
107
109
  assert_equal 1, rows.size
108
- assert_equal o1.primary_key, rows[0]['OBJECT_PK'].to_i
109
- assert_equal PARAM_FLAG_REF, rows[0]['FLAGS'].to_i
110
- assert_nil rows[0]['INT_VALUE']
111
- assert_nil rows[0]['STR_VALUE']
112
- assert_nil rows[0]['DAT_VALUE']
113
- assert_equal o0.primary_key, rows[0]['REF_VALUE'].to_i
110
+ assert_equal o1.primary_key, rows[0][P_PK].to_i
111
+ assert_equal PARAM_FLAG_REF, rows[0][P_FLAGS].to_i
112
+ assert_nil rows[0][P_INT]
113
+ assert_nil rows[0][P_STR]
114
+ assert_nil rows[0][P_TIME]
115
+ assert_equal o0.primary_key, rows[0][P_REF].to_i
114
116
  end
115
117
 
116
118
  def test_save_param_int_hash
@@ -127,13 +129,13 @@ module DBI::GenericTests
127
129
  rows = @runtime.dbh.select_all 'select * from r_params order by int_value'
128
130
  assert_equal 10, rows.size
129
131
  for row in rows
130
- assert_equal o.primary_key, row['OBJECT_PK'].to_i
131
- assert_equal PARAM_FLAG_INT | PARAM_FLAG_HASH, row['FLAGS'].to_i
132
- assert hash.has_key?(row['INT_VALUE'].to_i)
132
+ assert_equal o.primary_key, row[P_PK].to_i
133
+ assert_equal PARAM_FLAG_INT | PARAM_FLAG_HASH, row[P_FLAGS].to_i
134
+ assert hash.has_key?(row[P_INT].to_i)
133
135
  assert_nil row['FLT_VALUE']
134
- assert_nil row['STR_VALUE']
135
- assert_nil row['DAT_VALUE']
136
- assert_equal hash[row['INT_VALUE'].to_i].primary_key, row['REF_VALUE'].to_i
136
+ assert_nil row[P_STR]
137
+ assert_nil row[P_TIME]
138
+ assert_equal hash[row[P_INT].to_i].primary_key, row[P_REF].to_i
137
139
  end
138
140
  end
139
141
 
@@ -154,22 +156,22 @@ module DBI::GenericTests
154
156
  assert_equal 2, rows.size
155
157
 
156
158
  for row in rows
157
- if row['FLAGS'].to_i == HASH_INT_REF
158
- assert_equal o.primary_key, row['OBJECT_PK'].to_i
159
- assert hash.has_key?(row['INT_VALUE'].to_i)
159
+ if row[P_FLAGS].to_i == HASH_INT_REF
160
+ assert_equal o.primary_key, row[P_PK].to_i
161
+ assert hash.has_key?(row[P_INT].to_i)
160
162
  assert_nil row['FLT_VALUE']
161
- assert_nil row['STR_VALUE']
162
- assert_nil row['DAT_VALUE']
163
- assert_equal hash[row['INT_VALUE'].to_i].primary_key, row['REF_VALUE'].to_i
164
- elsif row['FLAGS'].to_i == HASH_STRING_REF
165
- assert_equal o.primary_key, row['OBJECT_PK'].to_i
166
- assert_nil row['INT_VALUE']
163
+ assert_nil row[P_STR]
164
+ assert_nil row[P_TIME]
165
+ assert_equal hash[row[P_INT].to_i].primary_key, row[P_REF].to_i
166
+ elsif row[P_FLAGS].to_i == HASH_STRING_REF
167
+ assert_equal o.primary_key, row[P_PK].to_i
168
+ assert_nil row[P_INT]
167
169
  assert_nil row['FLT_VALUE']
168
- assert hash.has_key?(row['STR_VALUE'])
169
- assert_nil row['DAT_VALUE']
170
- assert_equal hash[row['STR_VALUE']].primary_key, row['REF_VALUE'].to_i
170
+ assert hash.has_key?(row[P_STR])
171
+ assert_nil row[P_TIME]
172
+ assert_equal hash[row[P_STR]].primary_key, row[P_REF].to_i
171
173
  else
172
- flunk 'Invalid flags: ' + row['FLAGS'].to_i
174
+ flunk "Invalid flags: #{row[P_FLAGS]}"
173
175
  end
174
176
  end
175
177
  end
@@ -190,13 +192,13 @@ module DBI::GenericTests
190
192
  assert_equal 10, rows.size
191
193
  for i in 0..9
192
194
  row = rows[i]
193
- assert_equal o.primary_key, row['OBJECT_PK'].to_i
194
- assert_equal 'p1', row['NAME']
195
- assert_equal ARRAY_INT_REF, row['FLAGS'].to_i
196
- assert_equal i, row['INT_VALUE'].to_i
197
- assert_nil row['STR_VALUE']
198
- assert_nil row['DAT_VALUE']
199
- assert_equal array[row['INT_VALUE'].to_i].primary_key, row['REF_VALUE'].to_i
195
+ assert_equal o.primary_key, row[P_PK].to_i
196
+ assert_equal 'p1', row[P_NAME]
197
+ assert_equal ARRAY_INT_REF, row[P_FLAGS].to_i
198
+ assert_equal i, row[P_INT].to_i
199
+ assert_nil row[P_STR]
200
+ assert_nil row[P_TIME]
201
+ assert_equal array[row[P_INT].to_i].primary_key, row[P_REF].to_i
200
202
  end
201
203
  end
202
204
 
@@ -361,6 +363,7 @@ module DBI::GenericTests
361
363
  o.p_str = 'Test String'
362
364
  o.p_time = time
363
365
  o.p_date = date
366
+ o.p_ref = o
364
367
  o.p_array = [o, o, o]
365
368
  o.p_hash = {nil => o,
366
369
  777 => o,
@@ -378,6 +381,7 @@ module DBI::GenericTests
378
381
  assert_equal 'Test String', o.p_str
379
382
  assert_equal time.to_a[0..5], o.p_time.to_a[0..5] # Ignore time zone
380
383
  assert_equal date, o.p_date # Ignore time zone
384
+ assert_equal o, o.p_ref
381
385
  assert_equal [o, o, o], o.p_array
382
386
  assert_equal 6, o.p_hash.size
383
387
 
@@ -4,16 +4,21 @@ $:.unshift(File.expand_path('../../..', __FILE__)) unless
4
4
  require 'rubernate/fixtures'
5
5
  require 'rubernate/impl/dbi_generic_stub'
6
6
 
7
- class Rubernate::DBI::OracleTest < Test::Unit::TestCase
8
- include Rubernate::DBI::GenericTests
9
- def setup
10
- init ORA_RUNTIME_CLASS, ORA_DB_URL, ORA_DB_USER, ORA_DB_PWD
7
+
8
+ module Rubernate
9
+ module DBI
10
+ class OracleTest < Test::Unit::TestCase
11
+ include Rubernate::DBI::GenericTests
12
+ def setup
13
+ init ORA_RUNTIME_CLASS, ORA_DB_URL, ORA_DB_USER, ORA_DB_PWD
14
+ end
11
15
  end
12
- end
13
-
14
- class Rubernate::DBI::OracleRuntimeTest < Test::Unit::TestCase
15
- include Rubernate::GenericRuntimeTests
16
- def setup
17
- init ORA_RUNTIME_CLASS, ORA_DB_URL, ORA_DB_USER, ORA_DB_PWD
16
+
17
+ class OracleRuntimeTest < Test::Unit::TestCase
18
+ include Rubernate::GenericRuntimeTests
19
+ def setup
20
+ init ORA_RUNTIME_CLASS, ORA_DB_URL, ORA_DB_USER, ORA_DB_PWD
21
+ end
18
22
  end
19
23
  end
24
+ end
@@ -0,0 +1,23 @@
1
+ $:.unshift(File.expand_path('../../..', __FILE__)) unless
2
+ $:.include?(File.expand_path('../../..', __FILE__))
3
+
4
+ require 'rubernate/fixtures'
5
+ require 'rubernate/impl/dbi_generic_stub'
6
+
7
+ module Rubernate
8
+ module DBI
9
+ class PgTest < Test::Unit::TestCase
10
+ include Rubernate::DBI::GenericTests
11
+ def setup
12
+ init PG_RUNTIME_CLASS, PG_DB_URL, PG_DB_USER, PG_DB_PWD
13
+ end
14
+ end
15
+
16
+ class PgRuntimeTest < Test::Unit::TestCase
17
+ include Rubernate::GenericRuntimeTests
18
+ def setup
19
+ init PG_RUNTIME_CLASS, PG_DB_URL, PG_DB_USER, PG_DB_PWD
20
+ end
21
+ end
22
+ end
23
+ end
@@ -124,35 +124,35 @@ class Rubernate::Memory::RuntimeTest < Test::Unit::TestCase
124
124
  def test_save_peer
125
125
  obj, obj.peer = C4.new(1), Peer.new
126
126
  obj.p1, obj.p2 = 2, [C4.new(2)]
127
- data = @runtime.save_peer obj.peer
127
+ data = @runtime.save_peer obj
128
128
  assert_equal({:p1 => 2, :p2 => [ref(2, C4)]}, data)
129
129
  end
130
130
 
131
131
  def test_save_param_simple
132
- p = @runtime.save_param "test"
132
+ p = @runtime.save_param nil, nil, "test"
133
133
  assert_equal "test", p
134
134
 
135
- p = @runtime.save_param 1
135
+ p = @runtime.save_param nil, nil, 1
136
136
  assert_equal 1, p
137
137
 
138
- p = @runtime.save_param C4.new(3)
138
+ p = @runtime.save_param nil, nil, C4.new(3)
139
139
  assert_equal Reference, p.class
140
140
  assert_equal 3, p.primary_key
141
141
  assert_equal C4, p.object_class
142
142
  end
143
143
 
144
144
  def test_save_param_array
145
- p = @runtime.save_param [C4.new(1), C4.new(2)]
145
+ p = @runtime.save_param nil, nil, [C4.new(1), C4.new(2)]
146
146
  assert_equal [ref(1, C4), ref(2, C4)], p
147
- p = @runtime.save_param []
147
+ p = @runtime.save_param nil, nil, []
148
148
  assert_equal [], p
149
149
  end
150
150
 
151
151
  def test_save_param_hash
152
- p = @runtime.save_param('k1' => C4.new(1), 2 => C4.new(2))
152
+ p = @runtime.save_param nil, nil, 'k1' => C4.new(1), 2 => C4.new(2)
153
153
  assert_equal({'k1' => ref(1, C4), 2 => ref(2, C4)}, p)
154
154
  assert_not_equal({'k1' => ref(2, C4), 2 => ref(2, C4)}, p)
155
- p = @runtime.save_param({})
155
+ p = @runtime.save_param nil, nil, ({})
156
156
  assert_equal({}, p)
157
157
  end
158
158
 
@@ -1,4 +1,3 @@
1
-
2
1
  $:.unshift(File.expand_path('../../..', __FILE__)) unless
3
2
  $:.include?(File.expand_path('../../..', __FILE__))
4
3
 
@@ -0,0 +1,14 @@
1
+ $:.unshift(File.expand_path('../../..', __FILE__)) unless
2
+ $:.include?(File.expand_path('../../..', __FILE__))
3
+
4
+ require 'rubernate/fixtures'
5
+ require 'rubernate/impl/queries_stub'
6
+
7
+ module Rubernate
8
+ class PgQueriesTest < Test::Unit::TestCase
9
+ include GenericQueriesTest
10
+ def setup
11
+ init :pg, PG_DB_URL, PG_DB_USER, PG_DB_PWD
12
+ end
13
+ end
14
+ end
@@ -68,5 +68,23 @@ module GenericQueriesTest
68
68
  assert_equal [o1], res
69
69
  end
70
70
  end
71
+
72
+ def test_or_and_not_nil
73
+ Rubernate.session do
74
+ o1, o2, o3 = C2.new.attach, C2.new.attach, C2.new.attach
75
+ o1.p1, o1.p2 = 1, 2
76
+ o2.p1, o2.p2 = 1, 3
77
+ o3.p2 = 4
78
+
79
+ res = find_by_query 'Select :o; Where o.p1.int == 1; OrderBy o.p2.int'
80
+ assert_equal [o1, o2], res
81
+
82
+ # res = find_by_query 'Select :o; Where IsNil(o.p1)' TODO: fix this!!!
83
+ # assert_equal [o3], res
84
+
85
+ res = find_by_query 'Select :o; Where Or(o.p2.int == 3, o.p2.int == 4); OrderBy o.p2.int'
86
+ assert_equal [o2, o3], res
87
+ end
88
+ end
71
89
  end
72
90
  end
@@ -169,8 +169,8 @@ module Rubernate
169
169
  end
170
170
 
171
171
  def test_eq_equivalence
172
- q0 = query {Select :o; Where o.p1 == :ref}
173
- q1 = query {Select :o; Where Eq(o.p1, :ref)}
172
+ q0 = query {Select :o; Where o.p1.ref == :ref}
173
+ q1 = query {Select :o; Where Eq(o.p1.ref, :ref)}
174
174
  assert_equal q0.to_sql, q1.to_sql
175
175
  assert_equal q0.markers, q1.markers
176
176
  end
metadata CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.8.11
3
3
  specification_version: 1
4
4
  name: Rubernate
5
5
  version: !ruby/object:Gem::Version
6
- version: 0.1.4
7
- date: 2006-03-16 00:00:00 +03:00
6
+ version: 0.1.5
7
+ date: 2006-03-20 00:00:00 +03:00
8
8
  summary: Object-oriented storage for Ruby objects based on relational database model
9
9
  require_paths:
10
10
  - lib
@@ -41,9 +41,12 @@ files:
41
41
  - lib/rubernate/impl/dbi_generic.rb
42
42
  - lib/rubernate/impl/dbi_mysql.rb
43
43
  - lib/rubernate/impl/dbi_oracle.rb
44
+ - lib/rubernate/impl/dbi_pg.rb
44
45
  - lib/rubernate/impl/memory.rb
46
+ - lib/rubernate/init/init_generic.rb
45
47
  - lib/rubernate/init/init_mysql.rb
46
48
  - lib/rubernate/init/init_oracle.rb
49
+ - lib/rubernate/init/init_pg.rb
47
50
  - tests/all_tests.rb
48
51
  - tests/config.rb
49
52
  - tests/README
@@ -57,9 +60,11 @@ files:
57
60
  - tests/rubernate/impl/dbi_generic_stub.rb
58
61
  - tests/rubernate/impl/dbi_mysql_test.rb
59
62
  - tests/rubernate/impl/dbi_oracle_test.rb
63
+ - tests/rubernate/impl/dbi_pg_test.rb
60
64
  - tests/rubernate/impl/memory_test.rb
61
65
  - tests/rubernate/impl/queries_mysql_test.rb
62
66
  - tests/rubernate/impl/queries_oracle_test.rb
67
+ - tests/rubernate/impl/queries_pg_test.rb
63
68
  - tests/rubernate/impl/queries_stub.rb
64
69
  - README
65
70
  test_files: