class DbCharmer::Sharding::Method::Range
Attributes
ranges[RW]
Public Class Methods
new(config)
click to toggle source
# File lib/db_charmer/sharding/method/range.rb, line 7 def initialize(config) @ranges = config[:ranges] ? config[:ranges].clone : raise(ArgumentError, "No :ranges defined!") end
Public Instance Methods
shard_connections()
click to toggle source
# File lib/db_charmer/sharding/method/range.rb, line 27 def shard_connections ranges.values.uniq end
shard_for_key(key)
click to toggle source
# File lib/db_charmer/sharding/method/range.rb, line 11 def shard_for_key(key) return ranges[:default] if key == :default ranges.each do |range, shard| next if range == :default return shard if range.member?(key.to_i) end return ranges[:default] if ranges[:default] raise ArgumentError, "Invalid key value, no shards found for this key!" end
support_default_shard?()
click to toggle source
# File lib/db_charmer/sharding/method/range.rb, line 23 def support_default_shard? ranges.has_key?(:default) end