text: // Generated by CoffeeScript 1.8.0
  var dumpResponse, dumpingHandler, enhance, utils, _;
  
  _ = require('underscore');
  
  utils = require('./utils');
  
  dumpingHandler = function(request, response, uri) {
    var element, originalSend, _i, _len, _ref, _results;
    originalSend = response.send;
    response.send = function(body) {
      return dumpResponse(originalSend, body, request, response, uri);
    };
    if (request.method !== 'POST') {
      return;
    }
    utils.logVerbose('--------------------------------------------------');
    utils.logVerbose("" + request.method + " " + uri + " [request]");
    if (_.isArray(request.body)) {
      _ref = request.body;
      _results = [];
      for (_i = 0, _len = _ref.length; _i < _len; _i++) {
        element = _ref[_i];
        _results.push(utils.logVerbose("   " + (enhance(JSON.parse(element)))));
      }
      return _results;
    } else {
      return utils.logVerbose("   " + (enhance(request.body)));
    }
  };
  
  dumpResponse = function(originalSend, body, request, response, uri) {
    var e, element, _i, _len, _ref, _results;
    originalSend.call(response, body);
    if ((_ref = request.method) !== 'GET' && _ref !== 'POST') {
      return;
    }
    try {
      body = JSON.parse(body);
    } catch (_error) {
      e = _error;
      return;
    }
    if (_.isArray(body) && (body.length === 0)) {
      return;
    }
    utils.logVerbose('--------------------------------------------------');
    utils.logVerbose("" + request.method + " " + uri + " " + response.statusCode + " [response]");
    if (_.isArray(body)) {
      _results = [];
      for (_i = 0, _len = body.length; _i < _len; _i++) {
        element = body[_i];
        _results.push(utils.logVerbose("   " + (enhance(JSON.parse(element)))));
      }
      return _results;
    } else {
      return utils.logVerbose("   " + (enhance(body)));
    }
  };
  
  enhance = function(object) {
    var args, signature;
    if (!object["interface"] || !object.method || !object.args) {
      return JSON.stringify(object);
    }
    signature = "" + object["interface"] + "." + object.method;
    args = JSON.stringify(object.args);
    if (args.length > 500) {
      args = "" + (args.substr(0, 50)) + "...";
    }
    return "" + signature + "(" + args + ")";
  };
  
  module.exports = dumpingHandler;
  