Hobo::Config.settings -> Hobo.config
This commit is contained in:
parent
c59b189bfa
commit
7cd249ec63
|
@ -1,23 +1,22 @@
|
||||||
module Hobo
|
module Hobo
|
||||||
|
|
||||||
|
module_function
|
||||||
|
|
||||||
|
def config
|
||||||
|
@@config
|
||||||
|
end
|
||||||
|
|
||||||
|
def config_from_hash!(hash)
|
||||||
|
@@config = Config.from_hash(hash)
|
||||||
|
end
|
||||||
|
|
||||||
class Config
|
class Config
|
||||||
@@settings = nil
|
|
||||||
class << self
|
class << self
|
||||||
|
def from_hash(value)
|
||||||
def settings
|
|
||||||
@@settings
|
|
||||||
end
|
|
||||||
|
|
||||||
def from_hash!(hash)
|
|
||||||
@@settings = hash_to_struct(hash)
|
|
||||||
end
|
|
||||||
|
|
||||||
private
|
|
||||||
|
|
||||||
def hash_to_struct(value)
|
|
||||||
return value unless value.instance_of?(Hash)
|
return value unless value.instance_of?(Hash)
|
||||||
|
|
||||||
result = value.inject({}) do |acc, pair|
|
result = value.inject({}) do |acc, pair|
|
||||||
acc[pair.first] = hash_to_struct(pair.last)
|
acc[pair.first] = from_hash(pair.last)
|
||||||
acc
|
acc
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -23,7 +23,7 @@ module Hobo
|
||||||
ensure_directories
|
ensure_directories
|
||||||
ensure_files
|
ensure_files
|
||||||
parsed = yield(CONFIG.keys.first)
|
parsed = yield(CONFIG.keys.first)
|
||||||
Config.from_hash!(parsed)
|
Hobo.config_from_hash!(parsed)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -4,8 +4,8 @@ class ConfigTest < Test::Unit::TestCase
|
||||||
|
|
||||||
context "Hobo configuration" do
|
context "Hobo configuration" do
|
||||||
test "a hash source is converted to dot methods" do
|
test "a hash source is converted to dot methods" do
|
||||||
Hobo::Config.from_hash!(:a => {:b => 1})
|
Hobo.config_from_hash!(:a => {:b => 1})
|
||||||
assert_equal Hobo::Config.settings.a.b, 1
|
assert_equal Hobo.config.a.b, 1
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -24,7 +24,8 @@ class EnvTest < Test::Unit::TestCase
|
||||||
assert_equal file, Hobo::Env::CONFIG.keys.first
|
assert_equal file, Hobo::Env::CONFIG.keys.first
|
||||||
{ :setting => 1 }
|
{ :setting => 1 }
|
||||||
end
|
end
|
||||||
assert_equal Hobo::Config.settings.setting, 1
|
|
||||||
|
assert_equal Hobo.config.setting, 1
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue