Sha256: e7d3c5b8a85fae80442d385d884d115c1c4044e0fb9d82542926ece94d236e9b

Contents?: true

Size: 1.11 KB

Versions: 40

Compression:

Stored size: 1.11 KB

Contents

module Avo
  class DynamicRouter
    def self.eager_load(entity)
      paths = Avo::ENTITIES.fetch entity

      return unless paths.present?

      pathname = Rails.root.join(*paths)
      if pathname.directory?
        Rails.autoloaders.main.eager_load_dir(pathname.to_s)
      end
    end

    def self.routes
      Avo::Engine.routes.draw do
        scope "resources", as: "resources" do
          # Check if the user chose to manually register the resource files.
          # If so, eager_load the resources dir.
          if Avo.configuration.resources.nil?
            Avo::DynamicRouter.eager_load(:resources) unless Rails.application.config.eager_load
          end

          Avo::Resources::ResourceManager.fetch_resources
            .select do |resource|
              resource != :BaseResource
            end
            .select do |resource|
              resource.is_a? Class
            end
            .map do |resource|
              resources resource.route_key do
                member do
                  get :preview
                end
              end
            end
        end
      end
    end
  end
end

Version data entries

40 entries across 40 versions & 1 rubygems

Version Path
avo-3.0.1.beta23 lib/avo/dynamic_router.rb
avo-3.0.1.beta20 lib/avo/dynamic_router.rb
avo-3.0.1.beta21 lib/avo/dynamic_router.rb
avo-3.0.1.beta17 lib/avo/dynamic_router.rb
avo-3.0.1.beta22 lib/avo/dynamic_router.rb
avo-3.0.1.beta18 lib/avo/dynamic_router.rb
avo-3.0.1.beta19 lib/avo/dynamic_router.rb
avo-3.0.1.beta24 lib/avo/dynamic_router.rb
avo-3.0.1.beta15 lib/avo/dynamic_router.rb
avo-3.0.1.beta16 lib/avo/dynamic_router.rb
avo-3.0.1.beta14 lib/avo/dynamic_router.rb
avo-3.0.1.beta12 lib/avo/dynamic_router.rb
avo-3.0.1.beta13 lib/avo/dynamic_router.rb
avo-3.0.1.beta10 lib/avo/dynamic_router.rb
avo-3.0.1.beta11 lib/avo/dynamic_router.rb
avo-3.0.0.pre19 lib/avo/dynamic_router.rb
avo-3.0.1.beta8 lib/avo/dynamic_router.rb
avo-3.0.1.beta9 lib/avo/dynamic_router.rb
avo-3.0.1.beta6 lib/avo/dynamic_router.rb
avo-3.0.1.beta7 lib/avo/dynamic_router.rb