module CORL::Mixin::Macro::NetworkSettings

Public Instance Methods

network_settings(_type) click to toggle source
   # File lib/core/mixin/macro/network_settings.rb
 7 def network_settings(_type)
 8 
 9   # Networks are inherited unless explicitely set
10 
11   define_method :network do
12     plugin_parent
13   end
14 
15   define_method :network= do |network|
16     myself.plugin_parent = network
17   end
18 
19   #---
20 
21   define_method :setting do |property, default = nil, format = false|
22     network.send("#{_type}_setting", plugin_provider, plugin_name, property, default, format)
23   end
24 
25   define_method :search do |property, default = nil, format = false, extra_groups = []|
26     network.send("search_#{_type}", plugin_provider, plugin_name, property, default, format, extra_groups)
27   end
28 
29   define_method :set_setting do |property, value = nil|
30     network.send("set_#{_type}_setting", plugin_provider, plugin_name, property, value)
31   end
32 
33   define_method :delete_setting do |property|
34     network.send("delete_#{_type}_setting", plugin_provider, plugin_name, property)
35   end
36 
37   #---
38 
39   define_method :[] do |name, default = nil, format = false|
40     search(name, default, format)
41   end
42 
43   #---
44 
45   define_method :[]= do |name, value|
46     set_setting(name, value)
47   end
48 
49   #---
50 
51   define_method :cache do
52     network.cache
53   end
54 
55   define_method :cache_setting do |keys, default = nil, format = false|
56     cache.get([ _type, plugin_provider, plugin_name, keys ].flatten, default, format)
57   end
58 
59   define_method :set_cache_setting do |keys, value|
60     cache.set([ _type, plugin_provider, plugin_name, keys ].flatten, value)
61   end
62 
63   define_method :delete_cache_setting do |keys|
64     cache.delete([ _type, plugin_provider, plugin_name, keys ].flatten)
65   end
66 
67   define_method :clear_cache do
68     cache.delete([ _type, plugin_provider, plugin_name ])
69   end
70 
71   #---
72 
73   define_method :groups do
74     array(myself[:settings])
75   end
76 
77   #---
78 
79   define_method :add_groups do |groups|
80     myself[:settings] = array(setting(:settings)) | array(groups)
81   end
82 
83   #---
84 
85   define_method :remove_groups do |groups|
86     myself[:settings] = array(setting(:settings)) - array(groups)
87   end
88 end