Module: Beeta::Config

Defined in:
lib/beeta/config.rb

Constant Summary collapse

ConfigFile =
%W(
	#{ENV['BEETA_CONF']}
	./beeta.json
	#{ENV['HOME']}/.beeta.json
	/etc/beeta.json
).select { |fn| File.exist? fn }.first

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.configObject

Returns the value of attribute config.



12
13
14
# File 'lib/beeta/config.rb', line 12

def config
  @config
end

.loadedObject

Returns the value of attribute loaded.



12
13
14
# File 'lib/beeta/config.rb', line 12

def loaded
  @loaded
end

Class Method Details

.load(fn = nil, force = false) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/beeta/config.rb', line 14

def self.load(fn = nil, force = false)
	fn ||= ConfigFile
	return false if(fn.nil? || (!force && loaded))

	self.config = JSON.parse File.read(fn)
	# TODO:  When the config solidifies reasonably, get rid of the
	# overly metaprogrammed bits here, and replace with regular
	# methods.  It's just a little easier for now to be able to add
	# values to the config file and have the methods appear out of
	# nowhere.
	config.each { |k,v|
		class << self; self; end.module_eval {
			define_method(k) { v }
		}
	}

	self.loaded = true
end