Class: BridgetownSitemap::GroupedGeneratedPages

Inherits:
Object
  • Object
show all
Defined in:
lib/bridgetown-sitemap/grouped_generated_pages.rb

Instance Method Summary collapse

Constructor Details

#initialize(generated_pages) ⇒ GroupedGeneratedPages

Returns a new instance of GroupedGeneratedPages.



5
6
7
8
# File 'lib/bridgetown-sitemap/grouped_generated_pages.rb', line 5

def initialize(generated_pages)
  @grouped_generated_pages = \
    generated_pages.group_by { |page| page.data.slug }.values
end

Instance Method Details

#each(locale:, &block) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/bridgetown-sitemap/grouped_generated_pages.rb', line 10

def each(locale:, &block)
  @grouped_generated_pages.each do |page_group|
    page_group = page_group.reject do |page|
      ["sitemap.erb", "robots.liquid"].include?(page.name) ||
        page.data.sitemap == false
    end

    default_page = page_group.detect do |page|
      !page.data.locale || locale == page.data.locale
    end

    latest_page = page_group.max_by { |page| page.data.last_modified_at }

    yield default: default_page, latest: latest_page, group: page_group
  end
end