Sha256: 7c794609ec2796337a9c29b7204a6c55d16c6291e9a07a1ca2bd7fd00a33d4c8
Contents?: true
Size: 1.31 KB
Versions: 17
Compression:
Stored size: 1.31 KB
Contents
require "erubis" module Capper module Utils module Templates # render an erb template from config/deploy/templates to the current # server list. this will render and upload templates serially using a # server-specific @variables binding. see get_binding for details. def upload_template_file(name, path, options={}) template = "config/deploy/templates/#{name}.erb" unless File.exist?(template) template = File.expand_path("../../templates/#{name}.erb", __FILE__) end str = File.open(template).read upload_template_string(str, path, options) end def upload_template_string(str, path, options={}) upload_template(path, options) do |server| str end end def upload_template(path, options={}) if task = current_task servers = find_servers_for_task(task, options) else servers = find_servers(options) end if servers.empty? raise Capistrano::NoMatchingServersError, "no servers matching #{task.options.inspect}" end servers.each do |server| erb = Erubis::Eruby.new(yield server) result = erb.result(binding) put(result, path, options.merge!(:hosts => server)) end end end end end
Version data entries
17 entries across 17 versions & 1 rubygems