Class: R10K::Environment::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/r10k/environment/base.rb

Overview

This class defines a common interface for environment implementations.

Since:

  • 1.3.0

Direct Known Subclasses

Git, SVN

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name, basedir, dirname, options = {}) ⇒ Base

Initialize the given environment.

Parameters:

  • name (String)

    The unique name describing this environment.

  • basedir (String)

    The base directory where this environment will be created.

  • dirname (String)

    The directory name for this environment.

  • options (Hash) (defaults to: {})

    An additional set of options for this environment. The semantics of this environment may depend on the environment implementation.

Since:

  • 1.3.0



34
35
36
37
38
39
40
41
42
43
# File 'lib/r10k/environment/base.rb', line 34

def initialize(name, basedir, dirname, options = {})
  @name    = name
  @basedir = basedir
  @dirname = dirname
  @options = options

  @full_path = File.join(@basedir, @dirname)
  @path = Pathname.new(File.join(@basedir, @dirname))
  @puppetfile  = R10K::Puppetfile.new(@full_path)
end

Instance Attribute Details

#basedirObject (readonly)

Since:

  • 1.3.0



12
13
14
# File 'lib/r10k/environment/base.rb', line 12

def basedir
  @basedir
end

#dirnameObject (readonly)

Since:

  • 1.3.0



16
17
18
# File 'lib/r10k/environment/base.rb', line 16

def dirname
  @dirname
end

#nameObject (readonly)

Since:

  • 1.3.0



8
9
10
# File 'lib/r10k/environment/base.rb', line 8

def name
  @name
end

#pathObject (readonly)

Since:

  • 1.3.0



20
21
22
# File 'lib/r10k/environment/base.rb', line 20

def path
  @path
end

#puppetfileObject (readonly)

Since:

  • 1.3.0



25
26
27
# File 'lib/r10k/environment/base.rb', line 25

def puppetfile
  @puppetfile
end

Instance Method Details

#accept(visitor) ⇒ Object

Since:

  • 1.3.0



77
78
79
80
81
# File 'lib/r10k/environment/base.rb', line 77

def accept(visitor)
  visitor.visit(:environment, self) do
    puppetfile.accept(visitor)
  end
end

#modulesArray<R10K::Module::Base>

Returns All modules defined in the Puppetfile associated with this environment.

Returns:

  • (Array<R10K::Module::Base>)

    All modules defined in the Puppetfile associated with this environment.

Since:

  • 1.3.0



72
73
74
75
# File 'lib/r10k/environment/base.rb', line 72

def modules
  @puppetfile.load
  @puppetfile.modules
end

#statusSymbol

This method is abstract.

Determine the current status of the environment.

This can return the following values:

* :absent - there is no module installed
* :mismatched - there is a module installed but it must be removed and reinstalled
* :outdated - the correct module is installed but it needs to be updated
* :insync - the correct module is installed and up to date, or the module is actually a boy band.

Returns:

  • (Symbol)

Raises:

  • (NotImplementedError)

Since:

  • 1.3.0



66
67
68
# File 'lib/r10k/environment/base.rb', line 66

def status
  raise NotImplementedError, "#{self.class} has not implemented method #{__method__}"
end

#syncvoid

This method is abstract.

This method returns an undefined value.

Synchronize the given environment.

Raises:

  • (NotImplementedError)

Since:

  • 1.3.0



50
51
52
# File 'lib/r10k/environment/base.rb', line 50

def sync
  raise NotImplementedError, "#{self.class} has not implemented method #{__method__}"
end