 	///
 	/// - Returns: `true` if request can be intercepted, `false` otherwise.
 	public static func canIncerceptRequest(request: NSURLRequest) -> Bool {
-		return enabled && requestPredicates.reduce(true) {
+		return requestPredicates.reduce(true) {
 			return $0 && !$1.evaluateWithObject(request)
 		}
 	}

			registerBodyDeserializer(deserializer, forContentType: contentType)
		}
	}
	
	/// Deserializes a HTTP body into a string.
	///


import Foundation

/// ResponseDetective configuration cluster class that defines the behavior
/// of request interception and logging.
@objc(RDTResponseDetective) public final class ResponseDetective: NSObject {
	
	/// An output facility for reporting requests, responses and errors.
	public static var outputFacility: OutputFacility = ConsoleOutputFacility()
	
	/// A class of the URL protocol used to intercept requests.
	public static let URLProtocolClass: NSURLProtocol.Type = URLProtocol.self
	
	/// A storage for request predicates.
	private static var requestPredicates: [NSPredicate] = []

	/// Body deserializers stored by a supported content type.
	private static var customBodyDeserializers: [String: BodyDeserializer] = [:]

	/// Default body deserializers provided by ResponseDetective.
	private static let defaultBodyDeserializers: [String: BodyDeserializer] = [
		"*/json": JSONBodyDeserializer(),
		"*/xml": XMLBodyDeserializer(),
		"*/html": HTMLBodyDeserializer(),
		"image/*": ImageBodyDeserializer(),
		"text/*": PlaintextBodyDeserializer(),
	]
	
	/// Resets the ResponseDetective mutable state.
	public static func reset() {
		outputFacility = ConsoleOutputFacility()
		requestPredicates = []
		customBodyDeserializers = [:]
	}

	/// Enables ResponseDetective in an URL session configuration.
	///
	/// - Parameters configuration: The URL session configuration to enable the
	///   session in.
	public static func enableInURLSessionConfiguration(configuration: NSURLSessionConfiguration) {
		configuration.protocolClasses?.insert(URLProtocolClass, atIndex: 0)
	}
	
	/// Ignores requests matching the given predicate. The predicate will be
	/// evaluated with an instance of NSURLRequest.
	///
	/// - Parameter predicate: A predicate for matching a request. If the
	///   predicate evaluates to `false`, the request is not intercepted.
	public static func ignoreRequestsMatchingPredicate(predicate: NSPredicate) {
		requestPredicates.append(predicate)
	}
