Class: R10K::Source::SVN
- Includes:
- Logging, Util::Setopts
- Defined in:
- lib/r10k/source/svn.rb
Overview
This class implements a source for SVN environments.
An SVN source generates environments by enumerating the branches and trunk for a given SVN remote. SVN repositories must conform to the conventional SVN repository structure with the directories trunk/, branches/, and optionally tags/ in the root of the repository. The trunk/ directory is specifically mapped to the production environment, branches are created as environments with the name of the given branch.
Constant Summary
Constants included from Logging
Instance Attribute Summary collapse
- #password ⇒ Object readonly
- #remote ⇒ Object readonly
- #svn_remote ⇒ Object readonly
- #username ⇒ Object readonly
Attributes inherited from Base
Instance Method Summary collapse
-
#desired_contents ⇒ Array<String>
List all environments that should exist in the basedir for this source.
-
#environments ⇒ Array<R10K::Environment::SVN>
Enumerate the environments associated with this SVN source.
-
#generate_environments ⇒ Array<R10K::Environment::SVN>
Generate a list of currently available SVN environments.
-
#initialize(name, basedir, options = {}) ⇒ SVN
constructor
Initialize the given source.
Methods included from Logging
debug_formatter, default_formatter, default_outputter, #logger, #logger_name, parse_level
Methods inherited from Base
Constructor Details
#initialize(name, basedir, options = {}) ⇒ SVN
Initialize the given source.
53 54 55 56 57 58 59 |
# File 'lib/r10k/source/svn.rb', line 53 def initialize(name, basedir, = {}) super setopts(, {:remote => :self, :username => :self, :password => :self}) @environments = [] @svn_remote = R10K::SVN::Remote.new(@remote, :username => @username, :password => @password) end |
Instance Attribute Details
#password ⇒ Object (readonly)
38 39 40 |
# File 'lib/r10k/source/svn.rb', line 38 def password @password end |
#remote ⇒ Object (readonly)
23 24 25 |
# File 'lib/r10k/source/svn.rb', line 23 def remote @remote end |
#svn_remote ⇒ Object (readonly)
28 29 30 |
# File 'lib/r10k/source/svn.rb', line 28 def svn_remote @svn_remote end |
#username ⇒ Object (readonly)
33 34 35 |
# File 'lib/r10k/source/svn.rb', line 33 def username @username end |
Instance Method Details
#desired_contents ⇒ Array<String>
This is required by Util::Basedir
List all environments that should exist in the basedir for this source
94 95 96 |
# File 'lib/r10k/source/svn.rb', line 94 def desired_contents @environments.map {|env| env.dirname } end |
#environments ⇒ Array<R10K::Environment::SVN>
Enumerate the environments associated with this SVN source.
65 66 67 68 69 70 71 |
# File 'lib/r10k/source/svn.rb', line 65 def environments if @environments.empty? @environments = generate_environments() end @environments end |
#generate_environments ⇒ Array<R10K::Environment::SVN>
respect environment name corrections
Generate a list of currently available SVN environments
80 81 82 83 84 85 86 87 88 89 |
# File 'lib/r10k/source/svn.rb', line 80 def generate_environments names_and_paths.map do |(branch, path)| = { :remote => path, :username => @username, :password => @password } R10K::Environment::SVN.new(branch.name, @basedir, branch.dirname, ) end end |