Sha256: 81c7baaac58ad28a9f6eabd4d750ddb61e8c13cd63020870d76da25a4ba4976b
Contents?: true
Size: 804 Bytes
Versions: 1
Compression:
Stored size: 804 Bytes
Contents
module Octopus class RelationProxy < BasicObject include ::Octopus::ShardTracking::Attribute module CaseFixer def ===(other) other = other.ar_relation while ::Octopus::RelationProxy === other super end end attr_accessor :ar_relation def initialize(shard, ar_relation) @current_shard = shard @ar_relation = ar_relation end def method_missing(method, *args, &block) run_on_shard { @ar_relation.public_send(method, *args, &block) } end def ==(other) case other when ::Octopus::RelationProxy method_missing(:==, other.ar_relation) else method_missing(:==, other) end end alias_method :eql?, :== end end ActiveRecord::Relation.extend(Octopus::RelationProxy::CaseFixer)
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
ar-octopus-0.8.5 | lib/octopus/relation_proxy.rb |