Class: RageRender::BlogArchiveDrop

Inherits:
Jekyll::Drops::Drop
  • Object
show all
Defined in:
lib/ragerender/jekyll/blog_archive.rb

Overview

Data to pass to a blog archive page.

Instance Method Summary collapse

Instance Method Details

#blogs_paginatedObject



60
61
62
# File 'lib/ragerender/jekyll/blog_archive.rb', line 60

def blogs_paginated
  all_blogs[number-1]&.map {|blog| PaginatedBlogDrop.new(blog).to_liquid } || []
end

#lastpagenumberObject



64
65
66
# File 'lib/ragerender/jekyll/blog_archive.rb', line 64

def lastpagenumber
  all_blogs.size
end

#pagesObject

Objects used for laying out page numbers.

The page numbers always include:

  • the first page

  • the last page

  • two pages around the current page



74
75
76
77
78
79
80
81
82
83
# File 'lib/ragerender/jekyll/blog_archive.rb', line 74

def pages
  [1].chain([1, all_blogs.size, *(number-2..number+2).to_a].uniq).select {|i| i >= 1 && i <= all_blogs.size }.sort.each_cons(2).map do |prev, page|
    {
      'page' => page,
      'pagelink' => File.join(@obj.url, 'page', page.to_s),
      'is_current' => page == number,
      'skipped_ahead' => page - prev > 1,
    }
  end
end