Passed
Push — master ( 5bb76a...9b8253 )
by Brian
09:28 queued 05:23
created

InstalledVersions::getReference()   A

Complexity

Conditions 3
Paths 3

Size

Total Lines 11
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 5
c 1
b 0
f 0
dl 0
loc 11
rs 10
cc 3
nc 3
nop 1
1
<?php
2
3
namespace Composer;
4
5
use Composer\Semver\VersionParser;
6
7
8
9
10
11
12
class InstalledVersions
13
{
14
private static $installed = array (
15
  'root' => 
16
  array (
17
    'pretty_version' => 'dev-master',
18
    'version' => 'dev-master',
19
    'aliases' => 
20
    array (
21
    ),
22
    'reference' => '5bb76a7b209229589b146996e14f6d6ee9eb39d8',
23
    'name' => 'ayecode/invoicing',
24
  ),
25
  'versions' => 
26
  array (
27
    'ayecode/ayecode-connect-helper' => 
28
    array (
29
      'pretty_version' => '1.0.3',
30
      'version' => '1.0.3.0',
31
      'aliases' => 
32
      array (
33
      ),
34
      'reference' => '1af7cdefdbd20d4443a3ab4834e4c1cd8fe57fb4',
35
    ),
36
    'ayecode/invoicing' => 
37
    array (
38
      'pretty_version' => 'dev-master',
39
      'version' => 'dev-master',
40
      'aliases' => 
41
      array (
42
      ),
43
      'reference' => '5bb76a7b209229589b146996e14f6d6ee9eb39d8',
44
    ),
45
    'ayecode/wp-ayecode-ui' => 
46
    array (
47
      'pretty_version' => '0.1.35',
48
      'version' => '0.1.35.0',
49
      'aliases' => 
50
      array (
51
      ),
52
      'reference' => 'e5d7955f648c6b350a8fe72e0110b8d78645c60f',
53
    ),
54
    'ayecode/wp-font-awesome-settings' => 
55
    array (
56
      'pretty_version' => '1.0.12',
57
      'version' => '1.0.12.0',
58
      'aliases' => 
59
      array (
60
      ),
61
      'reference' => '754cca6fda775f3e0b56b90a810dfcaea62ea288',
62
    ),
63
    'ayecode/wp-super-duper' => 
64
    array (
65
      'pretty_version' => '1.0.22',
66
      'version' => '1.0.22.0',
67
      'aliases' => 
68
      array (
69
      ),
70
      'reference' => '42b638502c9e4be0877f27903df7c7ed2080bdac',
71
    ),
72
    'composer/installers' => 
73
    array (
74
      'pretty_version' => 'v1.9.0',
75
      'version' => '1.9.0.0',
76
      'aliases' => 
77
      array (
78
      ),
79
      'reference' => 'b93bcf0fa1fccb0b7d176b0967d969691cd74cca',
80
    ),
81
    'roundcube/plugin-installer' => 
82
    array (
83
      'replaced' => 
84
      array (
85
        0 => '*',
86
      ),
87
    ),
88
    'shama/baton' => 
89
    array (
90
      'replaced' => 
91
      array (
92
        0 => '*',
93
      ),
94
    ),
95
  ),
96
);
97
98
99
100
101
102
103
104
public static function getInstalledPackages()
105
{
106
return array_keys(self::$installed['versions']);
107
}
108
109
110
111
112
113
114
115
116
117
public static function isInstalled($packageName)
118
{
119
return isset(self::$installed['versions'][$packageName]);
120
}
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
public static function satisfies(VersionParser $parser, $packageName, $constraint)
136
{
137
$constraint = $parser->parseConstraints($constraint);
138
$provided = $parser->parseConstraints(self::getVersionRanges($packageName));
139
140
return $provided->matches($constraint);
141
}
142
143
144
145
146
147
148
149
150
151
152
public static function getVersionRanges($packageName)
153
{
154
if (!isset(self::$installed['versions'][$packageName])) {
155
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
156
}
157
158
$ranges = array();
159
if (isset(self::$installed['versions'][$packageName]['pretty_version'])) {
160
$ranges[] = self::$installed['versions'][$packageName]['pretty_version'];
161
}
162
if (array_key_exists('aliases', self::$installed['versions'][$packageName])) {
163
$ranges = array_merge($ranges, self::$installed['versions'][$packageName]['aliases']);
164
}
165
if (array_key_exists('replaced', self::$installed['versions'][$packageName])) {
166
$ranges = array_merge($ranges, self::$installed['versions'][$packageName]['replaced']);
167
}
168
if (array_key_exists('provided', self::$installed['versions'][$packageName])) {
169
$ranges = array_merge($ranges, self::$installed['versions'][$packageName]['provided']);
170
}
171
172
return implode(' || ', $ranges);
173
}
174
175
176
177
178
179
public static function getVersion($packageName)
180
{
181
if (!isset(self::$installed['versions'][$packageName])) {
182
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
183
}
184
185
if (!isset(self::$installed['versions'][$packageName]['version'])) {
186
return null;
187
}
188
189
return self::$installed['versions'][$packageName]['version'];
190
}
191
192
193
194
195
196
public static function getPrettyVersion($packageName)
197
{
198
if (!isset(self::$installed['versions'][$packageName])) {
199
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
200
}
201
202
if (!isset(self::$installed['versions'][$packageName]['pretty_version'])) {
203
return null;
204
}
205
206
return self::$installed['versions'][$packageName]['pretty_version'];
207
}
208
209
210
211
212
213
public static function getReference($packageName)
214
{
215
if (!isset(self::$installed['versions'][$packageName])) {
216
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
217
}
218
219
if (!isset(self::$installed['versions'][$packageName]['reference'])) {
220
return null;
221
}
222
223
return self::$installed['versions'][$packageName]['reference'];
224
}
225
226
227
228
229
230
public static function getRootPackage()
231
{
232
return self::$installed['root'];
233
}
234
235
236
237
238
239
240
241
public static function getRawData()
242
{
243
return self::$installed;
244
}
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
public static function reload($data)
265
{
266
self::$installed = $data;
267
}
268
}
269