Sha256: 68a143b132668685848509769f89fcb5a3f46a4906abce3618daae6446670d05
Contents?: true
Size: 1.44 KB
Versions: 1
Compression:
Stored size: 1.44 KB
Contents
module ActiveRecord module ShardFor class Config attr_reader :cluster_configs, :connection_routers def initialize @cluster_configs = {} @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.1 | lib/activerecord/shard_for/config.rb |