class Sequel::Mock::Database
Attributes
Set the columns to set in the dataset when the dataset fetches rows. Argument types supported:
Set the hashes to yield by execute when retrieving rows. Argument types supported:
- nil
-
Yield no rows
Hash
-
Always yield a single row with this hash
Array
of Hashes-
Yield separately for each hash in this array
Array
(otherwise)-
First retrieval gets the first value in the array, second gets the second value, etc.
- Proc
-
Called with the select
SQL
query, uses the value returned, which should be a hash or array of hashes. - Class
-
Should be an Exception subclass, will create a new instance an raise it wrapped in a
DatabaseError
.
Set the number of rows to return from update or delete. Argument types supported:
- nil
-
Return 0 for all updates and deletes
- Integer
-
Used for all updates and deletes
Array
-
First update/delete gets the first value in the array, second gets the second value, etc.
- Proc
-
Called with the update/delete
SQL
query, uses the value returned. - Class
-
Should be an Exception subclass, will create a new instance an raise it wrapped in a
DatabaseError
.
Mock
the server version, useful when using the shared adapters
Public Instance Methods
Set the autogenerated primary key integer to be returned when running an insert query. Argument types supported:
- nil
-
Return nil for all inserts
- Integer
-
Starting integer for next insert, with futher inserts getting an incremented value
Array
-
First insert gets the first value in the array, second gets the second value, etc.
- Proc
-
Called with the insert
SQL
query, uses the value returned - Class
-
Should be an Exception subclass, will create a new instance an raise it wrapped in a
DatabaseError
.
# File lib/sequel/adapters/mock.rb 49 def autoid=(v) 50 @autoid = case v 51 when Integer 52 i = v - 1 53 proc{@mutex.synchronize{i+=1}} 54 else 55 v 56 end 57 end
Return a related Connection
option connecting to the given shard.
# File lib/sequel/adapters/mock.rb 101 def connect(server) 102 Connection.new(self, server, server_opts(server)) 103 end
# File lib/sequel/adapters/mock.rb 105 def disconnect_connection(c) 106 end
Store the sql used for later retrieval with sqls
, and return the appropriate value using either the autoid, fetch
, or numrows
methods.
# File lib/sequel/adapters/mock.rb 111 def execute(sql, opts=OPTS, &block) 112 synchronize(opts[:server]){|c| _execute(c, sql, opts, &block)} 113 end
Store the sql used, and return the value of the numrows
method.
# File lib/sequel/adapters/mock.rb 117 def execute_dui(sql, opts=OPTS) 118 execute(sql, opts.merge(:meth=>:numrows)) 119 end
Store the sql used, and return the value of the autoid method.
# File lib/sequel/adapters/mock.rb 122 def execute_insert(sql, opts=OPTS) 123 execute(sql, opts.merge(:meth=>:autoid)) 124 end
Enable use of savepoints.
Sequel::Database#supports_savepoints?
# File lib/sequel/adapters/mock.rb 137 def supports_savepoints? 138 shared_adapter? ? super : true 139 end