Class: PuppetfileResolver::Models::ModuleSpecification
- Inherits:
-
Object
- Object
- PuppetfileResolver::Models::ModuleSpecification
- Defined in:
- lib/puppetfile-resolver/models/module_specification.rb
Direct Known Subclasses
Instance Attribute Summary collapse
-
#name ⇒ Object
Returns the value of attribute name.
-
#origin ⇒ Object
Same as R10K module :type.
-
#owner ⇒ Object
Returns the value of attribute owner.
-
#resolver_flags ⇒ Object
Returns the value of attribute resolver_flags.
-
#version ⇒ Object
Returns the value of attribute version.
Instance Method Summary collapse
- #dependencies(cache, resolver_ui) ⇒ Object
- #from_hash!(hash) ⇒ Object
-
#initialize(options = {}) ⇒ ModuleSpecification
constructor
A new instance of ModuleSpecification.
- #metadata(_cache, _resolver_ui) ⇒ Object
- #to_json(*args) ⇒ Object
- #to_s ⇒ Object
Constructor Details
#initialize(options = {}) ⇒ ModuleSpecification
Returns a new instance of ModuleSpecification.
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/puppetfile-resolver/models/module_specification.rb', line 16 def initialize( = {}) require 'semantic_puppet' @name = [:name] @owner = [:owner] # Munge the name # "puppetlabs/stdlib" # "puppetlabs-stdlib" # "puppetlabs-stdlib-1.0.0 ??" # "stdlib" unless @name.nil? result = @name.split('/', 2) if result.count > 1 @owner = result[0] @name = result[1] else result = @name.split('-') if result.count > 1 @owner = result[0] @name = result[1] end end end @origin = [:origin] @dependencies = nil @metadata = [:metadata] @resolver_flags = [:resolver_flags].nil? ? [] : [:resolver_flags] @version = ::SemanticPuppet::Version.parse([:version]) unless [:version].nil? end |
Instance Attribute Details
#name ⇒ Object
Returns the value of attribute name.
10 11 12 |
# File 'lib/puppetfile-resolver/models/module_specification.rb', line 10 def name @name end |
#origin ⇒ Object
Same as R10K module :type
13 14 15 |
# File 'lib/puppetfile-resolver/models/module_specification.rb', line 13 def origin @origin end |
#owner ⇒ Object
Returns the value of attribute owner.
11 12 13 |
# File 'lib/puppetfile-resolver/models/module_specification.rb', line 11 def owner @owner end |
#resolver_flags ⇒ Object
Returns the value of attribute resolver_flags.
14 15 16 |
# File 'lib/puppetfile-resolver/models/module_specification.rb', line 14 def resolver_flags @resolver_flags end |
#version ⇒ Object
Returns the value of attribute version.
12 13 14 |
# File 'lib/puppetfile-resolver/models/module_specification.rb', line 12 def version @version end |
Instance Method Details
#dependencies(cache, resolver_ui) ⇒ Object
82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 |
# File 'lib/puppetfile-resolver/models/module_specification.rb', line 82 def dependencies(cache, resolver_ui) return @dependencies unless @dependencies.nil? return (@dependencies = []) if resolver_flags.include?(PuppetfileResolver::Puppetfile::DISABLE_ALL_DEPENDENCIES_FLAG) = (cache, resolver_ui) @dependencies = [] unless [:dependencies].nil? || [:dependencies].empty? @dependencies = [:dependencies].map do |dep| ModuleDependency.new( name: dep[:name], version_requirement: dep[:version_requirement] || dep[:version_range] || '>= 0.0.0' ) end end unless resolver_flags.include?(PuppetfileResolver::Puppetfile::DISABLE_PUPPET_DEPENDENCY_FLAG) puppet_requirement = nil unless [:requirements].nil? || [:requirements].empty? # rubocop:disable Style/IfUnlessModifier puppet_requirement = [:requirements].find { |req| req[:name] == 'puppet' && !req[:version_requirement].nil? } end if puppet_requirement.nil? @dependencies << PuppetDependency.new('>= 0') else @dependencies << PuppetDependency.new(puppet_requirement[:version_requirement]) end end @dependencies end |
#from_hash!(hash) ⇒ Object
69 70 71 72 73 74 75 |
# File 'lib/puppetfile-resolver/models/module_specification.rb', line 69 def from_hash!(hash) @name = hash['name'] @owner = hash['owner'] @origin = hash['origin'] @version = ::SemanticPuppet::Version.parse(hash['version']) unless hash['version'].nil? self end |
#metadata(_cache, _resolver_ui) ⇒ Object
77 78 79 80 |
# File 'lib/puppetfile-resolver/models/module_specification.rb', line 77 def (_cache, _resolver_ui) # TODO: Later on we could resolve the metadata lazily, but for now, no need @metadata end |
#to_json(*args) ⇒ Object
60 61 62 63 64 65 66 67 |
# File 'lib/puppetfile-resolver/models/module_specification.rb', line 60 def to_json(*args) { 'name' => name, 'owner' => owner, 'origin' => origin, 'version' => version.to_s }.to_json(args) end |
#to_s ⇒ Object
46 47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/puppetfile-resolver/models/module_specification.rb', line 46 def to_s prefix = case @origin when :forge 'Forge' when :git 'Git' when :local 'Local' else 'Unknown' end "#{prefix} #{owner}-#{name}-#{version}" end |