Class: Bits::Repository

Inherits:
Object
  • Object
show all
Includes:
Logging
Defined in:
lib/bits/repository.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Logging

included, #log

Constructor Details

#initialize(providers, backend) ⇒ Repository

Returns a new instance of Repository.



25
26
27
28
29
# File 'lib/bits/repository.rb', line 25

def initialize(providers, backend)
  @bitcache = {}
  @providers = providers
  @backend = backend
end

Instance Attribute Details

#backendObject

Returns the value of attribute backend.



23
24
25
# File 'lib/bits/repository.rb', line 23

def backend
  @backend
end

#providersObject

Returns the value of attribute providers.



23
24
25
# File 'lib/bits/repository.rb', line 23

def providers
  @providers
end

Instance Method Details

#find_package(atom, criteria = {}) ⇒ Object



31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/bits/repository.rb', line 31

def find_package(atom, criteria={})
  ppps = []

  iterate_packages(atom) do |bit, atom, provider, parameters, path|
    begin
      package = provider.query(atom)
    rescue MissingPackage
      log.warn "No such atom '#{atom}' for provider '#{provider.provider_id}'"
      next
    end

    ppps << PPP.new(bit, provider, package, parameters, path)
  end

  if ppps.empty?
    raise MissingProvidedPackage.new atom
  end

  return PackageProxy.new atom, ppps, criteria
end