Sha256: 1258f9e4bc0f62560f3bc172b3c1d41a7e45876db9462ba76ea80f48caeedd4d

Contents?: true

Size: 681 Bytes

Versions: 1

Compression:

Stored size: 681 Bytes

Contents

module ActiveRecord
  class Relation
    attr_accessor :slavery_target

    # Supports queries like User.on_slave.to_a
    alias_method :exec_queries_without_slavery, :exec_queries

    def exec_queries
      if slavery_target
        Slavery.on_slave(slavery_target) { exec_queries_without_slavery }
      else
        exec_queries_without_slavery
      end
    end


    # Supports queries like User.on_slave.count
    alias_method :calculate_without_slavery, :calculate

    def calculate(*args)
      if slavery_target
        Slavery.on_slave(slavery_target) { calculate_without_slavery(*args) }
      else
        calculate_without_slavery(*args)
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
slavery-3.0.0 lib/slavery/active_record/relation.rb