class Wright::Util::FileRenderer
File
renderer.
@example
filename = 'template.erb' template = "foo is <%= foo %>." hash = { foo: :bar } File.write(filename, template) renderer = Wright::Util::FileRenderer.new(hash) renderer.render(filename) # => "foo is bar."
Constants
- FILE_RENDERERS
Attributes
hash[R]
Public Class Methods
new(hash)
click to toggle source
Initializes a FileTemplate. @param hash [Hash] the attribute hash of the template
# File lib/wright/util/file_renderer.rb, line 19 def initialize(hash) @hash = hash end
Public Instance Methods
render(filename)
click to toggle source
Renders a template file. @param filename [String] the filename of the template @raise [ArgumentError] if the given file type is not supported
# File lib/wright/util/file_renderer.rb, line 26 def render(filename) renderer = renderer_for_file(filename) template = ::File.read(::File.expand_path(filename)) renderer.render(template) end
Private Instance Methods
renderer_for_file(filename)
click to toggle source
# File lib/wright/util/file_renderer.rb, line 41 def renderer_for_file(filename) file_extension = ::File.extname(filename) rendering_class = FILE_RENDERERS[file_extension] unknown_template_type = "unknown template type '#{file_extension}'" fail ArgumentError, unknown_template_type unless rendering_class rendering_class.new(hash) end