module Sequel::UnthreadedServerBlock

Adds #with_server support for the sharded single connection pool.

Public Instance Methods

with_server(server) { || ... } click to toggle source

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

# File lib/sequel/extensions/server_block.rb, line 71
def with_server(server)
  begin
    set_default_server(server)
    yield
  ensure
    clear_default_server
  end
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, line 89
def clear_default_server
  @default_servers.pop
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, line 94
def pick_server(server)
  if @default_servers.empty?
    super
  else
    case server
    when :default, nil, :read_only
      @default_servers.last
    else
      super
    end
  end
end
set_default_server(server) click to toggle source

Make the given server the new default server.

# File lib/sequel/extensions/server_block.rb, line 83
def set_default_server(server)
  @default_servers << server
end