Class: BridgetownSitemap::GroupedGeneratedPages
- Inherits:
-
Object
- Object
- BridgetownSitemap::GroupedGeneratedPages
- Defined in:
- lib/bridgetown-sitemap/grouped_generated_pages.rb
Instance Method Summary collapse
- #each(locale:, &block) ⇒ Object
-
#initialize(generated_pages) ⇒ GroupedGeneratedPages
constructor
A new instance of GroupedGeneratedPages.
Constructor Details
#initialize(generated_pages) ⇒ GroupedGeneratedPages
Returns a new instance of GroupedGeneratedPages.
5 6 7 8 9 10 11 12 13 14 15 |
# File 'lib/bridgetown-sitemap/grouped_generated_pages.rb', line 5 def initialize(generated_pages) @grouped_generated_pages = generated_pages.group_by do |page| url = if page.respond_to?(:original_resource) && page.original_resource page.original_resource.relative_url.to_s else page.url.to_s end locale = page.data.locale.to_s locale.empty? ? url : url.sub("/#{locale}/", "/") end.values end |
Instance Method Details
#each(locale:, &block) ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/bridgetown-sitemap/grouped_generated_pages.rb', line 17 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 |