Class: Net::HTTP

Inherits:
Object
  • Object
show all
Defined in:
lib/intercepts/net_http.rb

Instance Method Summary collapse

Constructor Details

#initialize(*args, &block) ⇒ HTTP

Returns a new instance of HTTP.



6
7
8
9
# File 'lib/intercepts/net_http.rb', line 6

def initialize(*args, &block)
  Middleman.log "CONNECT: #{args.inspect}" if Middleman.options[:verbose]
  old_initialize(*args, &block)
end

Instance Method Details

#old_initializeObject



3
# File 'lib/intercepts/net_http.rb', line 3

alias :old_initialize :initialize

#old_requestObject



4
# File 'lib/intercepts/net_http.rb', line 4

alias :old_request :request

#request(*args, &block) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/intercepts/net_http.rb', line 11

def request(*args, &block)
  req = args[0].class::METHOD      
  key = "#{req}:#{@address}:#{@port}#{args[0].path}"     

  if started? && Middleman.options[:verbose]
    Middleman.log "#{req} #{@address}:#{@port}#{args[0].path}"     
  end
  
  if result = Middleman.retrieve(key)
    Middleman.log "CACHE HIT"             
  else
    Middleman.log "NOT IN CACHE"             
    result = old_request(*args, &block)        
    Middleman.cache(key, result)
  end
  
  if started? && Middleman.options[:verbose]
    Middleman.log "PARAMS #{CGI.parse(args[0].body).inspect} " if args[0].body && req != 'CONNECT'
    Middleman.log "RESPONSE: #{result.class.name}"
  end      

  result
end