Class: Capistrano::Distribution

Inherits:
Object
  • Object
show all
Defined in:
lib/capistrano/distribution.rb,
lib/capistrano/distribution/version.rb,
lib/capistrano/distribution/distributor.rb,
lib/capistrano/distribution/distributor/tar.rb,
lib/capistrano/distribution/distributor/zip.rb,
lib/capistrano/distribution/distributor/abstract.rb,
lib/capistrano/distribution/distributor/curl_tar.rb,
lib/capistrano/distribution/distributor/curl_zip.rb,
lib/capistrano/distribution/distributor/git_pull.rb,
lib/capistrano/distribution/distributor/git_push.rb,
lib/capistrano/distribution/distributor/tar_helper.rb,
lib/capistrano/distribution/distributor/abstract_git.rb,
lib/capistrano/distribution/distributor/abstract_curl.rb,
lib/capistrano/distribution/distributor/abstract_archiver.rb

Overview

A list of distributors to run.

Defined Under Namespace

Modules: Distributor

Constant Summary collapse

VERSION =

The release version of this gem.

'0.4.3'

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(context) ⇒ Distribution

Creates the list of distributors to run based on the definition found in the :distribution key of context. The value associated the distribution can be 1 of 3 types:

  • String

  • Array of Arrays of distributor initialization arguments

  • Array of distributor instances

Parameters:

  • context ({#fetch, #repo_path, #release_path})

    a Capistrano deployment context.



27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/capistrano/distribution.rb', line 27

def initialize(context)
  @context = context
  distributor_list = context.fetch(:distribution)

  case distributor_list
  when String
    distributor_list = [[distributor_list]]
  when Array
    unless distributor_list.all? { |distributor| Array === distributor }
      distributor_list = [distributor_list]
    end
  end

  @distributors = distributor_list.map do |distributor|
    Distributor.create(context, distributor)
  end
end

Instance Attribute Details

#contextObject (readonly, private)

The Capistrano context object.



71
72
73
# File 'lib/capistrano/distribution.rb', line 71

def context
  @context
end

#distributorsObject (readonly, private)

The list of distributors.



67
68
69
# File 'lib/capistrano/distribution.rb', line 67

def distributors
  @distributors
end

Instance Method Details

#checkObject

Calls the #check method of each distributor in the list.



53
54
55
# File 'lib/capistrano/distribution.rb', line 53

def check
  distributors.all? { |distributor| distributor.check }
end

#distributeObject

Calls the #distribute method of each distributor in the list.



59
60
61
# File 'lib/capistrano/distribution.rb', line 59

def distribute
  distributors.each { |distributor| distributor.distribute }
end

#release_idObject

An identifier for a release.



47
48
49
# File 'lib/capistrano/distribution.rb', line 47

def release_id
  context.fetch(:release_id)
end