-
Notifications
You must be signed in to change notification settings - Fork 27
/
Copy pathserializer.rb
74 lines (64 loc) · 1.51 KB
/
serializer.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
require "rack"
require "readme/metrics"
require "readme/har/request_serializer"
require "readme/har/response_serializer"
require "readme/har/collection"
module Readme
module Har
class Serializer
HAR_VERSION = "1.2"
def initialize(request, response, start_time, end_time, filter)
@http_request = request
@response = response
@start_time = start_time
@end_time = end_time
@filter = filter
end
def to_json
{
log: {
version: HAR_VERSION,
creator: creator,
entries: entries
}
}.to_json
end
private
def creator
{
name: Readme::Metrics::SDK_NAME,
version: Readme::Metrics::VERSION,
comment: "#{Readme::Metrics::PLATFORM}/#{RUBY_VERSION}"
}
end
def entries
[
{
cache: {},
timings: timings,
request: request,
response: response,
startedDateTime: @start_time.iso8601,
time: elapsed_time
}
]
end
def timings
{
send: 0,
receive: 0,
wait: elapsed_time
}
end
def elapsed_time
((@end_time - @start_time) * 1000).to_i
end
def request
Har::RequestSerializer.new(@http_request, @filter).as_json
end
def response
Har::ResponseSerializer.new(@http_request, @response, @filter).as_json
end
end
end
end