Class: BridgetownSitemap::GroupedResources

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

Instance Method Summary collapse

Constructor Details

#initialize(resources) ⇒ GroupedResources

Returns a new instance of GroupedResources.



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

def initialize(resources)
  @grouped_resources = resources.group_by do |resource|
     [resource.data.slug, resource.date]
  end.values
end

Instance Method Details

#each(locale:, &block) ⇒ Object



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

def each(locale:, &block)
  @grouped_resources.each do |resource_group|
    resource_group = resource_group.reject do |resource|
      resource.id == "/404" || resource.data.sitemap == false
    end

    default_resource = resource_group.detect do |resource|
      !resource.data.locale || locale == resource.data.locale
    end

    latest_resource = resource_group.max_by { |resource| resource.data.sitemap_last_modified_at }

    yield default: default_resource, latest: latest_resource, group: resource_group
  end
end