_getColumnSize(containerWidth, gutterSize) {
    let size;

    // If the columnWidth property is a function, then the grid is fluid
    if (typeof this.options.columnWidth === 'function') {
      size = this.options.columnWidth(containerWidth);

      // columnWidth option isn't a function, are they using a sizing element?
    } else if (this.options.sizer) {
      size = Shuffle.getSize(this.options.sizer).width;

      // if not, how about the explicitly set option?
    } else if (this.options.columnWidth) {
      size = this.options.columnWidth;

      // or use the size of the first item
    } else if (this.items.length > 0) {
      size = Shuffle.getSize(this.items[0].element, true).width;

      // if there's no items, use size of container
    } else {
      size = containerWidth;
    }

    // Don't let them set a column width of zero.
    if (size === 0) {
      size = containerWidth;
    }

    return size + gutterSize;
  }
Returns the column size, based on column width and sizer options.
@param {number} containerWidth Size of the parent container.
@param {number} gutterSize Size of the gutters.
@return {number}
@private