Class: Puppet::ModuleTool::Dependency Private

Inherits:
Object
  • Object
show all
Includes:
Network::FormatSupport
Defined in:
lib/puppet/module_tool/dependency.rb

This class is part of a private API. You should avoid using this class if possible, as it may be removed or be changed in the future.

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Network::FormatSupport

included, #mime, #render, #support_format?, #to_json, #to_msgpack, #to_pson

Constructor Details

#initialize(full_module_name, version_requirement = nil, repository = nil) ⇒ Dependency

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Instantiates a new module dependency with a full_module_name (e.g. “myuser-mymodule”), and optional version_requirement (e.g. “0.0.1”) and optional repository (a URL string).



15
16
17
18
19
20
21
# File 'lib/puppet/module_tool/dependency.rb', line 15

def initialize(full_module_name, version_requirement = nil, repository = nil)
  @full_module_name = full_module_name
  # TODO: add error checking, the next line raises ArgumentError when +full_module_name+ is invalid
  @username, @name = Puppet::ModuleTool.username_and_modname_from(full_module_name)
  @version_requirement = version_requirement
  @repository = repository ? Puppet::Forge::Repository.new(repository, nil) : nil
end

Instance Attribute Details

#full_module_nameObject (readonly)

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



10
11
12
# File 'lib/puppet/module_tool/dependency.rb', line 10

def full_module_name
  @full_module_name
end

#nameObject (readonly)

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



10
11
12
# File 'lib/puppet/module_tool/dependency.rb', line 10

def name
  @name
end

#repositoryObject (readonly)

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



10
11
12
# File 'lib/puppet/module_tool/dependency.rb', line 10

def repository
  @repository
end

#usernameObject (readonly)

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



10
11
12
# File 'lib/puppet/module_tool/dependency.rb', line 10

def username
  @username
end

#version_requirementObject (readonly)

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



10
11
12
# File 'lib/puppet/module_tool/dependency.rb', line 10

def version_requirement
  @version_requirement
end

Instance Method Details

#==(o) ⇒ Object Also known as: eql?

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

We override Object’s ==, eql, and hash so we can more easily find identical dependencies.



25
26
27
# File 'lib/puppet/module_tool/dependency.rb', line 25

def ==(o)
  hash == o.hash
end

#hashObject

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



31
32
33
# File 'lib/puppet/module_tool/dependency.rb', line 31

def hash
  [@full_module_name, @version_requirement, @repository].hash
end

#to_data_hashObject

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



35
36
37
38
39
40
# File 'lib/puppet/module_tool/dependency.rb', line 35

def to_data_hash
  result = { :name => @full_module_name }
  result[:version_requirement] = @version_requirement if @version_requirement && !@version_requirement.nil?
  result[:repository] = @repository.to_s if @repository && !@repository.nil?
  result
end