# delegates Node method and accessor delegation utilty. ## Installation ``` $ npm install delegates ``` ## Example ```js var delegate = require('delegates'); ... delegate(proto, 'request') .method('acceptsLanguages') .method('acceptsEncodings') .method('acceptsCharsets') .method('accepts') .method('is') .access('querystring') .access('idempotent') .access('socket') .access('length') .access('query') .access('search') .access('status') .access('method') .access('path') .access('body') .access('host') .access('url') .getter('subdomains') .getter('protocol') .getter('header') .getter('stale') .getter('fresh') .getter('secure') .getter('ips') .getter('ip') ``` # API ## Delegate(proto, prop) Creates a delegator instance used to configure using the `prop` on the given `proto` object. (which is usually a prototype) ## Delegate#method(name) Allows the given method `name` to be accessed on the host. ## Delegate#getter(name) Creates a "getter" for the property with the given `name` on the delegated object. ## Delegate#setter(name) Creates a "setter" for the property with the given `name` on the delegated object. ## Delegate#access(name) Creates an "accessor" (ie: both getter *and* setter) for the property with the given `name` on the delegated object. ## Delegate#fluent(name) A unique type of "accessor" that works for a "fluent" API. When called as a getter, the method returns the expected value. However, if the method is called with a value, it will return itself so it can be chained. For example: ```js delegate(proto, 'request') .fluent('query') // getter var q = request.query(); // setter (chainable) request .query({ a: 1 }) .query({ b: 2 }); ``` # License MIT