Class: RageRender::ArchiveDrop

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

Overview

A Drop that provides all of the page variables for the archive pages.

Instance Method Summary collapse

Methods included from Pipettes

clean_payload, def_data_delegator, def_image_metadata, extended

Instance Method Details

#chaptersObject



116
117
118
119
120
121
122
123
124
# File 'lib/ragerender/jekyll/archive.rb', line 116

def chapters
  unless show_chapter_overview
    @obj.site.collections['chapters'].docs.reject do |page|
      page.data['hidden']
    end.map do |page|
      ChapterDrop.new(page).to_liquid
    end
  end
end

#comics_paginatedObject



126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
# File 'lib/ragerender/jekyll/archive.rb', line 126

def comics_paginated
  number = @obj.data['number']
  comics = if number
    selected_comics.to_a[number - 1]
  else
    selected_comics.to_a.flatten
  end.group_by {|c| c.data['chapter'] }

  comics.map do |chapter, comics|
    chapter_data = ChapterDrop.new(@obj.site.collections['chapters'].docs.detect {|c| c.data['slug'] == chapter })
    comics.each_with_index.map do |comic, index|
      drop = ComicDrop.new(comic)
      {
        **ComicDrop::PAGINATION_FIELDS.map {|field| [field, drop[field]] }.to_h,
        **ChapterDrop::PAGINATION_FIELDS.map {|field| [field, chapter_data[field]] }.to_h,
        'number' => index + 1,
        'newchapter' => index == 0,
        'chapterend' => index == comics.size - 1,
      }
    end
  end.flatten
end

#ischapterarchiveObject



104
105
106
# File 'lib/ragerender/jekyll/archive.rb', line 104

def ischapterarchive
  @obj.type == :chapters
end

#lastpagenumberObject



149
150
151
# File 'lib/ragerender/jekyll/archive.rb', line 149

def lastpagenumber
  selected_comics.size
end

#show_chapter_overviewObject



112
113
114
# File 'lib/ragerender/jekyll/archive.rb', line 112

def show_chapter_overview
  !show_comic_list
end

#show_comic_listObject



108
109
110
# File 'lib/ragerender/jekyll/archive.rb', line 108

def show_comic_list
  ischapterarchive || @obj.data['mode'] == 'comics'
end