Sha256: 71ca1c9e9add51eb81cc3ea8cadcfd65bba501f014f02af0cba97771a943f10d
Contents?: true
Size: 1.24 KB
Versions: 2
Compression:
Stored size: 1.24 KB
Contents
require 'hyper_admin/resource_collection' require 'hyper_admin/router' module Admin; end module HyperAdmin class Application attr_reader :resources def setup @resources = ResourceCollection.new prevent_rails_autoloading_load_paths end def register(resource_class) resource = @resources.add resource_class create_resource_controller resource end def routes(rails_router) load_files router.apply rails_router end private def load_paths [File.expand_path('app/admin', Rails.root)] end def router @router ||= Router.new(self) end def admin_files load_paths.map do |path| Dir["#{path}/**/*.rb"] end.flatten end def load_files admin_files.each { |file| load file } end def prevent_rails_autoloading_load_paths ActiveSupport::Dependencies.autoload_paths -= load_paths Rails.application.config.eager_load_paths -= load_paths end def create_resource_controller(resource) ctrl = Class.new HyperAdmin::ResourceController do define_method :resource_class do resource.resource_class end end Admin.const_set resource.controller_name, ctrl end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
hyper_admin-0.3.0 | lib/hyper_admin/application.rb |
hyper_admin-0.2.0 | lib/hyper_admin/application.rb |