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