Class: ActiveRecordProxyAdapters::Configuration
- Inherits:
-
Object
- Object
- ActiveRecordProxyAdapters::Configuration
- Includes:
- SynchronizableConfiguration
- Defined in:
- lib/active_record_proxy_adapters/configuration.rb
Overview
Provides a global configuration object to configure how the proxy should behave.
Constant Summary collapse
- DEFAULT_DATABASE_NAME =
:primary- DEFAULT_REPLICA_DATABASE_NAME =
:primary_replica- REGEXP_TIMEOUT_STRATEGY_REGISTRY =
{ log: proc { |sql_string, regex = nil| ActiveRecordProxyAdapters.config.logger.error(TIMEOUT_MESSAGE_BUILDER.call(sql_string, regex)) }, raise: proc { |sql_string, regex = nil| raise ActiveRecordProxyAdapters::RegexpTimeoutError, TIMEOUT_MESSAGE_BUILDER.call(sql_string, regex) } }.freeze
Instance Attribute Summary collapse
-
#context_store ⇒ Class
readonly
The context that is used to store the current request’s state.
-
#logger ⇒ Logger
The logger to use for logging messages.
-
#regexp_timeout_strategy ⇒ Proc
The timeout strategy to use for regex matching.
Instance Method Summary collapse
- #cache ⇒ Object
- #checkout_timeout ⇒ Object
- #checkout_timeout=(checkout_timeout) ⇒ Object
- #database(database_name) ⇒ Object
-
#initialize ⇒ Configuration
constructor
A new instance of Configuration.
- #log_subscriber_primary_prefix ⇒ Object
- #log_subscriber_primary_prefix=(prefix) ⇒ Object
- #log_subscriber_replica_prefix ⇒ Object
- #log_subscriber_replica_prefix=(prefix) ⇒ Object
- #proxy_delay ⇒ Object
- #proxy_delay=(proxy_delay) ⇒ Object
Constructor Details
#initialize ⇒ Configuration
Returns a new instance of Configuration.
56 57 58 59 60 61 62 63 64 |
# File 'lib/active_record_proxy_adapters/configuration.rb', line 56 def initialize @lock = Monitor.new self.cache_configuration = CacheConfiguration.new(@lock) self.context_store = ActiveRecordProxyAdapters::Context self.regexp_timeout_strategy = :log self.logger = ActiveRecord::Base.logger || Logger.new($stdout) @database_configurations = {} end |
Instance Attribute Details
#context_store ⇒ Class
Returns The context that is used to store the current request’s state.
48 49 50 |
# File 'lib/active_record_proxy_adapters/configuration.rb', line 48 def context_store @context_store end |
#logger ⇒ Logger
Returns The logger to use for logging messages.
54 55 56 |
# File 'lib/active_record_proxy_adapters/configuration.rb', line 54 def logger @logger end |
#regexp_timeout_strategy ⇒ Proc
Returns The timeout strategy to use for regex matching.
51 52 53 |
# File 'lib/active_record_proxy_adapters/configuration.rb', line 51 def regexp_timeout_strategy @regexp_timeout_strategy end |
Instance Method Details
#cache ⇒ Object
124 125 126 |
# File 'lib/active_record_proxy_adapters/configuration.rb', line 124 def cache block_given? ? yield(cache_configuration) : cache_configuration end |
#checkout_timeout ⇒ Object
90 91 92 |
# File 'lib/active_record_proxy_adapters/configuration.rb', line 90 def checkout_timeout default_database_config.checkout_timeout end |
#checkout_timeout=(checkout_timeout) ⇒ Object
94 95 96 |
# File 'lib/active_record_proxy_adapters/configuration.rb', line 94 def checkout_timeout=(checkout_timeout) default_database_config.checkout_timeout = checkout_timeout end |
#database(database_name) ⇒ Object
117 118 119 120 121 122 |
# File 'lib/active_record_proxy_adapters/configuration.rb', line 117 def database(database_name) key = database_name.to_s lock.synchronize { @database_configurations[key] ||= DatabaseConfiguration.new } block_given? ? yield(database_configurations[key]) : database_configurations[key] end |
#log_subscriber_primary_prefix ⇒ Object
70 71 72 |
# File 'lib/active_record_proxy_adapters/configuration.rb', line 70 def log_subscriber_primary_prefix default_database_config.log_subscriber_prefix end |
#log_subscriber_primary_prefix=(prefix) ⇒ Object
66 67 68 |
# File 'lib/active_record_proxy_adapters/configuration.rb', line 66 def log_subscriber_primary_prefix=(prefix) default_database_config.log_subscriber_prefix = prefix end |
#log_subscriber_replica_prefix ⇒ Object
78 79 80 |
# File 'lib/active_record_proxy_adapters/configuration.rb', line 78 def log_subscriber_replica_prefix default_replica_config.log_subscriber_prefix end |
#log_subscriber_replica_prefix=(prefix) ⇒ Object
74 75 76 |
# File 'lib/active_record_proxy_adapters/configuration.rb', line 74 def log_subscriber_replica_prefix=(prefix) default_replica_config.log_subscriber_prefix = prefix end |
#proxy_delay ⇒ Object
82 83 84 |
# File 'lib/active_record_proxy_adapters/configuration.rb', line 82 def proxy_delay default_database_config.proxy_delay end |
#proxy_delay=(proxy_delay) ⇒ Object
86 87 88 |
# File 'lib/active_record_proxy_adapters/configuration.rb', line 86 def proxy_delay=(proxy_delay) default_database_config.proxy_delay = proxy_delay end |