Sha256: 7954b5b83be85f1cfd20359ca624819143ea2fab4fe49ed32af716cd306e1f99
Contents?: true
Size: 1.04 KB
Versions: 3
Compression:
Stored size: 1.04 KB
Contents
# Implementation courtesy of db-charmer. module Octopus module AbstractAdapter module OctopusShard class InstrumenterDecorator < ActiveSupport::BasicObject 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
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
ar-octopus-0.6.1 | lib/octopus/rails3/abstract_adapter.rb |
ar-octopus-0.6.0 | lib/octopus/rails3/abstract_adapter.rb |
ar-octopus-0.5.0 | lib/octopus/rails3/abstract_adapter.rb |