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
origin attr same as R10K module :type.
-
#origin ⇒ Object
origin attr same as R10K module :type.
-
#owner ⇒ Object
origin attr same as R10K module :type.
-
#resolver_flags ⇒ Object
origin attr same as R10K module :type.
-
#version ⇒ Object
origin attr same as R10K module :type.
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.
12 13 14 15 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 |
# File 'lib/puppetfile-resolver/models/module_specification.rb', line 12 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
origin attr same as R10K module :type
10 11 12 |
# File 'lib/puppetfile-resolver/models/module_specification.rb', line 10 def name @name end |
#origin ⇒ Object
origin attr same as R10K module :type
10 11 12 |
# File 'lib/puppetfile-resolver/models/module_specification.rb', line 10 def origin @origin end |
#owner ⇒ Object
origin attr same as R10K module :type
10 11 12 |
# File 'lib/puppetfile-resolver/models/module_specification.rb', line 10 def owner @owner end |
#resolver_flags ⇒ Object
origin attr same as R10K module :type
10 11 12 |
# File 'lib/puppetfile-resolver/models/module_specification.rb', line 10 def resolver_flags @resolver_flags end |
#version ⇒ Object
origin attr same as R10K module :type
10 11 12 |
# File 'lib/puppetfile-resolver/models/module_specification.rb', line 10 def version @version end |
Instance Method Details
#dependencies(cache, resolver_ui) ⇒ Object
78 79 80 81 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 |
# File 'lib/puppetfile-resolver/models/module_specification.rb', line 78 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
65 66 67 68 69 70 71 |
# File 'lib/puppetfile-resolver/models/module_specification.rb', line 65 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
73 74 75 76 |
# File 'lib/puppetfile-resolver/models/module_specification.rb', line 73 def (_cache, _resolver_ui) # TODO: Later on we could resolve the metadata lazily, but for now, no need @metadata end |
#to_json(*args) ⇒ Object
56 57 58 59 60 61 62 63 |
# File 'lib/puppetfile-resolver/models/module_specification.rb', line 56 def to_json(*args) { 'name' => name, 'owner' => owner, 'origin' => origin, 'version' => version.to_s }.to_json(args) end |
#to_s ⇒ Object
42 43 44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/puppetfile-resolver/models/module_specification.rb', line 42 def to_s prefix = case @origin when :forge 'Forge' when :git 'Git' when :local 'Local' else 'Unknown' end "#{prefix} #{owner}-#{name}-#{version}" end |