Class: RageRender::BlogArchiveDrop

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

Overview

Data to pass to a blog archive page.

Instance Method Summary collapse

Methods included from Pipettes

clean_payload, def_data_delegator, def_image_metadata, def_loop, extended, loops

Instance Method Details

#blogs_paginatedObject



89
90
91
# File 'lib/ragerender/jekyll/blog_archive.rb', line 89

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

#lastpagenumberObject



93
94
95
# File 'lib/ragerender/jekyll/blog_archive.rb', line 93

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



103
104
105
106
107
108
109
110
111
112
# File 'lib/ragerender/jekyll/blog_archive.rb', line 103

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