Class Sequel::SingleConnectionPool
In: lib/sequel/connection_pool/single.rb
Parent: Sequel::ConnectionPool

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.

Methods

all_connections   disconnect   hold   max_size   new   pool_type   size  

Public Class methods

[Source]

    # File lib/sequel/connection_pool/single.rb, line 7
 7:   def initialize(db, opts=OPTS)
 8:     super
 9:     @conn = []
10:   end

Public Instance methods

Yield the connection if one has been made.

[Source]

    # File lib/sequel/connection_pool/single.rb, line 13
13:   def all_connections
14:     yield @conn.first if @conn
15:   end

Disconnect the connection from the database.

[Source]

    # File lib/sequel/connection_pool/single.rb, line 18
18:   def disconnect(opts=nil)
19:     return unless c = @conn.first
20:     disconnect_connection(c)
21:     @conn.clear
22:     nil
23:   end

Yield the connection to the block.

[Source]

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

The SingleConnectionPool always has a maximum size of 1.

[Source]

    # File lib/sequel/connection_pool/single.rb, line 39
39:   def max_size
40:     1
41:   end

[Source]

    # File lib/sequel/connection_pool/single.rb, line 43
43:   def pool_type
44:     :single
45:   end

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

[Source]

    # File lib/sequel/connection_pool/single.rb, line 49
49:   def size
50:     @conn.empty? ? 0 : 1
51:   end

[Validate]