Methods
Included Modules
- ACBaseExtension
- ACBenchmarkingExtension
- ACRescueExtension
- AVBenchmarkHelperExtension
- ARAbstractAdapterExtension
- CacheStoreExtension
Public Class methods
[ show source ]
# File lib/phusion_passenger/classic_rails_extensions/init.rb, line 45
45: def self.install!(options)
46: @@analytics_logger = options["analytics_logger"]
47: # If the Ruby interpreter supports GC statistics then turn it on
48: # so that the info can be logged.
49: GC.enable_stats if GC.respond_to?(:enable_stats)
50:
51: if defined?(ActionController)
52: require 'phusion_passenger/classic_rails_extensions/analytics_logging/ac_base_extension'
53: ActionController::Base.class_eval do
54: include ACBaseExtension
55: alias_method_chain :perform_action, :passenger
56: alias_method_chain :render, :passenger
57: end
58:
59: require 'phusion_passenger/classic_rails_extensions/analytics_logging/ac_benchmarking_extension'
60: ActionController::Benchmarking::ClassMethods.class_eval do
61: include ACBenchmarkingExtension
62: alias_method_chain :benchmark, :passenger
63: end
64:
65: require 'phusion_passenger/classic_rails_extensions/analytics_logging/ac_rescue_extension'
66: ActionController::Rescue.class_eval do
67: include ACRescueExtension
68: alias_method_chain :rescue_action, :passenger
69: end
70: end
71:
72: if defined?(ActionView)
73: require 'phusion_passenger/classic_rails_extensions/analytics_logging/av_benchmark_helper_extension'
74: ActionView::Helpers::BenchmarkHelper.class_eval do
75: include AVBenchmarkHelperExtension
76: alias_method_chain :benchmark, :passenger
77: end
78: end
79:
80: if defined?(ActiveRecord)
81: require 'phusion_passenger/classic_rails_extensions/analytics_logging/ar_abstract_adapter_extension'
82: ActiveRecord::ConnectionAdapters::AbstractAdapter.class_eval do
83: include ARAbstractAdapterExtension
84: alias_method_chain :log, :passenger
85: end
86: end
87:
88: if defined?(ActiveSupport::Cache::Store) && Rails.cache
89: require 'phusion_passenger/classic_rails_extensions/analytics_logging/as_cache_extension'
90: ActiveSupport::Cache::Store.class_eval do
91: include CacheStoreExtension
92: case Rails::VERSION::MINOR
93: when 1
94: # Rails 2.1
95: alias_method :fetch, :fetch_2_1
96: when 2
97: # Rails 2.2
98: alias_method :fetch, :fetch_2_2
99: when 3
100: # Rails 2.3
101: alias_method :fetch, :fetch_2_3
102: end
103: end
104: Rails.cache.extend(ConcreteCacheStoreExtension)
105: end
106: end
[ show source ]
# File lib/phusion_passenger/classic_rails_extensions/init.rb, line 108
108: def self.new_transaction_log(env, category = :requests)
109: if env[PASSENGER_TXN_ID]
110: group_name = env[PASSENGER_GROUP_NAME]
111: union_station_key = env[PASSENGER_UNION_STATION_KEY]
112: log = @@analytics_logger.new_transaction(group_name, category,
113: union_station_key)
114: begin
115: yield log
116: ensure
117: log.close
118: end
119: end
120: end