class Composer::Repository::CompositeRepository
CompositeRepository
repository.
PHP Authors: Beau Simensen <beau@dflydev.com>
Ruby Authors: Ioannis Kappas <ikappas@devworks.gr>
Public Class Methods
new(repositories)
click to toggle source
Initializes filesystem repository. @param [Array] repositories An array of repositories.
# File lib/composer/repository/composite_repository.rb, line 24 def initialize(repositories) unless repositories raise ArgumentError, 'repositories must be specified' end unless repositories.is_a?(Array) raise TypeError, 'repositories type must be an \ Array of Composer::Repository::BaseRepository' end @repositories = [] repositories.each do |repository| add_repository(repository) end end
Public Instance Methods
add_repository(repository)
click to toggle source
# File lib/composer/repository/composite_repository.rb, line 112 def add_repository(repository) unless repository raise ArgumentError, 'repository must be specified' end unless repository.is_a?(Composer::Repository::BaseRepository) raise TypeError, 'repository type must be a \ Composer::Repository::BaseRepository or superclass' end if repository.instance_of?(Composer::Repository::CompositeRepository) repository.repositories.each do |repo| add_repository(repo) end else @repositories.push(repository) end end
count()
click to toggle source
# File lib/composer/repository/composite_repository.rb, line 104 def count total = 0; @repositories.each do |repo| total += repo.count end total end
find_package(name, version = nil)
click to toggle source
# File lib/composer/repository/composite_repository.rb, line 53 def find_package(name, version = nil) package = nil @repositories.each do |repo| package = repo.find_package(name, version) break unless package.nil? end package end
find_packages(name, version = nil)
click to toggle source
# File lib/composer/repository/composite_repository.rb, line 62 def find_packages(name, version = nil) packages = [] @repositories.each do |repo| repo_packages = repo.find_packages(name, version) repo_packages.map { |p| packages.push(p) } unless repo_packages.empty? end packages end
package?(package)
click to toggle source
# File lib/composer/repository/composite_repository.rb, line 44 def package?(package) @repositories.each do |repo| if repo.package?(package) return true end end false end
packages()
click to toggle source
def filter_packages(callback, class_name = ‘Composer::Package::Package’)
@repositories.each do |repo| if (false === repo.filter_packages(callback, class_name)) return false end end true
end
# File lib/composer/repository/composite_repository.rb, line 89 def packages packages = [] @repositories.each do |repo| repo_packages = repo.packages repo_packages.map { |p| packages.push(p) } unless repo_packages.empty? end packages end
remove_package(package)
click to toggle source
# File lib/composer/repository/composite_repository.rb, line 98 def remove_package(package) @repositories.each do |repo| repo.remove_package(package) end end
repositories()
click to toggle source
# File lib/composer/repository/composite_repository.rb, line 40 def repositories @repositories end
search(query, mode = 0)
click to toggle source
# File lib/composer/repository/composite_repository.rb, line 71 def search(query, mode = 0) matches = [] @repositories.each do |repo| repo_matches = repo.search(query, mode) repo_matches.map{ |m| matches.push(m) } unless repo_matches.empty? end matches end