Sha256: 197ae6468db6ffc882038033a4e9eb9d7c724e0a46c107ee25471dbbbd661577

Contents?: true

Size: 1.02 KB

Versions: 1

Compression:

Stored size: 1.02 KB

Contents

module Cardboard
  class DynamicRouter

    def self.load
      
      Rails.application.routes.draw  do
        return unless ActiveRecord::Base.connection.table_exists? :cardboard_urls
        Cardboard::Url.where("slugs_backup IS NOT NULL").each do |url|
          for link in url.slugs_backup
            get link, to: redirect(url.to_s)
          end
        end

        return unless ActiveRecord::Base.connection.table_exists? :cardboard_pages
        routes = @set.named_routes.routes
        Cardboard::Page.includes(:url_object, :template).each do |page|
          url = page.url_object
          template = page.template
          
          get url.to_s, :to => template.controller_action || "pages##{template.identifier}", defaults: { identifier: template.identifier }

          if !routes[:root] && page.root?
            root :to => template.controller_action || "pages##{template.identifier}"
          end
        end
      end

    end

    def self.reload
      Rails.application.routes_reloader.reload!
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
cardboard_cms-0.3.1 lib/cardboard/dynamic_router.rb