Class: Acfs::Middleware::Serializer
- Inherits:
-
Base
- Object
- Base
- Acfs::Middleware::Serializer
show all
- Defined in:
- lib/acfs/middleware/serializer.rb
Overview
A base middleware that does not modify request or response. Can be used as super class for custom middleware implementations.
Instance Attribute Summary
Attributes inherited from Base
#app, #options
Instance Method Summary
collapse
Methods inherited from Base
#initialize
Instance Method Details
#call(request) ⇒ Object
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
# File 'lib/acfs/middleware/serializer.rb', line 21
def call(request)
unless request.['Content-Type']
request.body = encode request.data
request.['Content-Type'] = mime
end
accept = request.['Accept'].to_s.split(',')
accept << "#{mime};q=#{options.fetch(:q, 1)}"
request.['Accept'] = accept.join(',')
request.on_complete do |response, nxt|
response.data = decode(response.body) if mime == response.content_type
nxt.call response
end
app.call(request)
end
|
#decode(_data) ⇒ Object
13
14
15
|
# File 'lib/acfs/middleware/serializer.rb', line 13
def decode(_data)
raise NotImplementedError
end
|
#encode(_data) ⇒ Object
9
10
11
|
# File 'lib/acfs/middleware/serializer.rb', line 9
def encode(_data)
raise NotImplementedError
end
|
#mime ⇒ Object
17
18
19
|
# File 'lib/acfs/middleware/serializer.rb', line 17
def mime
raise NotImplementedError
end
|