diff options
Diffstat (limited to 'actioncable/lib/action_cable/server/configuration.rb')
-rw-r--r-- | actioncable/lib/action_cable/server/configuration.rb | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/actioncable/lib/action_cable/server/configuration.rb b/actioncable/lib/action_cable/server/configuration.rb index 935133cbba..2bed5a9ea2 100644 --- a/actioncable/lib/action_cable/server/configuration.rb +++ b/actioncable/lib/action_cable/server/configuration.rb @@ -5,9 +5,9 @@ module ActionCable class Configuration attr_accessor :logger, :log_tags attr_accessor :connection_class, :worker_pool_size - attr_accessor :redis, :channels_path + attr_accessor :channels_path attr_accessor :disable_request_forgery_protection, :allowed_request_origins - attr_accessor :url + attr_accessor :config_opts, :url def initialize @log_tags = [] @@ -29,6 +29,22 @@ module ActionCable Pathname.new(channel_path).basename.to_s.split('.').first.camelize end end + + ADAPTER = ActionCable::StorageAdapter + + # Returns constant of storage adapter specified in config/cable.yml + # If the adapter cannot be found, this will default to the Redis adapter + def storage_adapter + # "ActionCable::StorageAdapter::#{adapter.capitalize}" + adapter = config_opts['adapter'] + adapter_const = "ActionCable::StorageAdapter::#{adapter.capitalize}" + + if Object.const_defined?(adapter_const) + adapter_const.constantize + else + ADAPTER_BASE::Redis + end + end end end end |