class Lanes::SystemSettings
Public Class Methods
clear_cache!(msg)
click to toggle source
# File lib/lanes/system_settings.rb, line 76 def clear_cache!(msg) Lanes.logger.debug "SystemSettings cache reset" Lanes::SystemSettings.instance_variable_set(:@config, nil) end
config()
click to toggle source
# File lib/lanes/system_settings.rb, line 39 def config @config ||= SystemSettings.find_or_create_by(id: Lanes.config.configuration_id) end
for_ext(extension_id)
click to toggle source
# File lib/lanes/system_settings.rb, line 43 def for_ext(extension_id) ExtensionSettings.new(extension_id, config.settings[extension_id.to_s]) end
get_handler()
click to toggle source
# File lib/lanes/system_settings.rb, line 53 def get_handler lambda do wrap_reply do std_api_reply :get, Lanes::SystemSettings.config.as_json( include: ['logo', 'print_logo'] ) end end end
on_change(extension_id, call_now: false) { |for_ext| ... }
click to toggle source
# File lib/lanes/system_settings.rb, line 81 def on_change(extension_id, call_now: false, &block) Thread.new do Lanes.redis_connection(cache:false).subscribe( 'lanes-system-configuration-update') do |on| on.message do |channel, msg| ActiveRecord::Base.connection_pool.with_connection do yield SystemSettings.for_ext(extension_id) end end end end end
persist!(extension_id, update)
click to toggle source
# File lib/lanes/system_settings.rb, line 47 def persist!(extension_id, update) config.settings[extension_id] = update config.settings_will_change! config.save! end
update_handler()
click to toggle source
# File lib/lanes/system_settings.rb, line 64 def update_handler lambda do wrap_reply do config = SystemSettings.config if data['settings'].is_a?(Hash) config.update_attributes!(settings: data['settings']) end std_api_reply :update, { settings: config.settings }, success: true end end end
Public Instance Methods
notify_updated()
click to toggle source
# File lib/lanes/system_settings.rb, line 34 def notify_updated Lanes.redis_connection.publish('lanes-system-configuration-update', self.id) end