Sha256: 41667c9db7dbf79cabb87a9604af4830da45361f0b10e33afed7255434a8fc9c
Contents?: true
Size: 1.45 KB
Versions: 2
Compression:
Stored size: 1.45 KB
Contents
# encoding: utf-8 module PagesCore class SitemapsController < ApplicationController caches_page :show def show @entries = formatted_entries end private def format_time(timestamp) if timestamp.kind_of?(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?(PagesCore::Localizable::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
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
pages_core-3.4.3 | app/controllers/pages_core/sitemaps_controller.rb |
pages_core-3.4.2 | app/controllers/pages_core/sitemaps_controller.rb |