Class Sequel::Mock::Database
In: lib/sequel/adapters/mock.rb
Parent: Sequel::Database

Database class for Sequel‘s mock adapter.

Methods

Attributes

autoid  [W]  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.
columns  [W]  Set the columns to set in the dataset when the dataset fetches rows. Argument types supported:
nil :Set no columns

Array of Symbols: Used for all datasets 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 an array of symbols
fetch  [W]  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.
numrows  [W]  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.

Public Class methods

Additional options supported:

:autoid :Call autoid= with the value
:columns :Call columns= with the value
:fetch :Call fetch= with the value
:numrows :Call numrows= with the value
:extend :A module the object is extended with.
:sqls :The array to store the SQL queries in.

[Source]

     # File lib/sequel/adapters/mock.rb, line 95
 95:       def initialize(opts={})
 96:         super
 97:         opts = @opts
 98:         self.autoid = opts[:autoid]
 99:         self.columns = opts[:columns]
100:         self.fetch = opts[:fetch]
101:         self.numrows = opts[:numrows]
102:         extend(opts[:extend]) if opts[:extend]
103:         @sqls = opts[:sqls] || []
104:       end

Public Instance methods

Return a related Connection option connecting to the given shard.

[Source]

     # File lib/sequel/adapters/mock.rb, line 107
107:       def connect(server)
108:         Connection.new(self, server, server_opts(server))
109:       end

Store the sql used for later retrieval with sqls, and return the appropriate value using either the autoid, fetch, or numrows methods.

[Source]

     # File lib/sequel/adapters/mock.rb, line 114
114:       def execute(sql, opts={}, &block)
115:         synchronize(opts[:server]){|c| _execute(c, sql, opts, &block)} 
116:       end
execute_ddl(sql, opts={}, &block)

Alias for execute

Store the sql used, and return the value of the numrows method.

[Source]

     # File lib/sequel/adapters/mock.rb, line 120
120:       def execute_dui(sql, opts={})
121:         execute(sql, opts.merge(:meth=>:numrows))
122:       end

Store the sql used, and return the value of the autoid method.

[Source]

     # File lib/sequel/adapters/mock.rb, line 125
125:       def execute_insert(sql, opts={})
126:         execute(sql, opts.merge(:meth=>:autoid))
127:       end

Return all stored SQL queries, and clear the cache of SQL queries.

[Source]

     # File lib/sequel/adapters/mock.rb, line 131
131:       def sqls
132:         s = @sqls.dup
133:         @sqls.clear
134:         s
135:       end

Enable use of savepoints.

[Source]

     # File lib/sequel/adapters/mock.rb, line 138
138:       def supports_savepoints?
139:         true
140:       end

[Validate]