File tree 5 files changed +24
-5
lines changed
5 files changed +24
-5
lines changed Original file line number Diff line number Diff line change 1
1
module Avo
2
2
class BaseResource < Avo ::Resources ::Base
3
+ abstract_resource!
4
+
3
5
# Users can override this class to add custom methods for all resources.
4
6
end
5
7
end
Original file line number Diff line number Diff line change
1
+ module Avo
2
+ module Concerns
3
+ module AbstractResource
4
+ extend ActiveSupport ::Concern
5
+
6
+ class_methods do
7
+ def abstract_resource! = @abstract_resource = true
8
+
9
+ def is_abstract? = @abstract_resource == true
10
+ end
11
+ end
12
+ end
13
+ end
Original file line number Diff line number Diff line change 1
1
module Avo
2
2
module Resources
3
3
class ArrayResource < Base
4
+ abstract_resource!
5
+
4
6
extend ActiveSupport ::DescendantsTracker
5
7
6
8
include Avo ::Concerns ::FindAssociationField
Original file line number Diff line number Diff line change @@ -19,6 +19,9 @@ class Base
19
19
include Avo ::Concerns ::HasDiscreetInformation
20
20
include Avo ::Concerns ::RowControlsConfiguration
21
21
include Avo ::Concerns ::SafeCall
22
+ include Avo ::Concerns ::AbstractResource
23
+
24
+ abstract_resource!
22
25
23
26
# Avo::Current methods
24
27
delegate :context , to : Avo ::Current
@@ -84,6 +87,8 @@ def current_user
84
87
class_attribute :default_sort_direction , default : :desc
85
88
class_attribute :external_link , default : nil
86
89
90
+ class_attribute :abstract , default : false
91
+
87
92
# EXTRACT:
88
93
class_attribute :ordering
89
94
Original file line number Diff line number Diff line change @@ -40,12 +40,9 @@ def fetch_resources
40
40
load_resources_namespace
41
41
end
42
42
43
- # All descendants from Avo::Resources::Base except the internal ones
44
- Base . descendants - internal_resources
45
- end
43
+ # All descendants from Avo::Resources::Base except the internal abstract ones
46
44
47
- def internal_resources
48
- [ Avo ::BaseResource , Avo ::Resources ::ArrayResource ]
45
+ Base . descendants . reject { _1 . is_abstract? }
49
46
end
50
47
51
48
def load_resources_namespace
You can’t perform that action at this time.
0 commit comments