class Sequel::ConnectionGuard::Executor

Provides a DSL for accessing the database safely.

@example Safely accessing a database

DB.safe_execute do
  alive do |db|
    db[:users].all
  end

  dead do
    []
  end
end

@example Safely accessing a model

UserGuard.safe_execute do
  alive do |model|
    model.first!
  end

  # `dead` handler is optional
end

@api private @since 0.1.0

Attributes

on_dead[R]

@api private @since 0.1.0

Public Instance Methods

alive(&block) click to toggle source

@param block [Proc]

@api private @since 0.1.0

# File lib/sequel/extensions/connection_guard/executor.rb, line 38
def alive(&block)
  @on_alive = block
end
dead(&block) click to toggle source

@param block [Proc]

@api private @since 0.1.0

# File lib/sequel/extensions/connection_guard/executor.rb, line 46
def dead(&block)
  @on_dead = block
end
on_alive() click to toggle source

@raise [Sequel::ConnectionGuard::ConfigurationError] if an `alive` handler is missing

@api private @since 0.1.0

# File lib/sequel/extensions/connection_guard/executor.rb, line 54
def on_alive
  raise ConfigurationError, "`alive` handler is required for .safe_execute" if @on_alive.nil?
  @on_alive
end