class TransmissionRSS::Config
Class handles configuration parameters.
Public Class Methods
new(file = nil)
click to toggle source
# File lib/transmission-rss/config.rb, line 19 def initialize(file = nil) self.merge_defaults! self.load(file) unless file.nil? @log = Log.instance end
Public Instance Methods
load(config)
click to toggle source
merge_defaults!()
click to toggle source
# File lib/transmission-rss/config.rb, line 38 def merge_defaults! self.merge!({ 'feeds' => [], 'update_interval' => 600, 'add_paused' => false, 'server' => { 'host' => 'localhost', 'port' => 9091, 'rpc_path' => '/transmission/rpc' }, 'login' => nil, 'log_target' => $stderr, 'fork' => false, 'pid_file' => false, 'privileges' => {}, 'seen_file' => nil }) end
merge_yaml!(path, watch = true)
click to toggle source
reset!()
click to toggle source
# File lib/transmission-rss/config.rb, line 66 def reset! self.clear self.merge_defaults! end
watch_file(path)
click to toggle source
# File lib/transmission-rss/config.rb, line 71 def watch_file(path) path = Pathname.new(path).realpath.to_s @log.debug('watch_file ' + path) @notifier ||= INotify::Notifier.new @notifier.watch(path, :close_write) do |e| self.reset! self.merge_yaml!(path, false) @log.debug('reloaded config file ' + path) @log.debug(self) on_change end @notifier_thread ||= Thread.start do @notifier.run end end