Sha256: f0ece2f3e35b586434a4268ed72f465953d8cdc0b387fae4f96ba26095d6cf01

Contents?: true

Size: 913 Bytes

Versions: 2

Compression:

Stored size: 913 Bytes

Contents

module Para
  class Routes
    class_attribute :routes_extensions

    attr_reader :router

    def initialize(router)
      @router = router
    end

    def draw(mount_location = '/', &block)
      router.instance_eval do
        scope mount_location do
          scope module: :para do
            namespace :admin do
              get '/' => 'main#index'

              crud_component :crud, scope: ':model'
              singleton_resource_component :singleton, scope: ':model'
              component :settings
            end
          end

          block.call if block
        end
      end
    end

    def self.extend_routes_for(component_type, &block)
      extensions = routes_extensions_for(component_type)
      extensions << block
    end

    def self.routes_extensions_for(component_type)
      self.routes_extensions ||= {}
      self.routes_extensions[component_type] ||= []
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
para-0.5.4 lib/para/routes.rb
para-0.5.3 lib/para/routes.rb