class Sequel::SingleConnectionPool

This is the fastest connection pool, since it isn’t a connection pool at all. It is just a wrapper around a single connection that uses the connection pool API.

Public Class Methods

new(db, opts=OPTS) click to toggle source
Calls superclass method Sequel::ConnectionPool::new
   # File lib/sequel/connection_pool/single.rb
 7 def initialize(db, opts=OPTS)
 8   super
 9   @conn = []
10 end

Public Instance Methods

all_connections() { |first| ... } click to toggle source

Yield the connection if one has been made.

   # File lib/sequel/connection_pool/single.rb
13 def all_connections
14   yield @conn.first unless @conn.empty?
15 end
disconnect(opts=nil) click to toggle source

Disconnect the connection from the database.

   # File lib/sequel/connection_pool/single.rb
18 def disconnect(opts=nil)
19   return unless c = @conn.first
20   disconnect_connection(c)
21   @conn.clear
22   nil
23 end
hold(server=nil) { |c| ... } click to toggle source

Yield the connection to the block.

   # File lib/sequel/connection_pool/single.rb
26 def hold(server=nil)
27   unless c = @conn.first
28     @conn.replace([c = make_new(:default)])
29   end
30   yield c
31 rescue Sequel::DatabaseDisconnectError, *@error_classes => e
32   disconnect if disconnect_error?(e)
33   raise
34 end
max_size() click to toggle source

The SingleConnectionPool always has a maximum size of 1.

   # File lib/sequel/connection_pool/single.rb
37 def max_size
38   1
39 end
pool_type() click to toggle source
   # File lib/sequel/connection_pool/single.rb
41 def pool_type
42   :single
43 end
size() click to toggle source

The SingleConnectionPool always has a size of 1 if connected and 0 if not.

   # File lib/sequel/connection_pool/single.rb
47 def size
48   @conn.empty? ? 0 : 1
49 end

Private Instance Methods

preconnect(concurrent = nil) click to toggle source

Make sure there is a valid connection.

   # File lib/sequel/connection_pool/single.rb
54 def preconnect(concurrent = nil)
55   hold{}
56 end