docs: def obj_to_grid(self, file_path=None, delim=None, tab=None,
                      quote_numbers=True, quote_empty_str=False):
          """
          This will return a str of a grid table.
          :param file_path:       path to data file, defaults to
                                  self's contents if left alone
          :param delim:           dict of deliminators, defaults to
                                  obj_to_str's method:
          :param tab:             string of offset of the table
          :param quote_numbers:   bool if True will quote numbers that are strings
          :param quote_empty_str: bool if True will quote empty strings
          :return:                string representing the grid formation
                                  of the relevant data
          """
  
          div_delims = {"top": ['top left corner', 'top intersect',
                                'top edge', 'top right corner'],
                        "divide": ['left major intersect',
                                   'internal major intersect',
                                   'bottom edge', 'right major intersect'],
                        "middle": ['left intersect', 'internal intersect',
                                   'internal horizontal edge', 'right intersect'],
                        "bottom": ['bottom left intersect', 'bottom intersect',
                                   'bottom edge', 'bottom right corner']}
          delim = delim if delim else {}
          for tag in self.FANCY.keys():
              delim[tag] = delim[tag] if tag in delim.keys() \
                  else self.FANCY[tag]
  
          tab = self.tab if tab is None else tab
          list_of_list, column_widths = self.get_data_and_shared_column_widths(
              data_kwargs=dict(quote_numbers=quote_numbers,
                               quote_empty_str=quote_empty_str),
              width_kwargs=dict(padding=0, pad_last_column=True))
  
          ret = [[cell.ljust(column_widths[i]) for i, cell in enumerate(row)]
                 for row in list_of_list]
          grid_row = {}
  
          for key in div_delims.keys():
              draw = div_delims[key]
              grid_row[key] = delim[draw[0]]
              grid_row[key] += delim[draw[1]].join(
                  [delim[draw[2]] * width
                   for width in column_widths])
              grid_row[key] += delim[draw[3]]
  
          ret = [delim['left edge'] + delim['internal vertical edge'].join(row) +
                 delim['right edge'] for row in ret]
          header = [grid_row["top"], ret[0], grid_row["divide"]]
          body = [[row, grid_row["middle"]] for row in ret[1:]]
          body = [item for pair in body for item in pair][:-1]
          ret = header + body + [grid_row["bottom"]]
          ret = tab + (u'\n' + tab).join(ret)
          self._save_file(file_path, ret)
          return ret