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  |