lib/sprinkle/actors/capistrano.rb in auser-sprinkle-0.1.5 vs lib/sprinkle/actors/capistrano.rb in auser-sprinkle-0.1.6

- old
+ new

@@ -1,29 +1,57 @@ require 'capistrano/cli' module Sprinkle module Actors + # = Capistrano Delivery Method + # + # Capistrano is one of the delivery method options available out of the + # box with Sprinkle. If you have the capistrano gem install, you may use + # this delivery. The only configuration option available, and which is + # mandatory to include is +recipes+. An example: + # + # deployment do + # delivery :capistrano do + # recipes 'deploy' + # end + # end + # + # Recipes is given a list of files which capistrano will include and load. + # These recipes are mainly to set variables such as :user, :password, and to + # set the app domain which will be sprinkled. class Capistrano - attr_accessor :config, :loaded_recipes + attr_accessor :config, :loaded_recipes #:nodoc: - def initialize(&block) + def initialize(&block) #:nodoc: @config = ::Capistrano::Configuration.new @config.logger.level = Sprinkle::OPTIONS[:verbose] ? ::Capistrano::Logger::INFO : ::Capistrano::Logger::IMPORTANT @config.set(:password) { ::Capistrano::CLI.password_prompt } if block self.instance_eval &block else @config.load 'deploy' # normally in the config directory for rails end end + # Defines a recipe file which will be included by capistrano. Use these + # recipe files to set capistrano specific configurations. Default recipe + # included is "deploy." But if any other recipe is specified, it will + # include that instead. Multiple recipes may be specified through multiple + # recipes calls, an example: + # + # deployment do + # delivery :capistrano do + # recipes 'deploy' + # recipes 'magic_beans' + # end + # end def recipes(script) @loaded_recipes ||= [] @config.load script @loaded_recipes << script end - def process(name, commands, roles, suppress_and_return_failures = false) + def process(name, commands, roles, suppress_and_return_failures = false) #:nodoc: define_task(name, roles) do via = fetch(:run_method, :sudo) commands.each do |command| invoke_command command, :via => via end