aboutsummaryrefslogtreecommitdiffstats
path: root/actioncable/lib/action_cable/server/configuration.rb
diff options
context:
space:
mode:
Diffstat (limited to 'actioncable/lib/action_cable/server/configuration.rb')
-rw-r--r--actioncable/lib/action_cable/server/configuration.rb20
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