class Archlinux::MakepkgCache

cache MakepkgList and download PKGBUILD dynamically

Attributes

get_mode[RW]
makepkg_list[RW]
select_existing[RW]

Public Class Methods

new(*args, get_mode: {}, **opts) click to toggle source
Calls superclass method Archlinux::InstallPackageList::new
# File lib/aur/install_packages.rb, line 74
def initialize(*args, get_mode: {}, **opts)
        super(*args, **opts)
        # puts "MakepkgCache called with options: #{[args, get_mode]}"
        @select_existing=get_mode.delete(:existing)
        @get_mode=get_mode
        @ext_query=method(:ext_query)
        @makepkg_list=MakepkgList.new([], config: @config)
        #@query_ignore=AurPackageList.official
end

Public Instance Methods

ext_query(*queries, **opts) click to toggle source
# File lib/aur/install_packages.rb, line 92
def ext_query(*queries, **opts)
        m=get_makepkg_list(queries)
        m.keep_if {|_k,v| v.exist?} if @select_existing
        m.packages(get: @get_mode).as_ext_query(*queries, full_pkgs: true, **opts)
end
get_makepkg_list(l) click to toggle source
# File lib/aur/install_packages.rb, line 84
def get_makepkg_list(l)
        pkgs=l.map {|p| Query.strip(p)}
        # use the cache
        m=MakepkgList.new(pkgs.map {|pkg| @makepkg_list.key?(pkg) ? @makepkg_list[pkg] : pkg}, config: @config)
        @makepkg_list.merge(m.l.values)
        m
end