Sha256: 77c9fd1e737ddaa39c31af05c5d8df03b000ffb0f7e124e9dc86463425eb7917

Contents?: true

Size: 1.04 KB

Versions: 12

Compression:

Stored size: 1.04 KB

Contents

# frozen_string_literal: true

module PagesCore
  module RssController
    extend ActiveSupport::Concern

    private

    def all_feed_items
      feeds = Page.enabled_feeds(locale, include_hidden: true)
      Page.where(parent_page_id: feeds)
          .order("published_at DESC")
          .published
          .localized(locale)
    end

    def per_page_rss_param(default = 20, max = 1000)
      return default unless params[:per_page].is_a?(String)

      params[:per_page].to_i.clamp(1, max)
    end

    def render_page_rss(page, pagination_page = 1)
      if page.feed_enabled?
        render_rss(page.pages.paginate(per_page: per_page_rss_param,
                                       page: pagination_page)
                       .includes(:image, :author),
                   title: page.name)
      else
        render_error 404
      end
    end

    def render_rss(items, title: nil)
      @title = PagesCore.config.site_name
      @title += ": #{title}" if title
      @items = items
      render template: "feeds/pages", layout: false
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
pages_core-3.15.4 app/controllers/concerns/pages_core/rss_controller.rb
pages_core-3.15.3 app/controllers/concerns/pages_core/rss_controller.rb
pages_core-3.15.2 app/controllers/concerns/pages_core/rss_controller.rb
pages_core-3.15.1 app/controllers/concerns/pages_core/rss_controller.rb
pages_core-3.14.0 app/controllers/concerns/pages_core/rss_controller.rb
pages_core-3.13.0 app/controllers/concerns/pages_core/rss_controller.rb
pages_core-3.12.7 app/controllers/concerns/pages_core/rss_controller.rb
pages_core-3.12.6 app/controllers/concerns/pages_core/rss_controller.rb
pages_core-3.12.5 app/controllers/concerns/pages_core/rss_controller.rb
pages_core-3.12.4 app/controllers/concerns/pages_core/rss_controller.rb
pages_core-3.12.3 app/controllers/concerns/pages_core/rss_controller.rb
pages_core-3.12.2 app/controllers/concerns/pages_core/rss_controller.rb