diff options
-rw-r--r-- | lib/zero/renderer.rb | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/lib/zero/renderer.rb b/lib/zero/renderer.rb index 3e9f790..31a6e27 100644 --- a/lib/zero/renderer.rb +++ b/lib/zero/renderer.rb @@ -55,14 +55,10 @@ module Zero # the wanted template. def read_template_path! @templates = Hash.new do |hash, key| - subtree = {} - search_files(key).each do |file| - parts = file.split('.') - read_type(parts[2]).each do |type| - subtree[type] = file - end - end - hash[key] = subtree + # TODO this is just ugly + result = [] + search_files(key).each { |file| fill_template_type_map(result, file) } + Hash[result] end self end @@ -73,6 +69,13 @@ module Zero Dir[template_path + template_name + '**/*.*'] end + def fill_template_type_map(dataset, file) + parts = file.split('.') + read_type(parts[2]).each do |type| + dataset << [type, file] + end + end + def read_type(short_notation) to_type_list(type_map[short_notation] || short_notation) end |