Class: PuppetLibrary::Forge::Directory

Inherits:
Abstract
  • Object
show all
Defined in:
lib/puppet_library/forge/directory.rb

Instance Method Summary collapse

Methods inherited from Abstract

#collect_dependencies_versions, #get_module_buffer, #get_module_metadata, #get_module_metadata_with_dependencies, #retrieve_all_metadata, #retrieve_metadata, #search_modules

Constructor Details

#initialize(module_dir) ⇒ Directory

Returns a new instance of Directory.



24
25
26
27
# File 'lib/puppet_library/forge/directory.rb', line 24

def initialize(module_dir)
    super(self)
    @module_dir = module_dir
end

Instance Method Details

#get_all_metadataObject



48
49
50
# File 'lib/puppet_library/forge/directory.rb', line 48

def 
    
end

#get_metadata(author = "*", module_name = "") ⇒ Object



39
40
41
42
43
44
45
46
# File 'lib/puppet_library/forge/directory.rb', line 39

def (author = "*", module_name = "")
    Dir["#{@module_dir}/#{author}-#{module_name}*"].map do |module_path|
        tar = Gem::Package::TarReader.new(Zlib::GzipReader.open(module_path))
        tar.rewind
         = tar.find {|e| e.full_name =~ /[^\/]+\/metadata\.json/}
        JSON.parse(.read)
    end
end

#get_module(author, name, version) ⇒ Object



29
30
31
32
33
34
35
36
37
# File 'lib/puppet_library/forge/directory.rb', line 29

def get_module(author, name, version)
    file_name = "#{author}-#{name}-#{version}.tar.gz"
    path = File.join(File.expand_path(@module_dir), file_name)
    if File.exist? path
        File.open(path, 'r')
    else
        nil
    end
end