11require 'active_admin/resource/action_items'
2+ require 'active_admin/resource/controllers'
3+ require 'active_admin/resource/menu'
4+ require 'active_admin/resource/page_configs'
25require 'active_admin/resource/naming'
36require 'active_admin/resource/scopes'
47require 'active_admin/resource/sidebars'
@@ -13,13 +16,22 @@ module ActiveAdmin
1316 # The instance of the current resource is available in ResourceController and views
1417 # by calling the #active_admin_config method.
1518 #
16- class Resource < Config
19+ class Resource
1720
1821 # Event dispatched when a new resource is registered
1922 RegisterEvent = 'active_admin.resource.register' . freeze
2023
2124 autoload :BelongsTo , 'active_admin/resource/belongs_to'
2225
26+ # The namespace this config belongs to
27+ attr_reader :namespace
28+
29+ # The class this resource wraps. If you register the Post model, Resource#resource
30+ # will point to the Post class
31+ #
32+ # @todo Refactor Namespace so that it doesn't require a Config to have a resource.
33+ attr_reader :resource
34+
2335 # An array of member actions defined for this resource
2436 attr_reader :member_actions
2537
@@ -52,17 +64,18 @@ def initialize(namespace, resource, options = {})
5264 end
5365
5466 include Base
67+ include Controllers
68+ include PageConfigs
5569 include ActionItems
5670 include Naming
5771 include Scopes
5872 include Sidebars
59-
73+ include Menu
6074
6175 def resource_table_name
6276 resource . quoted_table_name
6377 end
6478
65-
6679 # Returns the named route for an instance of this resource
6780 def route_instance_path
6881 [ route_prefix , controller . resources_configuration [ :self ] [ :route_instance_name ] , 'path' ] . compact . join ( '_' ) . to_sym
@@ -131,5 +144,5 @@ def default_options
131144 def default_csv_builder
132145 @default_csv_builder ||= CSVBuilder . default_for_resource ( resource )
133146 end
134- end # class Resource < Config
147+ end # class Resource
135148end # module ActiveAdmin
0 commit comments