aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/zero/renderer.rb19
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