Sha256: 3934c64ca3dd2acda35c6a065e75e8dbc8c32a73186ddd9bd6a1e382c6d3c078

Contents?: true

Size: 943 Bytes

Versions: 3

Compression:

Stored size: 943 Bytes

Contents

require "ipaddr"

module Watchtower
  module ApplicationControllerBase
    
    def self.included(base)
      base.class_eval do
        def rescue_action_in_public_with_watchtower(*args)
          WatchedException.create_from_exception(self, args.first)
          rescue_action_in_public_without_watchtower(*args)
        end
        
        alias_method_chain :rescue_action_in_public, :watchtower
      end
      
      base.extend ClassMethods
    end
    
    module ClassMethods
      def force_public_request_handling!
        
        self.class_eval do
          def consider_all_requests_local_with_override(*args)
            false
          end
          
          def local_request_with_override?(*args)
            false
          end
          
          alias_method_chain :consider_all_requests_local, :override
          alias_method_chain :local_request?, :override
        end
        
      end
    end
    
  end
end
  

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
joshuaclayton-watchtower-0.1.2 lib/watchtower/application_controller_base.rb
joshuaclayton-watchtower-0.1.3 lib/watchtower/application_controller_base.rb
joshuaclayton-watchtower-0.1.4 lib/watchtower/application_controller_base.rb