lib/ykutils/erubyx.rb in ykutils-0.1.3 vs lib/ykutils/erubyx.rb in ykutils-0.1.4
- old
+ new
@@ -1,14 +1,41 @@
require 'tilt'
+require 'yaml'
module Ykutils
module Erubyx
module_function
def erubi_render(template_hash, scope, value_hash)
unless template_hash[:OBJ]
template_hash[:OBJ] = Tilt::ErubiTemplate.new{ template_hash[:TEMPLATE] }
end
template_hash[:OBJ].render( scope, value_hash )
+ end
+
+##
+# `erubi_render_with_file` takes a template file path, a scope, and a value file path, reads the
+# template file, loads the value file, and then calls `erubi_render` with the template hash, scope,
+# and value hash
+#
+# Args:
+# template_file_path: The path to the template file.
+# scope: the scope of the template. This is the name of the directory that the template is in.
+# value_file_path: The path to the YAML file that contains the values to be used in the template.
+ def erubi_render_with_file(template_file_path, scope, value_file_path_array)
+ template_text = File.read(template_file_path)
+ template_hash = { TEMPLATE: template_text,
+ OBJ: nil
+ }
+ value_hash = value_file_path_array.reduce({}){ |hash, path|
+ #p path
+ hash0 = YAML.load_file(path)
+ #p hash0
+ hash = hash.merge(hash0)
+ #p hash
+ hash
+ }
+ #puts value_hash
+ erubi_render(template_hash, scope, value_hash)
end
end
end