lib/fontist/config.rb in fontist-1.18.2 vs lib/fontist/config.rb in fontist-1.19.0
- old
+ new
@@ -13,45 +13,61 @@
def custom_values
@custom_values
end
def set(key, value)
+ attr = key.to_sym
+ unless default_values.key?(attr)
+ raise Errors::InvalidConfigAttributeError,
+ "No such attribute '#{attr}' exists."
+ end
+
v = normalize_value(value)
- @custom_values[key.to_s] = v
+ if respond_to?("#{attr}=")
+ public_send("#{attr}=", v)
+ else
+ @custom_values[attr] = v
+ end
persist
end
def delete(key)
- @custom_values.delete(key.to_s)
+ @custom_values.delete(key.to_sym)
persist
end
def default_value(key)
- default_values[key.to_s]
+ default_values[key.to_sym]
end
def default_values
- { open_timeout: 10,
- read_timeout: 10 }.transform_keys(&:to_s)
+ { fonts_path: Fontist.fontist_path.join("fonts"),
+ open_timeout: 10,
+ read_timeout: 10 }
end
def persist
+ values = @custom_values.transform_keys(&:to_s)
FileUtils.mkdir_p(File.dirname(Fontist.config_path))
- File.write(Fontist.config_path, YAML.dump(@custom_values))
+ File.write(Fontist.config_path, YAML.dump(values))
end
def load
@custom_values = load_config_file
end
+ def fonts_path=(value)
+ @custom_values[:fonts_path] = File.expand_path(value)
+ end
+
private
def load_config_file
return {} unless File.exist?(Fontist.config_path)
- YAML.load_file(Fontist.config_path)
+ YAML.load_file(Fontist.config_path).transform_keys(&:to_sym)
end
def normalize_value(value)
return value.to_i if value.to_i.to_s == value # detect integer