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