Class: Composer::Repository::CompositeRepository
Overview
Constant Summary
BaseRepository::SEARCH_FULLTEXT, BaseRepository::SEARCH_NAME
Instance Method Summary
collapse
Constructor Details
Initializes filesystem repository.
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
# 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
|
Instance Method Details
#add_repository(repository) ⇒ Object
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
|
# 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 ⇒ Object
104
105
106
107
108
109
110
|
# 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) ⇒ Object
53
54
55
56
57
58
59
60
|
# 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) ⇒ Object
62
63
64
65
66
67
68
69
|
# 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) ⇒ Boolean
44
45
46
47
48
49
50
51
|
# 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 ⇒ Object
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
89
90
91
92
93
94
95
96
|
# 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) ⇒ Object
98
99
100
101
102
|
# File 'lib/composer/repository/composite_repository.rb', line 98
def remove_package(package)
@repositories.each do |repo|
repo.remove_package(package)
end
end
|
#repositories ⇒ Object
40
41
42
|
# File 'lib/composer/repository/composite_repository.rb', line 40
def repositories
@repositories
end
|
#search(query, mode = 0) ⇒ Object
71
72
73
74
75
76
77
78
|
# 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
|