module Sequel::UnthreadedServerBlock

Adds with_server support for the sharded single connection pool.

Public Instance Methods

with_server(default_server, read_only_server=default_server) { || ... } click to toggle source

Set a default server/shard to use inside the block.

   # File lib/sequel/extensions/server_block.rb
90 def with_server(default_server, read_only_server=default_server)
91   begin
92     set_default_server(default_server, read_only_server)
93     yield
94   ensure
95     clear_default_server
96   end
97 end

Private Instance Methods

clear_default_server() click to toggle source

Remove the current default server, restoring the previous default server.

    # File lib/sequel/extensions/server_block.rb
108 def clear_default_server
109   @default_servers.pop
110 end
pick_server(server) click to toggle source

Use the server given to with_server if appropriate.

Calls superclass method
    # File lib/sequel/extensions/server_block.rb
113 def pick_server(server)
114   if @default_servers.empty?
115     super
116   else
117     case server
118     when :default, nil
119       @servers[@default_servers[-1][0]]
120     when :read_only
121       @servers[@default_servers[-1][1]]
122     else
123       super
124     end
125   end
126 end
set_default_server(default_server, read_only_server=default_server) click to toggle source

Make the given server the new default server.

    # File lib/sequel/extensions/server_block.rb
102 def set_default_server(default_server, read_only_server=default_server)
103   @default_servers << [default_server, read_only_server]
104 end