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