Sha256: a9c319d1d3a6373d888567eaec2b905316a899ab1c9c1958713ee8e51dfda313
Contents?: true
Size: 1.48 KB
Versions: 1
Compression:
Stored size: 1.48 KB
Contents
# encoding: utf-8 module PagesCore class SitemapsController < ApplicationController include PagesCore::PagePathHelper caches_page :show def show @entries = formatted_entries end private def format_time(timestamp) if timestamp.is_a?(Date) timestamp.strftime("%Y-%m-%d") else timestamp.strftime("%Y-%m-%dT%H:%M:%S#{timestamp.formatted_offset}") end end def format_record(record) { loc: record_url(record), lastmod: format_time(record.updated_at) } end def formatted_entries records.map { |r| format_record(r) } end def locales if PagesCore.config.locales PagesCore.config.locales.keys else [I18n.default_locale] end end def localized?(record) record.is_a?(LocalizableModel::InstanceMethods) end def pages ([Page.root.localize(I18n.default_locale)] + locales.flat_map do |locale| Page.published.localized(locale) end).uniq end def page_record_url(record) if record == Page.root && record.locale == I18n.default_locale root_url else page_url(record.locale, record) end end def record_url(record) if record.is_a?(Page) page_record_url(record) elsif localized?(record) polymorphic_url(record, locale: record.locale) else polymorphic_url(record) end end def records pages end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
pages_core-3.5.1 | app/controllers/pages_core/sitemaps_controller.rb |