Sha256: 7e54fad21066538504301912cb3421bf68346bc285de322326b792c08603b89f

Contents?: true

Size: 578 Bytes

Versions: 5

Compression:

Stored size: 578 Bytes

Contents

module ActiveRecord::Turntable
  module ShardingCondition
    private

      def foreign_shard_key
        options[:foreign_shard_key] || foreign_target_model.turntable_shard_key
      end

      def foreign_target_model
        respond_to?(:model) ? model : owner
      end

      def should_use_shard_key?
        sharded_by_same_key? || !!options[:foreign_shard_key]
      end

      def sharded_by_same_key?
        foreign_target_model.turntable_enabled? &&
          klass.turntable_enabled? &&
          foreign_shard_key == klass.turntable_shard_key
      end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
activerecord-turntable-4.1.0 lib/active_record/turntable/sharding_condition.rb
activerecord-turntable-4.0.0 lib/active_record/turntable/sharding_condition.rb
activerecord-turntable-3.1.0 lib/active_record/turntable/sharding_condition.rb
activerecord-turntable-3.0.1 lib/active_record/turntable/sharding_condition.rb
activerecord-turntable-3.0.0 lib/active_record/turntable/sharding_condition.rb