Class: WebVac::Config
- Inherits:
-
Object
- Object
- WebVac::Config
- Defined in:
- lib/webvac.rb
Overview
Config object, intended to be used as a singleton.
Constant Summary collapse
- Defaults =
The default config options. See the README.
{ redis_url: "redis://localhost:6379/0", server_path_strip: "/media", server_path_prepend: "/media/block/fse", venti_server: 'localhost', plan9bin: '/opt/plan9/bin', mime_substitutions: { 'text/html' => 'text/plain', }, }
- ConfigPaths =
The sorted list of places where we will look for config files to load.
[ ENV['WEBVAC_CONFIG'], "./config/webvac.json", "#{ENV['HOME']}/.webvac.json", "/etc/webvac.json", ].compact
Class Method Summary collapse
-
.load ⇒ Object
Reads/parses config and instantiates an object.
Instance Method Summary collapse
-
#initialize(cfg) ⇒ Config
constructor
Takes a config, replaces the defaults with it.
- #path_fixup(path) ⇒ Object
Constructor Details
#initialize(cfg) ⇒ Config
Takes a config, replaces the defaults with it. Will throw exceptions if you give it a bad config, you should probably just call Config.load.
53 54 55 56 57 58 59 60 |
# File 'lib/webvac.rb', line 53 def initialize cfg Defaults.each { |k,v| send("#{k}=", v) } cfg.each { |k,v| send("#{k}=", v) } end |
Class Method Details
.load ⇒ Object
Reads/parses config and instantiates an object
40 41 42 43 44 45 46 47 48 |
# File 'lib/webvac.rb', line 40 def self.load f = ConfigPaths.find { |f| File.readable?(f) } cfg = if f JSON.parse File.read(f) else {} end new cfg end |
Instance Method Details
#path_fixup(path) ⇒ Object
62 63 64 65 |
# File 'lib/webvac.rb', line 62 def path_fixup path @_path_rx ||= /^#{Regexp.escape(server_path_strip)}/ path.sub(@_path_rx, server_path_prepend) end |