class SettingsHelper

Public Instance Methods

deleteForOwner(owner) click to toggle source
# File lib/quartz_flow/settings_helper.rb, line 162
def deleteForOwner(owner)
  Setting.all(:owner => owner).destroy!
end
get(settingName, filter = :filter, owner = nil) click to toggle source
# File lib/quartz_flow/settings_helper.rb, line 147
def get(settingName, filter = :filter, owner = nil)
  setting = settingName.to_sym
  metaInfo = @@settingsMetainfo[setting]
  raise "Unknown setting #{settingName}" if ! metaInfo

  result = nil
  settingModel = loadWithOwner(settingName, owner)
  
  if settingModel
    result = settingModel.value
    result = metaInfo.filterOnLoad(result) if filter == :filter
  end
  result
end
globalSettingsHash() click to toggle source

Return a hashtable of all global settings

# File lib/quartz_flow/settings_helper.rb, line 167
def globalSettingsHash
  result = {}

  @@settingsMetainfo.each do |k,v|
    next if v.scope != :global
    result[k] = get(k)
  end
  
  result
end
set(settingName, value, owner = nil) click to toggle source
# File lib/quartz_flow/settings_helper.rb, line 126
def set(settingName, value, owner = nil)
  setting = settingName.to_sym

  metaInfo = @@settingsMetainfo[setting]
  raise "Unknown setting #{settingName}" if ! metaInfo

  value = nil if metaInfo.emptyIsNil? && value.is_a?(String) && value.length == 0
  value = value.to_s if value
  value = metaInfo.filterOnSave(value)
  
  settingModel = loadWithOwner(settingName, owner)

  if ! settingModel
    settingModel = Setting.create( :name => settingName, :value => value, :scope => metaInfo.scope, :owner => owner )
    settingModel.save
  else
    settingModel.value = value
    settingModel.save
  end
end
setGlobalSettingsHash(hash) click to toggle source

Set global settings as a hash

# File lib/quartz_flow/settings_helper.rb, line 179
def setGlobalSettingsHash(hash)
  @@settingsMetainfo.each do |k,v|
    set(k, hash[k.to_s]) if hash.has_key?(k.to_s)
  end
end

Private Instance Methods

loadWithOwner(settingName, owner) click to toggle source
# File lib/quartz_flow/settings_helper.rb, line 186
def loadWithOwner(settingName, owner)
  if owner
    Setting.first(:name => settingName, :owner => owner)
  else
    Setting.first(:name => settingName)
  end
end