Class: WireTap::Listener

Inherits:
Object
  • Object
show all
Defined in:
lib/wire_tap/listener.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(app) ⇒ Listener

Returns a new instance of Listener.



6
7
8
9
# File 'lib/wire_tap/listener.rb', line 6

def initialize app
	@app = app	
	@transactions = []
end

Instance Attribute Details

#transactionsObject (readonly)

Returns the value of attribute transactions.



5
6
7
# File 'lib/wire_tap/listener.rb', line 5

def transactions
  @transactions
end

Instance Method Details

#call(env) ⇒ Object



10
11
12
13
14
# File 'lib/wire_tap/listener.rb', line 10

def call(env)
	response = @app.call(env)		
	@transactions << parse_transaction(env, response)
	response
end

#parse_request(request) ⇒ Object



15
16
17
# File 'lib/wire_tap/listener.rb', line 15

def parse_request(request)
	RequestParser.parse(request)
end

#parse_response(response) ⇒ Object



18
19
20
21
22
23
24
25
# File 'lib/wire_tap/listener.rb', line 18

def parse_response(response)
	status,headers,body = response
	{
		:status => status,
		:content_type => headers["Content-Type"],
		:body => body
	}
end

#parse_transaction(env, response) ⇒ Object



26
27
28
29
30
31
32
# File 'lib/wire_tap/listener.rb', line 26

def parse_transaction(env, response)
	{
		:method=>env["REQUEST_METHOD"],
		:path=>env["PATH_INFO"],
		:request => parse_request(env["rack.input"].read)	
	}.merge(parse_response(response))
end