Class: TinyConfig
- Inherits:
-
Object
show all
- Defined in:
- lib/tiny_config.rb,
lib/tiny_config/version.rb
Defined Under Namespace
Classes: ConfigKeyNillError, UndefinedNamespaceError
Constant Summary
collapse
- VERSION =
"0.0.1"
Class Method Summary
collapse
Class Method Details
.method_missing(namespace) ⇒ Object
28
29
30
31
|
# File 'lib/tiny_config.rb', line 28
def self.method_missing namespace
raise UndefinedNamespaceError, namespace unless self.constants.include? namespace.capitalize
const_get(namespace.capitalize).instance
end
|
.register(namespace, config_keys) ⇒ Object
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
# File 'lib/tiny_config.rb', line 5
def self.register(namespace, config_keys)
const_set namespace.capitalize, Class.new {
include ::Singleton
config_keys = [config_keys] unless config_keys.instance_of?(Array)
config_keys.each do |config_key|
attr_writer config_key
define_method config_key do
v = instance_variable_get("@#{config_key}")
v.nil? ? raise(TinyConfig::ConfigKeyNillError, message) : v
end
end
def message
namespace = self.class.to_s.split('::').last.downcase
required_key = caller()[1].match(/`.*'?/).to_s.delete('`\'')
"#{namespace} #{required_key} is requried."
end
}
end
|