class ActionCable::Server::Configuration
Action Cable Configuration
Экземпляр этого объекта конфигурации доступен через ActionCable.server.config, что позволяет настраивать Action Cable в инициализаторе конфигурации Rails.
Атрибуты
Общедоступные методы класса
# File actioncable/lib/action_cable/server/configuration.rb, line 22
def initialize
@log_tags = []
@connection_class = -> { ActionCable::Connection::Base }
@worker_pool_size = 4
@disable_request_forgery_protection = false
@allow_same_origin_as_host = true
@filter_parameters = []
@health_check_application = ->(env) {
[200, { Rack::CONTENT_TYPE => "text/html", "date" => Time.now.httpdate }, []]
}
end Общедоступные методы экземпляра
# File actioncable/lib/action_cable/server/configuration.rb, line 40
def pubsub_adapter
adapter = (cable.fetch("adapter") { "redis" })
# Require the adapter itself and give useful feedback about
# 1. Missing adapter gems and
# 2. Adapter gems' missing dependencies.
path_to_adapter = "action_cable/subscription_adapter/#{adapter}"
begin
require path_to_adapter
rescue LoadError => e
# We couldn't require the adapter itself. Raise an exception that points out
# config typos and missing gems.
if e.path == path_to_adapter
# We can assume that a non-builtin adapter was specified, so it's either
# misspelled or missing from Gemfile.
raise e.class, "Could not load the '#{adapter}' Action Cable pubsub adapter. Ensure that the adapter is spelled correctly in config/cable.yml and that you've added the necessary adapter gem to your Gemfile.", e.backtrace
# Bubbled up from the adapter require. Prefix the exception message with some
# guidance about how to address it and reraise.
else
raise e.class, "Error loading the '#{adapter}' Action Cable pubsub adapter. Missing a gem it depends on? #{e.message}", e.backtrace
end
end
adapter = adapter.camelize
adapter = "PostgreSQL" if adapter == "Postgresql"
"ActionCable::SubscriptionAdapter::#{adapter}".constantize
end Возвращает константу адаптера подписок, указанного в config/cable.yml. Если адаптер не удаётся найти, по умолчанию используется адаптер Redis. Также проверяет, что необходимые зависимости подключены.
© 2004–2021 David Heinemeier Hansson
Licensed under the MIT License.