29 lines
530 B
Ruby
29 lines
530 B
Ruby
module Hobo
|
|
class Config
|
|
@@config = nil
|
|
class << self
|
|
# TODO Config.config is awkward
|
|
def config
|
|
@@config
|
|
end
|
|
|
|
def from_hash!(hash)
|
|
@@config = hash_to_struct(hash)
|
|
end
|
|
|
|
private
|
|
|
|
def hash_to_struct(value)
|
|
return value unless value.instance_of?(Hash)
|
|
|
|
result = value.inject({}) do |acc, pair|
|
|
acc[pair.first] = hash_to_struct(pair.last)
|
|
acc
|
|
end
|
|
|
|
OpenStruct.new(result)
|
|
end
|
|
end
|
|
end
|
|
end
|