Sha256: bc688220ba399ab92466a4c6a0409c0c3e9135cf9a179ca868f44a68768044a5

Contents?: true

Size: 686 Bytes

Versions: 4

Compression:

Stored size: 686 Bytes

Contents

module ActiveRecord::Turntable
  module ShardingCondition
    private

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

      def foreign_target_model
        return model if respond_to?(:model)
        return @model if instance_variable_defined?(:@model) && @model

        owner
      end

      def should_use_shard_key?
        sharded_by_same_key? || !!reflection.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

4 entries across 4 versions & 1 rubygems

Version Path
activerecord-turntable-4.4.1 lib/active_record/turntable/sharding_condition.rb
activerecord-turntable-4.4.0 lib/active_record/turntable/sharding_condition.rb
activerecord-turntable-4.3.0 lib/active_record/turntable/sharding_condition.rb
activerecord-turntable-4.2.0 lib/active_record/turntable/sharding_condition.rb