Passed
Push — master ( 5d7aff...f5cb8f )
by Brian
12:02 queued 07:44
created

InstalledVersions::getRootPackage()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 1
c 1
b 0
f 0
dl 0
loc 3
rs 10
cc 1
nc 1
nop 0
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' => '5d7aff0386ccd7f07945582811c9666af7b9e11a',
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' => '5d7aff0386ccd7f07945582811c9666af7b9e11a',
44
    ),
45
    'ayecode/wp-ayecode-ui' => 
46
    array (
47
      'pretty_version' => '0.1.61',
48
      'version' => '0.1.61.0',
49
      'aliases' => 
50
      array (
51
      ),
52
      'reference' => 'e97d1e520d6722df2cb323c04a6e818b1e901ab5',
53
    ),
54
    'ayecode/wp-deactivation-survey' => 
55
    array (
56
      'pretty_version' => '1.0.4',
57
      'version' => '1.0.4.0',
58
      'aliases' => 
59
      array (
60
      ),
61
      'reference' => 'd2777fed30acfc4da53b45bf3b4fec2fb27d8398',
62
    ),
63
    'ayecode/wp-font-awesome-settings' => 
64
    array (
65
      'pretty_version' => '1.0.13',
66
      'version' => '1.0.13.0',
67
      'aliases' => 
68
      array (
69
      ),
70
      'reference' => 'a7a11ee4290674ec214d1fe694139af275350402',
71
    ),
72
    'ayecode/wp-super-duper' => 
73
    array (
74
      'pretty_version' => '1.0.27',
75
      'version' => '1.0.27.0',
76
      'aliases' => 
77
      array (
78
      ),
79
      'reference' => 'ce187bc9afc5cd7f5d790d84eb6fd9b98e56992d',
80
    ),
81
    'composer/installers' => 
82
    array (
83
      'pretty_version' => 'v1.12.0',
84
      'version' => '1.12.0.0',
85
      'aliases' => 
86
      array (
87
      ),
88
      'reference' => 'd20a64ed3c94748397ff5973488761b22f6d3f19',
89
    ),
90
    'maxmind-db/reader' => 
91
    array (
92
      'pretty_version' => 'v1.6.0',
93
      'version' => '1.6.0.0',
94
      'aliases' => 
95
      array (
96
      ),
97
      'reference' => 'febd4920bf17c1da84cef58e56a8227dfb37fbe4',
98
    ),
99
    'roundcube/plugin-installer' => 
100
    array (
101
      'replaced' => 
102
      array (
103
        0 => '*',
104
      ),
105
    ),
106
    'shama/baton' => 
107
    array (
108
      'replaced' => 
109
      array (
110
        0 => '*',
111
      ),
112
    ),
113
  ),
114
);
115
116
117
118
119
120
121
122
public static function getInstalledPackages()
123
{
124
return array_keys(self::$installed['versions']);
125
}
126
127
128
129
130
131
132
133
134
135
public static function isInstalled($packageName)
136
{
137
return isset(self::$installed['versions'][$packageName]);
138
}
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
public static function satisfies(VersionParser $parser, $packageName, $constraint)
154
{
155
$constraint = $parser->parseConstraints($constraint);
156
$provided = $parser->parseConstraints(self::getVersionRanges($packageName));
157
158
return $provided->matches($constraint);
159
}
160
161
162
163
164
165
166
167
168
169
170
public static function getVersionRanges($packageName)
171
{
172
if (!isset(self::$installed['versions'][$packageName])) {
173
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
174
}
175
176
$ranges = array();
177
if (isset(self::$installed['versions'][$packageName]['pretty_version'])) {
178
$ranges[] = self::$installed['versions'][$packageName]['pretty_version'];
179
}
180
if (array_key_exists('aliases', self::$installed['versions'][$packageName])) {
181
$ranges = array_merge($ranges, self::$installed['versions'][$packageName]['aliases']);
182
}
183
if (array_key_exists('replaced', self::$installed['versions'][$packageName])) {
184
$ranges = array_merge($ranges, self::$installed['versions'][$packageName]['replaced']);
185
}
186
if (array_key_exists('provided', self::$installed['versions'][$packageName])) {
187
$ranges = array_merge($ranges, self::$installed['versions'][$packageName]['provided']);
188
}
189
190
return implode(' || ', $ranges);
191
}
192
193
194
195
196
197
public static function getVersion($packageName)
198
{
199
if (!isset(self::$installed['versions'][$packageName])) {
200
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
201
}
202
203
if (!isset(self::$installed['versions'][$packageName]['version'])) {
204
return null;
205
}
206
207
return self::$installed['versions'][$packageName]['version'];
208
}
209
210
211
212
213
214
public static function getPrettyVersion($packageName)
215
{
216
if (!isset(self::$installed['versions'][$packageName])) {
217
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
218
}
219
220
if (!isset(self::$installed['versions'][$packageName]['pretty_version'])) {
221
return null;
222
}
223
224
return self::$installed['versions'][$packageName]['pretty_version'];
225
}
226
227
228
229
230
231
public static function getReference($packageName)
232
{
233
if (!isset(self::$installed['versions'][$packageName])) {
234
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
235
}
236
237
if (!isset(self::$installed['versions'][$packageName]['reference'])) {
238
return null;
239
}
240
241
return self::$installed['versions'][$packageName]['reference'];
242
}
243
244
245
246
247
248
public static function getRootPackage()
249
{
250
return self::$installed['root'];
251
}
252
253
254
255
256
257
258
259
public static function getRawData()
260
{
261
return self::$installed;
262
}
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
public static function reload($data)
283
{
284
self::$installed = $data;
285
}
286
}
287