Sha256: f8c12d9395a920e0db0f40f9f077b825eaff757f3d6d067b9b3c26f3b60fc924
Contents?: true
Size: 1.45 KB
Versions: 1
Compression:
Stored size: 1.45 KB
Contents
module ActiveRecord module ShardFor class Config attr_reader :cluster_configs, :connection_routers def initialize @cluster_configs = {} @connection_routers = {} end # Define config for specific cluster. # See README.md for example. # @param [String] cluster_name # @yield [ActiveRecord::ShardFor::ClusterConfig] # @return [ActiveRecord::ShardFor::ClusterConfig] # raise [RuntimeError] when this cluster config is invalid. def define_cluster(cluster_name, &block) cluster_config = ClusterConfig.new(cluster_name) cluster_config.instance_eval(&block) cluster_configs[cluster_name] = cluster_config end # @param [Symbol] cluster_name # @return [ActiveRecord::ShardFor::ClusterConfig] # @raise [KeyError] when not registered key given def fetch_cluster_config(cluster_name) cluster_configs.fetch(cluster_name) end # Register connection router for ActiveRecord::ShardFor # See README.md for example. # @param [Symbol] router_name # @router_class [Class] router_class def register_connection_router(router_name, router_class) connection_routers[router_name] = router_class end # @param [Symbol] router_name # @return [Class] registered class by [#register_router] def fetch_connection_router(router_name) connection_routers[router_name] end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
activerecord-shard_for-0.1.2 | lib/activerecord/shard_for/config.rb |