我正在尝试解析这样的yaml文件:
a:
a1:
a2:
b:
b1:
b11:
b2:
Run Code Online (Sandbox Code Playgroud)
我得到这样的哈希:
{"a"=>{"a1"=>nil, "a2"=>nil}, "b"=>{"b1"=>{"b11"=>nil}, "b2"=>nil}}
Run Code Online (Sandbox Code Playgroud)
我想把它变成一个列表:
%ul
%li a
%ul
%li a1
%li a2
%li b
%ul
%li b1
%ul
%li b11
%li b2
Run Code Online (Sandbox Code Playgroud)
我试图以最有效的方式搜索并不重要哈希有多深
最后我这样做了:
KeyWords = %w(url)
# Convert a multilevel hash into haml multilevel tree
# Special KeyWords
# url : item url
def hash_to_haml(hash, url = nil)
haml_tag(:ul) do
hash.each do |key, value|
unless KeyWords.include?(key)
url = get_url(key, value)
haml_tag(:li) do
haml_tag(:a, :href => url ) do
haml_concat(key) …Run Code Online (Sandbox Code Playgroud)