module ApiBlueprint::Collect::ControllerHook
Public Class Methods
included(base)
click to toggle source
# File lib/api_blueprint/collect/controller_hook.rb, line 2 def self.included(base) return unless ENV['API_BLUEPRINT_DUMP'] == '1' base.around_filter :dump_blueprint_around end
Public Instance Methods
dump_blueprint()
click to toggle source
# File lib/api_blueprint/collect/controller_hook.rb, line 60 def dump_blueprint file = ApiBlueprint::Collect::Storage.request_dump in_parser = Parser.new(request) out_parser = Parser.new(response) data = { 'request' => { 'path' => request.path, 'method' => in_parser.method, 'params' => in_parser.params, 'headers' => in_parser.headers, 'content_type' => request.content_type, 'accept' => request.accept }, 'response' => { 'status' => response.status, 'content_type' => response.content_type, 'body' => out_parser.body }, 'route' => { 'controller' => controller_name, 'action' => action_name } } spec = ApiBlueprint::Collect::Storage.spec_dump if File.exists?(spec) data['spec'] = YAML::load_file(spec) end File.write(file, data.to_yaml) end
dump_blueprint_around() { || ... }
click to toggle source
# File lib/api_blueprint/collect/controller_hook.rb, line 54 def dump_blueprint_around yield ensure dump_blueprint end