# File lib/apipie/extractor/recorder.rb, line 19 def analyse_controller(controller) @controller = controller.class @action = controller.params[:action] end
# File lib/apipie/extractor/recorder.rb, line 8 def analyse_env(env) @verb = env["REQUEST_METHOD"].to_sym @path = env["PATH_INFO"].sub(%r^\/*/,"/") @query = env["QUERY_STRING"] unless env["QUERY_STRING"].blank? @params = Rack::Utils.parse_nested_query(@query) @params.merge!(env["action_dispatch.request.request_parameters"] || {}) if data = parse_data(env["rack.input"].read) @request_data = data end end
# File lib/apipie/extractor/recorder.rb, line 24 def analyse_response(response) if response.last.respond_to?(:body) && data = parse_data(response.last.body) @response_data = data end @code = response.first end
# File lib/apipie/extractor/recorder.rb, line 31 def analyze_functional_test(test_context) request, response = test_context.request, test_context.response @verb = request.request_method.to_sym @path = request.path @params = request.request_parameters if [:POST, :PUT].include?(@verb) @request_data = @params else @query = request.query_string end @response_data = parse_data(response.body) @code = response.code end
# File lib/apipie/extractor/recorder.rb, line 45 def parse_data(data) return nil if data.to_s =~ %r^\s*$/ JSON.parse(data) rescue Exception => e data end
# File lib/apipie/extractor/recorder.rb, line 64 def record if @controller {:controller => @controller, :action => @action, :verb => @verb, :path => @path, :params => @params, :query => @query, :request_data => @request_data, :response_data => @response_data, :code => @code} else nil end end
# File lib/apipie/extractor/recorder.rb, line 52 def reformat_data(data) parsed = parse_data(data) case parsed when nil nil when String parsed else JSON.pretty_generate().gsub(%r: \[\s*\]/,": []").gsub(%r\{\s*\}/,"{}") end end
# File lib/apipie/extractor/recorder.rb, line 82 def api_description end
# File lib/apipie/extractor/recorder.rb, line 4 def initialize @ignored_params = [:controller, :action] end