class Hanami::Providers::DB::Gateway

@api public @since 2.2.0

Public Instance Methods

adapter(name = Undefined) { |adapter| ... } click to toggle source

@api public @since 2.2.0

# File lib/hanami/providers/db/gateway.rb, line 22
def adapter(name = Undefined)
  return config.adapter if name.eql?(Undefined)

  if block_given?
    # If a block is given, explicitly configure the gateway's adapter
    config.adapter_name = name
    adapter = (config.adapter ||= Adapters.new_adapter(name))
    yield adapter
    adapter
  else
    # If an adapter name is given without a block, use the default adapter configured with
    # the same name
    config.adapter_name = adapter_name
  end
end
cache_keys() click to toggle source

@api private

# File lib/hanami/providers/db/gateway.rb, line 67
def cache_keys
  [config.database_url, config.connection_options, config.adapter.gateway_cache_keys]
end
configure_adapter(default_adapters) click to toggle source

@api private

# File lib/hanami/providers/db/gateway.rb, line 55
def configure_adapter(default_adapters)
  default_adapter = default_adapters.find(config.adapter_name)
  config.adapter ||= default_adapter.dup

  config.adapter.configure_from_adapter(default_adapter)

  config.adapter.configure_for_database(config.database_url)

  self
end
connection_options(**options) click to toggle source

@api public @since 2.2.0

# File lib/hanami/providers/db/gateway.rb, line 40
def connection_options(**options)
  if options.any?
    config.connection_options.merge!(options)
  end

  config.connection_options
end
options() click to toggle source

@api public @since 2.2.0

# File lib/hanami/providers/db/gateway.rb, line 50
def options
  {**connection_options, **config.adapter.gateway_options}
end

Private Instance Methods

method_missing(name, *args, &block) click to toggle source
Calls superclass method
# File lib/hanami/providers/db/gateway.rb, line 73
def method_missing(name, *args, &block)
  if config.respond_to?(name)
    config.public_send(name, *args, &block)
  else
    super
  end
end
respond_to_missing?(name, _include_all = false) click to toggle source
Calls superclass method
# File lib/hanami/providers/db/gateway.rb, line 81
def respond_to_missing?(name, _include_all = false)
  config.respond_to?(name) || super
end