~ubuntu-branches/ubuntu/trusty/node-negotiator/trusty-proposed

« back to all changes in this revision

Viewing changes to lib/negotiator.js

  • Committer: Package Import Robot
  • Author(s): Jérémy Lal
  • Date: 2013-10-20 17:33:37 UTC
  • Revision ID: package-import@ubuntu.com-20131020173337-75k05okhr2qhqcy1
Tags: upstream-0.3.0
Import upstream version 0.3.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
module.exports = Negotiator;
 
2
Negotiator.Negotiator = Negotiator;
 
3
 
 
4
function Negotiator(request) {
 
5
  if (!(this instanceof Negotiator)) return new Negotiator(request);
 
6
  this.request = request;
 
7
}
 
8
 
 
9
var set = { preferredCharset: [require('./charset.js'), 'accept-charset'],
 
10
            preferredEncoding: [require('./encoding.js'), 'accept-encoding'],
 
11
            preferredLanguage: [require('./language.js'), 'accept-language'],
 
12
            preferredMediaType: [require('./mediaType.js'), 'accept'] };
 
13
 
 
14
Object.keys(set).forEach(function (k) {
 
15
  var mh = set[k],
 
16
      method = mh[0],
 
17
      header = mh[1],
 
18
      singular = k,
 
19
      plural = k + 's';
 
20
 
 
21
  Negotiator.prototype[plural] = function (available) {
 
22
    return method(this.request.headers[header], available);
 
23
  };
 
24
 
 
25
  Negotiator.prototype[singular] = function(available) {
 
26
    var set = this[plural](available);
 
27
    if (set) return set[0];
 
28
  };
 
29
})