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