Sha256: 764206d39fc69cd7da19a8775eec8d956768c77f2862d12d61c673c036d015cd

Contents?: true

Size: 1.62 KB

Versions: 2

Compression:

Stored size: 1.62 KB

Contents

module Bullet
  class ActionController
    def self.enable
      require 'action_controller'
      case Rails.version
      when /^2.3/
        ::ActionController::Dispatcher.class_eval do
          class <<self
            alias_method :origin_reload_application, :reload_application
            def reload_application
              origin_reload_application
              Bullet.clear
            end
          end
        end
      when /^2.[2|1]/
        ::ActionController::Dispatcher.class_eval do
          alias_method :origin_reload_application, :reload_application
          def reload_application
            origin_reload_application
            Bullet.clear
          end
        end
        
        ::ActionController::Base.class_eval do
          alias_method :origin_process, :process
          def process(request, response, method = :perform_action, *arguments)
            Bullet.start_request
            response = origin_process(request, response, method = :perform_action, *arguments)
            
            if Bullet.notification?
              if response.headers["type"] and response.headers["type"].include? 'text/html' and response.body =~ %r{<html.*</html>}m
                response.body <<= Bullet.javascript_notification
                response.headers["Content-Length"] = response.body.length.to_s
              end
            
              Bullet.growl_notification
              Bullet.log_notification(request.params['PATH_INFO'])
            end
            Bullet.end_request
            response
          end
        end
      else
        puts "Gem Bullet: Unsupported rails version"
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
bullet-2.0.0.beta.2 lib/bullet/action_controller2.rb
bullet-2.0.0.beta.1 lib/bullet/action_controller2.rb