module.exports = function generate() {
  var spec = {}
    , key;

  spec.protocol = get('protocol');
  spec.slashes = true;
  
  spec.hostname = get('hostname');
  spec.pathname = get('pathname');

  if (yep()) spec.port = get('port');
  if (yep()) spec.query = '?'+ get('query');
  if (yep()) spec.hash = '#'+ get('hash');
  if (yep()) {
    spec.username = get('username');
    spec.password = get('password');
  }

  spec.host = spec.port ? spec.hostname + ':' + spec.port : spec.hostname;

  for (key in combinations) {
    url[key] = '';
  }

  for (key in spec) {
    url[key] = spec[key];
  }

  spec.href = url.toString();
  return spec;
};