Class: Useless::Doc::Rack::Transform
- Inherits:
-
Object
- Object
- Useless::Doc::Rack::Transform
- Defined in:
- lib/useless/doc/rack/transform.rb
Overview
Doc::Rack::Transform takes the a JSON response and attempts to parse it via Doc::Serialization::Load and render it as HTML via the UI specified by env.
If the JSON cannot be parsed, the response will be a 502.
Instance Method Summary collapse
- #call(env) ⇒ Object
-
#initialize(app) ⇒ Transform
constructor
A new instance of Transform.
Constructor Details
#initialize(app) ⇒ Transform
14 15 16 |
# File 'lib/useless/doc/rack/transform.rb', line 14 def initialize(app) @app = app end |
Instance Method Details
#call(env) ⇒ Object
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/useless/doc/rack/transform.rb', line 18 def call(env) unless env['useless.doc.ui'] raise 'No UI specified.' end response = @app.call(env) if response[0] == 200 begin resource = Serialization::Load.resource(response[2].first) html = env['useless.doc.ui'].html(resource) [200, {'Content-Type' => 'text/html'}, [html]] rescue Oj::ParseError [502, {'Content-Type' => 'text/plain'}, ['Documentation JSON is malformed.']] end else response end end |