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).


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

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.


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

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.


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

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.


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

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.


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

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.


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

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.


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

def ==(o)
  self.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.


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

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.


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

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