lib/alexandria/preferences.rb in alexandria-book-collection-manager-0.6.9 vs lib/alexandria/preferences.rb in alexandria-book-collection-manager-0.7.0
- old
+ new
@@ -1,8 +1,8 @@
# Copyright (C) 2004-2006 Laurent Sansonetti
# Copyright (C) 2011 Cathal Mc Ginley
-# Copyright (C) 2011 Matijs van Zuijlen
+# Copyright (C) 2011, 2016 Matijs van Zuijlen
#
# Alexandria is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation; either version 2 of the
# License, or (at your option) any later version.
@@ -24,16 +24,16 @@
module Alexandria
class Preferences
include Singleton
include Logging
- APP_DIR = '/apps/alexandria'
- HTTP_PROXY_DIR = '/system/http_proxy'
- HTTP_PROXY_MODE = '/system/proxy/mode'
- URL_HANDLERS_DIR = '/desktop/gnome/url-handlers'
+ APP_DIR = '/apps/alexandria'.freeze
+ HTTP_PROXY_DIR = '/system/http_proxy'.freeze
+ HTTP_PROXY_MODE = '/system/proxy/mode'.freeze
+ URL_HANDLERS_DIR = '/desktop/gnome/url-handlers'.freeze
- GCONFTOOL = 'gconftool-2'
+ GCONFTOOL = 'gconftool-2'.freeze
def initialize
@alexandria_settings = {}
@changed_settings = Set.new
@@ -47,33 +47,14 @@
@proxy_port = nil
@proxy_user = nil
@proxy_password = nil
load_alexandria_settings
- # load_system_settings
end
- def www_browser
- unless @url_handlers_loaded
- load_url_handler_settings
- end
- puts @http_command
- @http_command
- end
-
- def email_client
- unless @url_handlers_loaded
- load_url_handler_settings
- end
- puts @mailto_command
- @mailto_command
- end
-
def http_proxy_config
- unless @http_proxy_loaded
- load_http_proxy_settings
- end
+ load_http_proxy_settings unless @http_proxy_loaded
if @use_http_proxy && @proxy_host && @proxy_port
[@proxy_host, @proxy_port, @proxy_user, @proxy_password]
end
end
@@ -171,11 +152,11 @@
##
def get_gconf_type(value)
if value.is_a?(String)
'string'
- elsif value.is_a?(Fixnum)
+ elsif value.is_a?(Integer)
'int'
elsif value.is_a?(TrueClass) || value.is_a?(FalseClass)
'bool'
else
'string'
@@ -198,11 +179,11 @@
end
end
def make_list_string(list)
if get_gconf_type(list.first) == 'string'
- list.map! { |x| x.gsub(/\"/, "\\\"") }
+ list.map! { |x| x.gsub(/\"/, '\\"') }
end
contents = list.join(',')
'[' + contents + ']'
end
@@ -213,16 +194,14 @@
# new_value = {}
end
type = get_gconf_type(new_value)
value_str = new_value
if new_value.is_a? String
- new_value.gsub!(/\"/, "\\\"")
+ new_value.gsub!(/\"/, '\\"')
value_str = "\"#{new_value}\""
end
- if /cols_width/ =~ var_path
- puts value_str
- end
+ puts value_str if /cols_width/ =~ var_path
`gconftool-2 --type #{type} --set #{var_path} #{value_str}`
end
def exec_gconf_unset(variable_name)
`#{GCONFTOOL} --unset #{APP_DIR + '/' + variable_name}`
@@ -238,34 +217,10 @@
def load_alexandria_settings
all_vals = `#{GCONFTOOL} --recursive-list #{APP_DIR}`
@alexandria_settings.merge!(gconftool_values_to_hash(all_vals))
end
- # May be useful to pre-load these settings
- def load_system_settings
- load_url_handler_settingss
- load_http_proxy_settings
- end
-
- # Called at most once, by #web_browser or #email_client
- # TODO: Enforce this.
- def load_url_handler_settings
- # /desktop/gnome/url-handlers/http
- http_handler_vars = `#{GCONFTOOL} --recursive-list #{URL_HANDLERS_DIR + '/http'}`
- http_handler = gconftool_values_to_hash(http_handler_vars)
- if http_handler['enabled']
- @http_command = http_handler['command']
- end
-
- mailto_handler_vars = `#{GCONFTOOL} --recursive-list #{URL_HANDLERS_DIR + '/mailto'}`
- mailto_handler = gconftool_values_to_hash(mailto_handler_vars)
- if mailto_handler['enabled']
- @mailto_command = mailto_handler['command']
- end
- @url_handlers_loaded = true
- end
-
# Called at most once, by #http_proxy_config
# TODO: Enforce this.
def load_http_proxy_settings
http_proxy_vars = `#{GCONFTOOL} --recursive-list #{HTTP_PROXY_DIR}`
http_proxy = gconftool_values_to_hash(http_proxy_vars)
@@ -315,10 +270,10 @@
return [discriminate(pair.first), discriminate(pair.last)]
rescue
return [0, 0]
end
else
- return value # string
+ return value # string
end
end
end
end