File tree Expand file tree Collapse file tree 4 files changed +48
-3
lines changed Expand file tree Collapse file tree 4 files changed +48
-3
lines changed Original file line number Diff line number Diff line change
1
+ module ActiveAdmin
2
+
3
+ class DynamicSetting
4
+ def self . build ( setting )
5
+ new ( setting )
6
+ end
7
+
8
+ def initialize ( setting )
9
+ @setting = setting
10
+ end
11
+
12
+ def value ( *_args )
13
+ @setting
14
+ end
15
+ end
16
+
17
+ end
Original file line number Diff line number Diff line change
1
+ require 'active_admin/dynamic_setting'
2
+ require 'active_admin/settings_node'
3
+
4
+ module ActiveAdmin
5
+
6
+ class DynamicSettingsNode < SettingsNode
7
+ class << self
8
+ def register ( name , value )
9
+ class_attribute "#{ name } _setting"
10
+ add_reader ( name )
11
+ add_writer ( name )
12
+ send "#{ name } =" , value
13
+ end
14
+
15
+ def add_reader ( name )
16
+ define_singleton_method ( name ) do
17
+ send ( "#{ name } _setting" ) . value
18
+ end
19
+ end
20
+
21
+ def add_writer ( name )
22
+ define_singleton_method ( "#{ name } =" ) do |value |
23
+ send ( "#{ name } _setting=" , DynamicSetting . build ( value ) )
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
Original file line number Diff line number Diff line change 1
- require 'active_admin/settings_node '
1
+ require 'active_admin/dynamic_settings_node '
2
2
3
3
module ActiveAdmin
4
- class NamespaceSettings < SettingsNode
4
+ class NamespaceSettings < DynamicSettingsNode
5
5
# The default number of resources to display on index pages
6
6
register :default_per_page , 30
7
7
Original file line number Diff line number Diff line change @@ -6,7 +6,7 @@ class << self
6
6
private_class_method :new
7
7
8
8
# @returns anonymous class with same accessors as the superclass.
9
- def build ( superclass = SettingsNode )
9
+ def build ( superclass = self )
10
10
Class . new ( superclass )
11
11
end
12
12
You can’t perform that action at this time.
0 commit comments