Sha256: 175079309a5ceac68caa2ac5b83f4cf0117023d5e22fb435c5195020d1da099e
Contents?: true
Size: 1.14 KB
Versions: 1
Compression:
Stored size: 1.14 KB
Contents
# Implementation courtesy of db-charmer. module Octopus module AbstractAdapter module OctopusShard parent = ActiveSupport::BasicObject if Octopus.rails4? parent = ActiveSupport::ProxyObject end class InstrumenterDecorator < parent def initialize(adapter, instrumenter) @adapter = adapter @instrumenter = instrumenter end def instrument(name, payload = {}, &block) payload[:octopus_shard] ||= @adapter.octopus_shard @instrumenter.instrument(name, payload, &block) end def method_missing(meth, *args, &block) @instrumenter.send(meth, *args, &block) end end def self.included(base) base.alias_method_chain :initialize, :octopus_shard end def octopus_shard @config[:octopus_shard] end def initialize_with_octopus_shard(*args) initialize_without_octopus_shard(*args) @instrumenter = InstrumenterDecorator.new(self, @instrumenter) end end end end ActiveRecord::ConnectionAdapters::AbstractAdapter.send(:include, Octopus::AbstractAdapter::OctopusShard)
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
ar-octopus-0.8.1 | lib/octopus/rails3/abstract_adapter.rb |