Class: SettingsHelper
- Inherits:
-
Object
- Object
- SettingsHelper
- Defined in:
- lib/quartz_flow/settings_helper.rb
Defined Under Namespace
Classes: SettingMetainfo
Constant Summary collapse
- @@floatValidator =
Proc.new do |v| raise "Invalid ratio" if v !~ /^\d+(\.\d+)?$/ v.to_s end
- @@saveFilterForSize =
Proc.new do |v| if v.nil? || v.length == 0 nil else QuartzTorrent::Formatter.parseSize(v) end end
- @@saveFilterForDuration =
Proc.new do |v| if v.nil? || v.length == 0 nil else QuartzTorrent::Formatter.parseTime(v) end end
- @@settingsMetainfo =
{ :defaultUploadRateLimit => SettingMetainfo.new( :defaultUploadRateLimit, :global, @@saveFilterForSize, Proc.new{ |v| QuartzTorrent::Formatter.formatSpeed(v) } ), :defaultDownloadRateLimit => SettingMetainfo.new( :defaultDownloadRateLimit, :global, @@saveFilterForSize, Proc.new{ |v| QuartzTorrent::Formatter.formatSpeed(v) } ), :defaultRatio => SettingMetainfo.new( :defaultRatio, :global, @@floatValidator, Proc.new{ |v| v.to_f } ), :defaultUploadDuration => SettingMetainfo.new( :defaultUploadDuration, :global, @@saveFilterForDuration, Proc.new{ |v| QuartzTorrent::Formatter.formatTime(v) } ), :uploadRateLimit => SettingMetainfo.new( :uploadRateLimit, :torrent, @@saveFilterForSize, Proc.new{ |v| QuartzTorrent::Formatter.formatSpeed(v) } ), :downloadRateLimit => SettingMetainfo.new( :downloadRateLimit, :torrent, @@saveFilterForSize, Proc.new{ |v| QuartzTorrent::Formatter.formatSpeed(v) } ), :ratio => SettingMetainfo.new( :ratio, :torrent, @@floatValidator, Proc.new{ |v| v.to_f } ), :uploadDuration => SettingMetainfo.new( :uploadDuration, :torrent, @@saveFilterForDuration, Proc.new{ |v| QuartzTorrent::Formatter.formatTime(v) } ), }
Instance Method Summary collapse
- #deleteForOwner(owner) ⇒ Object
- #get(settingName, filter = :filter, owner = nil) ⇒ Object
-
#globalSettingsHash ⇒ Object
Return a hashtable of all global settings.
- #set(settingName, value, owner = nil) ⇒ Object
-
#setGlobalSettingsHash(hash) ⇒ Object
Set global settings as a hash.
Instance Method Details
#deleteForOwner(owner) ⇒ Object
144 145 146 |
# File 'lib/quartz_flow/settings_helper.rb', line 144 def deleteForOwner(owner) Setting.all(:owner => owner).destroy! end |
#get(settingName, filter = :filter, owner = nil) ⇒ Object
129 130 131 132 133 134 135 136 137 138 139 140 141 142 |
# File 'lib/quartz_flow/settings_helper.rb', line 129 def get(settingName, filter = :filter, owner = nil) setting = settingName.to_sym = @@settingsMetainfo[setting] raise "Unknown setting #{settingName}" if ! result = nil settingModel = loadWithOwner(settingName, owner) if settingModel result = settingModel.value result = .filterOnLoad(result) if filter == :filter end result end |
#globalSettingsHash ⇒ Object
Return a hashtable of all global settings
149 150 151 152 153 154 155 156 157 158 |
# File 'lib/quartz_flow/settings_helper.rb', line 149 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) ⇒ Object
108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 |
# File 'lib/quartz_flow/settings_helper.rb', line 108 def set(settingName, value, owner = nil) setting = settingName.to_sym = @@settingsMetainfo[setting] raise "Unknown setting #{settingName}" if ! value = nil if .emptyIsNil? && value.is_a?(String) && value.length == 0 value = value.to_s if value value = .filterOnSave(value) settingModel = loadWithOwner(settingName, owner) if ! settingModel settingModel = Setting.create( :name => settingName, :value => value, :scope => .scope, :owner => owner ) settingModel.save else settingModel.value = value settingModel.save end end |
#setGlobalSettingsHash(hash) ⇒ Object
Set global settings as a hash
161 162 163 164 165 |
# File 'lib/quartz_flow/settings_helper.rb', line 161 def setGlobalSettingsHash(hash) @@settingsMetainfo.each do |k,v| set(k, hash[k.to_s]) if hash.has_key?(k.to_s) end end |