code: function(template, name) {
      this.addOverride(template, function(relationKey) {
        return function() {
          var relation = this[relationKey];
          var fn = relation[name](relation);
          return fn.apply(this, arguments);
        };
      });
    }
docs: A relation method that returns a model method for use with
  {@link BaseRelation#overrideMethod}.
  
  @function BaseRelation~MethodOverride
  @param {BaseRelation} relation The relation.
  @return {Function} The method that will be added to the model class.
   
  Allows subclasses to add a method override from their implementation of
  {@link BaseRelation#overrides}.
  
  This is a variation of {@link BaseRelation#addHelper} that makes it a
  little easier to work with the model instance and arguments. In many
  cases, this will make it more clear that the method is actually operating
  on a model via a relation.
  
  CustomRelation.reopen({
  get: function(relation) {
  return function(instance) {
  return this['_' + relation._name];
  };
  },
  set: function(relation) {
  return function(value) {
  this['_' + relation._name] = value;
  };
  },
  });
  CustomRelation.reopenClass({
  overrides: function() {
  this.overrideMethod('get<Singular>', 'get'),
  this.overrideMethod('set<Singular>', 'set'),
  }
  });
  
  @method
  @protected
  @param {String} template
  @param {String} name The name of the {@link BaseRelation~MethodOverride}
  to call on the relation.
  @return {BaseRelation~Override}
  @see {@link BaseRelation#addOverride}
  @see {@link BaseRelation#addHelper}