Class: Bolt::Puppetfile::Module

Inherits:
Object
  • Object
show all
Defined in:
lib/bolt/puppetfile/module.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(owner, name, version = nil) ⇒ Module

Returns a new instance of Module.



13
14
15
16
17
# File 'lib/bolt/puppetfile/module.rb', line 13

def initialize(owner, name, version = nil)
  @owner   = owner
  @name    = name
  @version = version
end

Instance Attribute Details

#nameObject (readonly)

Returns the value of attribute name.



11
12
13
# File 'lib/bolt/puppetfile/module.rb', line 11

def name
  @name
end

#ownerObject (readonly)

Returns the value of attribute owner.



11
12
13
# File 'lib/bolt/puppetfile/module.rb', line 11

def owner
  @owner
end

#versionObject (readonly)

Returns the value of attribute version.



11
12
13
# File 'lib/bolt/puppetfile/module.rb', line 11

def version
  @version
end

Class Method Details

.from_hash(mod) ⇒ Object

Creates a new module from a hash.



21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/bolt/puppetfile/module.rb', line 21

def self.from_hash(mod)
  unless mod['name'].is_a?(String)
    raise Bolt::ValidationError,
          "Module name must be a String, not #{mod['name'].inspect}"
  end

  owner, name = mod['name'].tr('/', '-').split('-', 2)

  unless owner && name
    raise Bolt::ValidationError, "Module name #{mod['name']} must include both the owner and module name."
  end

  new(owner, name)
end

Instance Method Details

#eql?(other) ⇒ Boolean Also known as: ==

Checks two modules for equality.

Returns:

  • (Boolean)


44
45
46
# File 'lib/bolt/puppetfile/module.rb', line 44

def eql?(other)
  self.class == other.class && @owner == other.owner && @name == other.name
end

#hashObject

Hashes the module.



51
52
53
# File 'lib/bolt/puppetfile/module.rb', line 51

def hash
  [@owner, @name].hash
end

#titleObject

Returns the module’s title.



38
39
40
# File 'lib/bolt/puppetfile/module.rb', line 38

def title
  "#{@owner}-#{@name}"
end

#to_specObject

Returns the Puppetfile specification for the module.



57
58
59
60
61
62
63
# File 'lib/bolt/puppetfile/module.rb', line 57

def to_spec
  if @version
    "mod #{title.inspect}, #{@version.inspect}"
  else
    "mod #{title.inspect}"
  end
end