class HaveAPI::GoClient::ErbTemplate
Public Class Methods
new(name, vars)
click to toggle source
# File lib/haveapi/go_client/erb_template.rb, line 28 def initialize(name, vars) @_tpl = ERB.new(File.new(HaveAPI::GoClient.tpl(name)).read, 0, '-') vars.each do |k, v| if v.is_a?(Proc) define_singleton_method(k, &v) elsif v.is_a?(Method) define_singleton_method(k) { |*args| v.call(*args) } else define_singleton_method(k) { v } end end end
render(name, vars)
click to toggle source
# File lib/haveapi/go_client/erb_template.rb, line 6 def self.render(name, vars) t = new(name, vars) t.render end
render_to(name, vars, path)
click to toggle source
# File lib/haveapi/go_client/erb_template.rb, line 11 def self.render_to(name, vars, path) File.write("#{path}.new", render(name, vars)) File.rename("#{path}.new", path) end
render_to_if_changed(name, vars, path)
click to toggle source
# File lib/haveapi/go_client/erb_template.rb, line 16 def self.render_to_if_changed(name, vars, path) tmp_path = "#{path}.new" File.write(tmp_path, render(name, vars)) if !File.exist?(path) || !FileUtils.identical?(path, tmp_path) File.rename(tmp_path, path) else File.unlink(tmp_path) end end
Public Instance Methods
render()
click to toggle source
# File lib/haveapi/go_client/erb_template.rb, line 42 def render @_tpl.result(binding) end