Class: PuppetForge::V3::Module
- Inherits:
-
Object
- Object
- PuppetForge::V3::Module
- Includes:
- Connection
- Defined in:
- lib/shared/puppet_forge/v3/module.rb
Overview
Represents metadata for a single Forge module and provides access to the releases of a module.
Constant Summary
Constants included from Connection
Instance Attribute Summary collapse
-
#full_name ⇒ Object
readonly
Returns the value of attribute full_name.
Attributes included from Connection
Instance Method Summary collapse
-
#initialize(full_name) ⇒ Module
constructor
A new instance of Module.
-
#latest_version ⇒ String
Get all released versions of this module.
-
#release(version) ⇒ ModuleRelease
Get a specific release of this module off of the forge.
-
#versions ⇒ Array<String>
Get all released versions of this module.
Methods included from Connection
authorization, authorization=, #make_connection
Constructor Details
#initialize(full_name) ⇒ Module
Returns a new instance of Module.
20 21 22 |
# File 'lib/shared/puppet_forge/v3/module.rb', line 20 def initialize(full_name) @full_name = PuppetForge::V3.normalize_name(full_name) end |
Instance Attribute Details
#full_name ⇒ Object (readonly)
Returns the value of attribute full_name.
16 17 18 |
# File 'lib/shared/puppet_forge/v3/module.rb', line 16 def full_name @full_name end |
Instance Method Details
#latest_version ⇒ String
Get all released versions of this module
57 58 59 |
# File 'lib/shared/puppet_forge/v3/module.rb', line 57 def latest_version versions.last end |
#release(version) ⇒ ModuleRelease
Get a specific release of this module off of the forge.
64 65 66 |
# File 'lib/shared/puppet_forge/v3/module.rb', line 64 def release(version) PuppetForge::V3::ModuleRelease.new(@full_name, version).tap { |mr| mr.conn = conn } end |
#versions ⇒ Array<String>
Get all released versions of this module
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/shared/puppet_forge/v3/module.rb', line 32 def versions path = "/v3/modules/#{@full_name}" response = conn.get(path) releases = [] response.body['releases'].each do |release| if !release['deleted_at'] releases << release['version'] end end releases.reverse rescue Faraday::ResourceNotFound => e raise PuppetForge::ModuleNotFound, "The module #{@full_name} does not exist on #{conn.url_prefix}.", e.backtrace end |