getPaginate: function() {
  let pages = []
  // 最大ページ数から1引いた半分の数値をstartとendにセットする
  let start = parseInt(this.page) - (parseInt(this.pageMax - 1)/2);
  let end = parseInt(this.page) + (parseInt(this.pageMax - 1)/2);

  // startが1未満だった時はstartを1にしてendを最大ページ数にする
  if (start <= 0) {
    end = this.pageMax
    start = 1
  }

  // endがpageTotal以上だった時はendをpageTotalにして
  // startを合計ページから最大ページ数-1個分戻った値にする
  if(this.pageTotal <= end){
    end = this.pageTotal
    start = parseInt(this.pageTotal) - parseInt(this.pageMax - 1)
  }

  // ループしてpagesにページ番号を挿入する
  for(let i =start; i<=end; i++){
    pages.push(i)
  }
  return pages
},

表示ページ数(this.pageMax)、現在のページ(this.page)、合計ページ数(this.pageTotal)の3つの値で判定します。現在のページを真ん中にするためには、this.pageMaxは3以上の奇数である必要があります。厳密にはGoogleのページャーとは違いますが、ぽいやつが作りたい方はどうぞ。JAVASCRIPTで書いてますが、PHPやRubyでも同じロジックでいけると思います。