class Cult::Template::Context

Public Class Methods

new(project, pwd: nil, **kw) click to toggle source
Calls superclass method Cult::ProjectContext::new
# File lib/cult/template.rb, line 9
def initialize(project, pwd: nil, **kw)
  @pwd = pwd
  super(project, **kw)
end

Public Instance Methods

cultsrcid() click to toggle source
# File lib/cult/template.rb, line 14
def cultsrcid
  loc = caller_locations(1, 1)[0]
  path = loc.absolute_path
  if path.start_with?(project.path)
    path = project.name + "/" + path[project.path.size + 1 .. -1]
  end

  user, host = Etc.getlogin, Socket.gethostname
  vcs = "#{git_branch}@#{git_commit_id(short: true)}"
  timestamp = Time.now.iso8601

  "@cultsrcid: #{path}:#{loc.lineno} #{vcs} #{timestamp} #{user}@#{host}"
end

Private Instance Methods

_process(input, filename: nil) click to toggle source
# File lib/cult/template.rb, line 29
def _process(input, filename: nil)
  Dir.chdir(@pwd || Dir.pwd) do
    erb = Erubi::Engine.new(input, filename: filename)
    binding.eval(erb.src)
  end
end