php-composer 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/composer.rb +2 -0
- data/lib/composer/repository/base_repository.rb +48 -0
- data/lib/composer/repository/composite_repository.rb +132 -0
- data/lib/composer/repository/hash_repository.rb +20 -19
- data/lib/composer/repository/writeable_hash_repository.rb +2 -0
- data/lib/composer/version.rb +1 -1
- metadata +3 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bd0828242017fa93167a253e4fbce6bbae871628
|
4
|
+
data.tar.gz: 69d2a47754a7c7185470305e96e0a688c2af3c6b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2ae70ad8be0979752a5dc60cf9443e11cd77be59dfa52f4843df3e885606bd0d54561e0acf4464d30d86f7c81ba2e45beab9b74a22b8ca078a1c599405ff5a67
|
7
|
+
data.tar.gz: 66aceb42043d3823308f769835d78a8a5b7df75fb93e3e9b1aa41d4e37665b323e489495204360e45b9bb864cce515cfbe8777136e6e8b72e1d6ce7783c4a13b
|
data/lib/composer.rb
CHANGED
@@ -44,9 +44,11 @@ require 'composer/package/version/version_selector'
|
|
44
44
|
# Dir[File.join(File.dirname(__FILE__), "composer/package/version/*.rb")].each {|file| require file }
|
45
45
|
|
46
46
|
# /repository
|
47
|
+
require 'composer/repository/base_repository'
|
47
48
|
require 'composer/repository/hash_repository'
|
48
49
|
require 'composer/repository/writeable_hash_repository'
|
49
50
|
require 'composer/repository/filesystem_repository'
|
51
|
+
require 'composer/repository/composite_repository'
|
50
52
|
|
51
53
|
module Composer
|
52
54
|
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
#
|
2
|
+
# This file was ported to ruby from Composer php source code.
|
3
|
+
# Original Source: Composer\Repository\RepositoryInterface.php
|
4
|
+
#
|
5
|
+
# (c) Nils Adermann <naderman@naderman.de>
|
6
|
+
# Jordi Boggiano <j.boggiano@seld.be>
|
7
|
+
#
|
8
|
+
# For the full copyright and license information, please view the LICENSE
|
9
|
+
# file that was distributed with this source code.
|
10
|
+
#
|
11
|
+
|
12
|
+
module Composer
|
13
|
+
module Repository
|
14
|
+
# Base repository.
|
15
|
+
#
|
16
|
+
# PHP Authors:
|
17
|
+
# Nils Adermann <naderman@naderman.de>
|
18
|
+
# Konstantin Kudryashov <ever.zet@gmail.com>
|
19
|
+
# Jordi Boggiano <j.boggiano@seld.
|
20
|
+
#
|
21
|
+
# Ruby Authors:
|
22
|
+
# Ioannis Kappas <ikappas@devworks.gr>
|
23
|
+
class BaseRepository
|
24
|
+
SEARCH_FULLTEXT = 0
|
25
|
+
SEARCH_NAME = 1
|
26
|
+
|
27
|
+
def package?
|
28
|
+
# implement inside child
|
29
|
+
end
|
30
|
+
|
31
|
+
def find_package(name, version)
|
32
|
+
# implement inside child
|
33
|
+
end
|
34
|
+
|
35
|
+
def find_packages(name, version = nil)
|
36
|
+
# implement inside child
|
37
|
+
end
|
38
|
+
|
39
|
+
def packages
|
40
|
+
# implement inside child
|
41
|
+
end
|
42
|
+
|
43
|
+
def search(query, mode = 0)
|
44
|
+
# implement inside child
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
@@ -0,0 +1,132 @@
|
|
1
|
+
#
|
2
|
+
# This file was ported to ruby from Composer php source code.
|
3
|
+
# Original Source: Composer\Repository\CompositeRepository.php
|
4
|
+
#
|
5
|
+
# (c) Nils Adermann <naderman@naderman.de>
|
6
|
+
# Jordi Boggiano <j.boggiano@seld.be>
|
7
|
+
#
|
8
|
+
# For the full copyright and license information, please view the LICENSE
|
9
|
+
# file that was distributed with this source code.
|
10
|
+
#
|
11
|
+
|
12
|
+
module Composer
|
13
|
+
module Repository
|
14
|
+
# CompositeRepository repository.
|
15
|
+
#
|
16
|
+
# PHP Authors:
|
17
|
+
# Beau Simensen <beau@dflydev.com>
|
18
|
+
#
|
19
|
+
# Ruby Authors:
|
20
|
+
# Ioannis Kappas <ikappas@devworks.gr>
|
21
|
+
class CompositeRepository < Composer::Repository::BaseRepository
|
22
|
+
# Initializes filesystem repository.
|
23
|
+
# @param [Array] An array of reporitories
|
24
|
+
def initialize(repositories)
|
25
|
+
unless repositories
|
26
|
+
raise ArgumentError,
|
27
|
+
'repositories must be specified'
|
28
|
+
end
|
29
|
+
unless repositories.is_a?(Array)
|
30
|
+
raise TypeError,
|
31
|
+
'repositories type must be an \
|
32
|
+
Array of Composer::Repository::BaseRepository'
|
33
|
+
end
|
34
|
+
@repositories = []
|
35
|
+
repositories.each do |repository|
|
36
|
+
add_repository(repository)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
def repositories
|
41
|
+
@repositories
|
42
|
+
end
|
43
|
+
|
44
|
+
def package?(package)
|
45
|
+
@repositories.each do |repo|
|
46
|
+
if repo.package?(package)
|
47
|
+
return true
|
48
|
+
end
|
49
|
+
end
|
50
|
+
false
|
51
|
+
end
|
52
|
+
|
53
|
+
def find_package(name, version = nil)
|
54
|
+
package = nil
|
55
|
+
@repositories.each do |repo|
|
56
|
+
package = repo.find_package(name, version)
|
57
|
+
break unless package.nil?
|
58
|
+
end
|
59
|
+
package
|
60
|
+
end
|
61
|
+
|
62
|
+
def find_packages(name, version = nil)
|
63
|
+
packages = []
|
64
|
+
@repositories.each do |repo|
|
65
|
+
repo_packages = repo.find_packages(name, version)
|
66
|
+
repo_packages.map { |p| packages.push(p) } unless repo_packages.empty?
|
67
|
+
end
|
68
|
+
packages
|
69
|
+
end
|
70
|
+
|
71
|
+
def search(query, mode = 0)
|
72
|
+
matches = []
|
73
|
+
@repositories.each do |repo|
|
74
|
+
repo_matches = repo.search(query, mode)
|
75
|
+
repo_matches.map{ |m| matches.push(m) } unless repo_matches.empty?
|
76
|
+
end
|
77
|
+
matches
|
78
|
+
end
|
79
|
+
|
80
|
+
# def filter_packages(callback, class_name = 'Composer::Package::Package')
|
81
|
+
# @repositories.each do |repo|
|
82
|
+
# if (false === repo.filter_packages(callback, class_name))
|
83
|
+
# return false
|
84
|
+
# end
|
85
|
+
# end
|
86
|
+
# true
|
87
|
+
# end
|
88
|
+
|
89
|
+
def packages
|
90
|
+
packages = []
|
91
|
+
@repositories.each do |repo|
|
92
|
+
repo_packages = repo.packages
|
93
|
+
repo_packages.map { |p| packages.push(p) } unless repo_packages.empty?
|
94
|
+
end
|
95
|
+
packages
|
96
|
+
end
|
97
|
+
|
98
|
+
def remove_package(package)
|
99
|
+
@repositories.each do |repo|
|
100
|
+
repo.remove_package(package)
|
101
|
+
end
|
102
|
+
end
|
103
|
+
|
104
|
+
def count
|
105
|
+
total = 0;
|
106
|
+
@repositories.each do |repo|
|
107
|
+
total += repo.count
|
108
|
+
end
|
109
|
+
total
|
110
|
+
end
|
111
|
+
|
112
|
+
def add_repository(repository)
|
113
|
+
unless repository
|
114
|
+
raise ArgumentError,
|
115
|
+
'repository must be specified'
|
116
|
+
end
|
117
|
+
unless repository.is_a?(Composer::Repository::BaseRepository)
|
118
|
+
raise TypeError,
|
119
|
+
'repository type must be a \
|
120
|
+
Composer::Repository::BaseRepository or superclass'
|
121
|
+
end
|
122
|
+
if repository.instance_of?(Composer::Repository::CompositeRepository)
|
123
|
+
repository.repositories.each do |repo|
|
124
|
+
add_repository(repo)
|
125
|
+
end
|
126
|
+
else
|
127
|
+
@repositories.push(repository)
|
128
|
+
end
|
129
|
+
end
|
130
|
+
end
|
131
|
+
end
|
132
|
+
end
|
@@ -11,7 +11,7 @@
|
|
11
11
|
|
12
12
|
module Composer
|
13
13
|
module Repository
|
14
|
-
class HashRepository
|
14
|
+
class HashRepository < Composer::Repository::BaseRepository
|
15
15
|
def initialize(packages = [])
|
16
16
|
packages.each do |package|
|
17
17
|
add_package(package)
|
@@ -23,17 +23,21 @@ module Composer
|
|
23
23
|
name = name.downcase
|
24
24
|
|
25
25
|
# normalize version
|
26
|
-
if version
|
26
|
+
if !version.nil?
|
27
27
|
version_parser = Composer::Package::Version::VersionParser.new
|
28
28
|
version = version_parser.normalize(version)
|
29
29
|
end
|
30
30
|
|
31
|
+
match = nil
|
31
32
|
packages.each do |package|
|
32
|
-
if package.name === name
|
33
|
-
|
33
|
+
if package.name === name
|
34
|
+
if version.nil? || package.version === version
|
35
|
+
match = package
|
36
|
+
break
|
37
|
+
end
|
34
38
|
end
|
35
39
|
end
|
36
|
-
|
40
|
+
match
|
37
41
|
end
|
38
42
|
|
39
43
|
def find_packages(name, version = nil)
|
@@ -49,40 +53,37 @@ module Composer
|
|
49
53
|
matches = []
|
50
54
|
packages.each do |package|
|
51
55
|
if package.name === name && (nil === version || version === package.version)
|
52
|
-
matches
|
56
|
+
matches.push(package)
|
53
57
|
end
|
54
58
|
end
|
55
59
|
matches
|
56
60
|
end
|
57
61
|
|
58
|
-
def search(query,
|
62
|
+
def search(query, mode = 0)
|
59
63
|
regex = /(?:#{query.split(/\s+/).join('|')})/i
|
60
64
|
matches = {}
|
61
65
|
packages.each do |package|
|
62
66
|
name = package.name
|
63
67
|
|
64
68
|
# already matched
|
65
|
-
next if matches[
|
69
|
+
next if matches[name]
|
66
70
|
|
67
71
|
# search
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
next unless (
|
75
|
-
full_search == false &&
|
76
|
-
regex.match(name)
|
77
|
-
)
|
72
|
+
unless regex.match(name)
|
73
|
+
unless mode === Composer::Repository::BaseRepository::SEARCH_FULLTEXT &&
|
74
|
+
package.instance_of?(Composer::Package::CompletePackage) &&
|
75
|
+
regex.match("#{package.keywords ? package.keywords.join(' ') : ''} #{package.description ? package.description : ''}")
|
76
|
+
next
|
77
|
+
end
|
78
78
|
end
|
79
79
|
|
80
80
|
matches[name] = {
|
81
81
|
'name' => package.pretty_name,
|
82
82
|
'description' => package.description,
|
83
83
|
}
|
84
|
+
|
84
85
|
end
|
85
|
-
matches
|
86
|
+
matches.values
|
86
87
|
end
|
87
88
|
|
88
89
|
def package?(package)
|
data/lib/composer/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: php-composer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ioannis Kappas
|
@@ -153,6 +153,8 @@ files:
|
|
153
153
|
- lib/composer/package/root_package.rb
|
154
154
|
- lib/composer/package/version/version_parser.rb
|
155
155
|
- lib/composer/package/version/version_selector.rb
|
156
|
+
- lib/composer/repository/base_repository.rb
|
157
|
+
- lib/composer/repository/composite_repository.rb
|
156
158
|
- lib/composer/repository/filesystem_repository.rb
|
157
159
|
- lib/composer/repository/hash_repository.rb
|
158
160
|
- lib/composer/repository/writeable_hash_repository.rb
|