Convert a dotted path to hash
def dotted_path_to_hash(hash)
hash.map do |pkey, pvalue|
pkey.to_s.split(".").reverse.inject(pvalue) do |value, key|
{key.to_sym => value}
end
end.inject(&:deep_merge)
end
# { 'level1.level2.level3' => 123 }
# to
# { :level1 => { :level2 => { :level3 => 123 } } }