def self.install!(options)
@@analytics_logger = options["analytics_logger"]
GC.enable_stats if GC.respond_to?(:enable_stats)
if defined?(ActionController)
require 'phusion_passenger/classic_rails_extensions/analytics_logging/ac_base_extension'
ActionController::Base.class_eval do
include ACBaseExtension
alias_method_chain :perform_action, :passenger
alias_method_chain :render, :passenger
end
require 'phusion_passenger/classic_rails_extensions/analytics_logging/ac_benchmarking_extension'
ActionController::Benchmarking::ClassMethods.class_eval do
include ACBenchmarkingExtension
alias_method_chain :benchmark, :passenger
end
require 'phusion_passenger/classic_rails_extensions/analytics_logging/ac_rescue_extension'
ActionController::Rescue.class_eval do
include ACRescueExtension
alias_method_chain :rescue_action, :passenger
end
end
if defined?(ActionView)
require 'phusion_passenger/classic_rails_extensions/analytics_logging/av_benchmark_helper_extension'
ActionView::Helpers::BenchmarkHelper.class_eval do
include AVBenchmarkHelperExtension
alias_method_chain :benchmark, :passenger
end
end
if defined?(ActiveRecord)
require 'phusion_passenger/classic_rails_extensions/analytics_logging/ar_abstract_adapter_extension'
ActiveRecord::ConnectionAdapters::AbstractAdapter.class_eval do
include ARAbstractAdapterExtension
alias_method_chain :log, :passenger
end
end
if defined?(ActiveSupport::Cache::Store) && Rails.cache
require 'phusion_passenger/classic_rails_extensions/analytics_logging/as_cache_extension'
ActiveSupport::Cache::Store.class_eval do
include CacheStoreExtension
case Rails::VERSION::MINOR
when 1
alias_method :fetch, :fetch_2_1
when 2
alias_method :fetch, :fetch_2_2
when 3
alias_method :fetch, :fetch_2_3
end
end
Rails.cache.extend(ConcreteCacheStoreExtension)
end
end