Class: Lanes::SystemSettings

Inherits:
Model
  • Object
show all
Defined in:
lib/lanes/system_settings.rb

Defined Under Namespace

Classes: ExtensionSettings

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Concerns::ApiAttributeAccess

#_set_attribute_data_from_collection, #set_attribute_data, #setting_attribute_is_allowed?

Class Method Details

.clear_cache!(msg) ⇒ Object



65
66
67
68
# File 'lib/lanes/system_settings.rb', line 65

def clear_cache!(msg)
    Lanes.logger.debug "SystemSettings cache reset"
    Lanes::SystemSettings.instance_variable_set(:@config, nil)
end

.configObject



39
40
41
# 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) ⇒ Object



43
44
45
# File 'lib/lanes/system_settings.rb', line 43

def for_ext(extension_id)
    ExtensionSettings.new(extension_id, config.settings[extension_id])
end

.persist!(extension_id, update) ⇒ Object



47
48
49
50
51
# 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_handlerObject



53
54
55
56
57
58
59
60
61
62
63
# File 'lib/lanes/system_settings.rb', line 53

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

Instance Method Details

#notify_updatedObject



34
35
36
# File 'lib/lanes/system_settings.rb', line 34

def notify_updated
    Lanes.redis_connection.publish('lanes-system-configuration-update', self.id)
end