docs: function(field, label, ranges) {
              if (!this.dataModelObject.hasField(field)) {
                  throw new Error("Did not find field " + field);
              }
              var f = this.dataModelObject.fieldByName(field);
              if ("number" !== f.type) {
                  throw new Error("Field was of type " + f.type + ", expected number.");
              }
              var updateRanges = {};
              if (!utils.isUndefined(ranges.start) && ranges.start !== null) {
                  updateRanges.start = ranges.start;
              }
              if (!utils.isUndefined(ranges.end) && ranges.end !== null) {
                  updateRanges.end = ranges.end;
              }
              if (!utils.isUndefined(ranges.step) && ranges.step !== null) {
                  updateRanges.size = ranges.step;
              }
              if (!utils.isUndefined(ranges.limit) && ranges.limit !== null) {
                  updateRanges.maxNumberOf = ranges.limit;
              }
  
              this.rows.push({
                  fieldName: field,
                  owner: f.owner,
                  type: f.type,
                  label: label,
                  display: "ranges",
                  ranges: updateRanges
              });
  
              return this;
          }