Class: RageRender::SearchDrop

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

Instance Method Summary collapse

Methods included from Pipettes

clean_payload, def_data_delegator, def_image_metadata, def_loop, extended, loops

Instance Method Details

#foundresultsObject



37
38
39
# File 'lib/ragerender/jekyll/search.rb', line 37

def foundresults
  searchresults.any?
end

#searchedObject



15
16
17
# File 'lib/ragerender/jekyll/search.rb', line 15

def searched
  !searchterm.nil?
end

#searchresultsObject



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/ragerender/jekyll/search.rb', line 20

def searchresults
  return [] unless searched
  @results ||= @obj.site.collections['comics'].docs.select do |comic|
    [
      *comic.data.fetch('tags', []),
      comic.content,
      *comic.data.fetch('authornotes', []).flat_map {|n| n['comment'] },
    ].map(&:downcase).any? {|c| c.include?(searchterm.downcase) }
  end.map.each_with_index do |comic, index|
    drop = ComicDrop.new(comic)
    {
      'number' => index + 1,
      **ComicDrop::PAGINATION_FIELDS.map {|f| [f.to_s, drop[f]] }.to_h,
    }
  end
end