Completed
Push — master ( 1d9cc5...175ad1 )
by James
02:07
created
src/Axolotl/Dictionary.php 2 patches
Indentation   +368 added lines, -368 removed lines patch added patch discarded remove patch
@@ -14,372 +14,372 @@
 block discarded – undo
14 14
  */
15 15
 class Dictionary implements DictionaryContract {
16 16
 
17
-	/**
18
-	 * Dictionary storage array.
19
-	 *
20
-	 * @var array
21
-	 */
22
-	protected $storage = array();
23
-
24
-	/**
25
-	 * Key Type service.
26
-	 *
27
-	 * @var Type
28
-	 */
29
-	protected $key_type;
30
-
31
-	/**
32
-	 * Value Type service.
33
-	 *
34
-	 * @var Type
35
-	 */
36
-	protected $val_type;
37
-
38
-	/**
39
-	 * Where Dictionary is in loop.
40
-	 *
41
-	 * @var int
42
-	 */
43
-	protected $position = 0;
44
-
45
-	/**
46
-	 * Dictionary keys.
47
-	 *
48
-	 * @var array
49
-	 */
50
-	protected $keys = array();
51
-
52
-	/**
53
-	 * Dictionary constructor.
54
-	 *
55
-	 * @param string $key_type
56
-	 * @param string $val_type
57
-	 * @param array  $storage
58
-	 *
59
-	 * @throws InvalidArgumentException
60
-	 */
61
-	public function __construct( $key_type, $val_type, array $storage = array() ) {
62
-		$this->key_type = new Type( $key_type, true );
63
-		$this->val_type = new Type( $val_type );
64
-
65
-		foreach ( $storage as $key => $val ) {
66
-			$this->key_type->validate_element( $key );
67
-			$this->val_type->validate_element( $val );
68
-
69
-			$this->storage[ $key ] = $val;
70
-		}
71
-	}
72
-
73
-	/**
74
-	 * {@inheritdoc}
75
-	 *
76
-	 * @return string
77
-	 */
78
-	public function get_key_type() {
79
-		return $this->key_type->get_type();
80
-	}
81
-
82
-	/**
83
-	 * {@inheritdoc}
84
-	 *
85
-	 * @return string
86
-	 */
87
-	public function get_value_type() {
88
-		return $this->val_type->get_type();
89
-	}
90
-
91
-	/**
92
-	 * {@inheritdoc}
93
-	 *
94
-	 * @param mixed $key Key to check.
95
-	 *
96
-	 * @return bool
97
-	 */
98
-	public function exists( $key ) {
99
-		return array_key_exists( $key, $this->storage );
100
-	}
101
-
102
-	/**
103
-	 * {@inheritdoc}
104
-	 *
105
-	 * @param mixed $key Key to get.
106
-	 *
107
-	 * @return mixed|null
108
-	 */
109
-	public function get( $key ) {
110
-		return $this->exists( $key ) ? $this->storage[ $key ] : null;
111
-	}
112
-
113
-	/**
114
-	 * {@inheritdoc}
115
-	 *
116
-	 * @param mixed $key Key to remove.
117
-	 *
118
-	 * @return DictionaryContract
119
-	 */
120
-	public function delete( $key ) {
121
-		$storage = $this->storage;
122
-		if ( $this->exists( $key ) ) {
123
-			unset( $storage[ $key ] );
124
-		}
125
-
126
-		return new static( $this->get_key_type(), $this->get_value_type(), $storage );
127
-	}
128
-
129
-	/**
130
-	 * {@inheritdoc}
131
-	 *
132
-	 * @param mixed $value Value to validate.
133
-	 *
134
-	 * @return bool
135
-	 */
136
-	public function value_exists( $value ) {
137
-		return in_array( $value, $this->storage );
138
-	}
139
-
140
-	/**
141
-	 * {@inheritdoc}
142
-	 */
143
-	public function count() {
144
-		return count( $this->storage );
145
-	}
146
-
147
-	/**
148
-	 * {@inheritdoc}
149
-	 */
150
-	public function clear() {
151
-		return new static( $this->get_key_type(), $this->get_value_type() );
152
-	}
153
-
154
-	/**
155
-	 * {@inheritdoc}
156
-	 *
157
-	 * @return array
158
-	 */
159
-	public function to_array() {
160
-		return $this->storage;
161
-	}
162
-
163
-	/**
164
-	 * {@inheritdoc}
165
-	 *
166
-	 * @param callable $condition Conditional callback.
167
-	 *
168
-	 * @return DictionaryContract
169
-	 */
170
-	public function filter( $condition ) {
171
-		$storage = array();
172
-
173
-		foreach ( $this->storage as $key => $value ) {
174
-			if ( call_user_func( $condition, $value, $key ) ) {
175
-				$storage[ $key ] = $value;
176
-			}
177
-		}
178
-
179
-		return new static( $this->get_key_type(), $this->get_value_type(), $storage );
180
-	}
181
-
182
-	/**
183
-	 * {@inheritdoc}
184
-	 *
185
-	 * @param callable $condition Callback condition.
186
-	 *
187
-	 * @return DictionaryContract
188
-	 */
189
-	public function reject( $condition ) {
190
-		return $this->filter( function ( $v, $k ) use ( $condition ) {
191
-			return ! call_user_func( $condition, $v, $k );
192
-		} );
193
-	}
194
-
195
-	/**
196
-	 * {@inheritdoc}
197
-	 *
198
-	 * @param mixed $key   Key to add.
199
-	 * @param mixed $value Value to add.
200
-	 *
201
-	 * @return DictionaryContract
202
-	 */
203
-	public function add( $key, $value ) {
204
-		$storage         = $this->storage;
205
-		$storage[ $key ] = $value;
206
-
207
-		return new static( $this->get_key_type(), $this->get_value_type(), $storage );
208
-	}
209
-
210
-	/**
211
-	 * {@inheritdoc}
212
-	 *
213
-	 * @param callable $callable Function to call.
214
-	 */
215
-	public function each( $callable ) {
216
-		foreach ( $this->storage as $key => $value ) {
217
-			call_user_func( $callable, $value, $key );
218
-		}
219
-	}
220
-
221
-	/**
222
-	 * {@inheritdoc}
223
-	 *
224
-	 * @param mixed $key     Key to fetch.
225
-	 * @param mixed $default Default to return if key is missing.
226
-	 *
227
-	 * @return mixed
228
-	 */
229
-	public function get_or_else( $key, $default ) {
230
-		return ( $this->exists( $key ) ) ? $this->get( $key ) : $default;
231
-	}
232
-
233
-	/**
234
-	 * {@inheritdoc}
235
-	 */
236
-	public function keys() {
237
-		return array_keys( $this->storage );
238
-	}
239
-
240
-	/**
241
-	 * {@inheritdoc}
242
-	 */
243
-	public function values() {
244
-		return array_values( $this->storage );
245
-	}
246
-
247
-	/**
248
-	 * {@inheritdoc}
249
-	 *
250
-	 * @param callable $callable Function to call.
251
-	 *
252
-	 * @return DictionaryContract
253
-	 */
254
-	public function map( $callable ) {
255
-		$items = array();
256
-		$val_type = null;
257
-
258
-		foreach ( $this->storage as $key => $val ) {
259
-			$v = call_user_func( $callable, $val, $key );
260
-
261
-			if ( ! isset( $val_type ) ) {
262
-				$val_type = gettype( $v );
263
-			}
264
-
265
-			$items[ $key ] = $v;
266
-		}
267
-
268
-		return new static( $this->get_key_type(), $val_type ? : $this->get_value_type(), $items );
269
-	}
270
-
271
-	/**
272
-	 * {@inheritdoc}
273
-	 *
274
-	 * @param array|DictionaryContract $source Source to merge.
275
-	 *
276
-	 * @return DictionaryContract
277
-	 *
278
-	 * @throws InvalidArgumentException
279
-	 */
280
-	public function merge( $source ) {
281
-		if ( $source instanceof self ) {
282
-			$source = $source->to_array();
283
-		}
284
-
285
-		if ( ! is_array( $source ) ) {
286
-			throw new InvalidArgumentException( 'Combine must be a Dictionary or an array' );
287
-		}
288
-
289
-		return new static( $this->get_key_type(), $this->get_value_type(), array_merge( $this->storage, $source ) );
290
-	}
291
-
292
-
293
-	/**
294
-	 * {@inheritdoc}
295
-	 *
296
-	 * @param callable $callable
297
-	 *
298
-	 * @return bool
299
-	 */
300
-	public function contains( $callable ) {
301
-		foreach ( $this->storage as $key => $value ) {
302
-			if ( call_user_func( $callable, $value, $key ) ) {
303
-				return true;
304
-			}
305
-		}
306
-
307
-		return false;
308
-	}
309
-
310
-	/**
311
-	 * {@inheritdoc}
312
-	 *
313
-	 * @param callable $callable
314
-	 * @param mixed    $initial
315
-	 *
316
-	 * @return mixed
317
-	 */
318
-	public function reduce( $callable, $initial ) {
319
-		$carry = $initial;
320
-
321
-		foreach ( $this->storage as $key => $value ) {
322
-			$carry = $callable( $carry, $value, $key );
323
-		}
324
-
325
-		return $carry;
326
-	}
327
-
328
-	/**
329
-	 * Return the current element.
330
-	 *
331
-	 * @return mixed
332
-	 */
333
-	public function current() {
334
-		$key = $this->keys[ $this->position ];
335
-		return $this->storage[ $key ];
336
-	}
337
-
338
-	/**
339
-	 * Move forward to next element.
340
-	 */
341
-	public function next() {
342
-		$this->position ++;
343
-	}
344
-
345
-	/**
346
-	 * Return the key of the current element.
347
-	 *
348
-	 * @return mixed
349
-	 */
350
-	public function key() {
351
-		return $this->keys[ $this->position ];
352
-	}
353
-
354
-	/**
355
-	 * Checks if current position is valid.
356
-	 *
357
-	 * @return bool
358
-	 */
359
-	public function valid() {
360
-		return isset( $this->keys[ $this->position ] );
361
-	}
362
-
363
-	/**
364
-	 * Rewind the Iterator to the first element.
365
-	 */
366
-	public function rewind() {
367
-		$this->position = 0;
368
-		$this->keys = array_keys( $this->storage );
369
-	}
370
-
371
-	/**
372
-	 * {@inheritDoc}
373
-	 *
374
-	 * @return array
375
-	 */
376
-	public function serialize() {
377
-		return $this->map(function( $val ) {
378
-			if ( $val instanceof Serializes ) {
379
-				$val = $val->serialize();
380
-			}
381
-
382
-			return $val;
383
-		})->to_array();
384
-	}
17
+    /**
18
+     * Dictionary storage array.
19
+     *
20
+     * @var array
21
+     */
22
+    protected $storage = array();
23
+
24
+    /**
25
+     * Key Type service.
26
+     *
27
+     * @var Type
28
+     */
29
+    protected $key_type;
30
+
31
+    /**
32
+     * Value Type service.
33
+     *
34
+     * @var Type
35
+     */
36
+    protected $val_type;
37
+
38
+    /**
39
+     * Where Dictionary is in loop.
40
+     *
41
+     * @var int
42
+     */
43
+    protected $position = 0;
44
+
45
+    /**
46
+     * Dictionary keys.
47
+     *
48
+     * @var array
49
+     */
50
+    protected $keys = array();
51
+
52
+    /**
53
+     * Dictionary constructor.
54
+     *
55
+     * @param string $key_type
56
+     * @param string $val_type
57
+     * @param array  $storage
58
+     *
59
+     * @throws InvalidArgumentException
60
+     */
61
+    public function __construct( $key_type, $val_type, array $storage = array() ) {
62
+        $this->key_type = new Type( $key_type, true );
63
+        $this->val_type = new Type( $val_type );
64
+
65
+        foreach ( $storage as $key => $val ) {
66
+            $this->key_type->validate_element( $key );
67
+            $this->val_type->validate_element( $val );
68
+
69
+            $this->storage[ $key ] = $val;
70
+        }
71
+    }
72
+
73
+    /**
74
+     * {@inheritdoc}
75
+     *
76
+     * @return string
77
+     */
78
+    public function get_key_type() {
79
+        return $this->key_type->get_type();
80
+    }
81
+
82
+    /**
83
+     * {@inheritdoc}
84
+     *
85
+     * @return string
86
+     */
87
+    public function get_value_type() {
88
+        return $this->val_type->get_type();
89
+    }
90
+
91
+    /**
92
+     * {@inheritdoc}
93
+     *
94
+     * @param mixed $key Key to check.
95
+     *
96
+     * @return bool
97
+     */
98
+    public function exists( $key ) {
99
+        return array_key_exists( $key, $this->storage );
100
+    }
101
+
102
+    /**
103
+     * {@inheritdoc}
104
+     *
105
+     * @param mixed $key Key to get.
106
+     *
107
+     * @return mixed|null
108
+     */
109
+    public function get( $key ) {
110
+        return $this->exists( $key ) ? $this->storage[ $key ] : null;
111
+    }
112
+
113
+    /**
114
+     * {@inheritdoc}
115
+     *
116
+     * @param mixed $key Key to remove.
117
+     *
118
+     * @return DictionaryContract
119
+     */
120
+    public function delete( $key ) {
121
+        $storage = $this->storage;
122
+        if ( $this->exists( $key ) ) {
123
+            unset( $storage[ $key ] );
124
+        }
125
+
126
+        return new static( $this->get_key_type(), $this->get_value_type(), $storage );
127
+    }
128
+
129
+    /**
130
+     * {@inheritdoc}
131
+     *
132
+     * @param mixed $value Value to validate.
133
+     *
134
+     * @return bool
135
+     */
136
+    public function value_exists( $value ) {
137
+        return in_array( $value, $this->storage );
138
+    }
139
+
140
+    /**
141
+     * {@inheritdoc}
142
+     */
143
+    public function count() {
144
+        return count( $this->storage );
145
+    }
146
+
147
+    /**
148
+     * {@inheritdoc}
149
+     */
150
+    public function clear() {
151
+        return new static( $this->get_key_type(), $this->get_value_type() );
152
+    }
153
+
154
+    /**
155
+     * {@inheritdoc}
156
+     *
157
+     * @return array
158
+     */
159
+    public function to_array() {
160
+        return $this->storage;
161
+    }
162
+
163
+    /**
164
+     * {@inheritdoc}
165
+     *
166
+     * @param callable $condition Conditional callback.
167
+     *
168
+     * @return DictionaryContract
169
+     */
170
+    public function filter( $condition ) {
171
+        $storage = array();
172
+
173
+        foreach ( $this->storage as $key => $value ) {
174
+            if ( call_user_func( $condition, $value, $key ) ) {
175
+                $storage[ $key ] = $value;
176
+            }
177
+        }
178
+
179
+        return new static( $this->get_key_type(), $this->get_value_type(), $storage );
180
+    }
181
+
182
+    /**
183
+     * {@inheritdoc}
184
+     *
185
+     * @param callable $condition Callback condition.
186
+     *
187
+     * @return DictionaryContract
188
+     */
189
+    public function reject( $condition ) {
190
+        return $this->filter( function ( $v, $k ) use ( $condition ) {
191
+            return ! call_user_func( $condition, $v, $k );
192
+        } );
193
+    }
194
+
195
+    /**
196
+     * {@inheritdoc}
197
+     *
198
+     * @param mixed $key   Key to add.
199
+     * @param mixed $value Value to add.
200
+     *
201
+     * @return DictionaryContract
202
+     */
203
+    public function add( $key, $value ) {
204
+        $storage         = $this->storage;
205
+        $storage[ $key ] = $value;
206
+
207
+        return new static( $this->get_key_type(), $this->get_value_type(), $storage );
208
+    }
209
+
210
+    /**
211
+     * {@inheritdoc}
212
+     *
213
+     * @param callable $callable Function to call.
214
+     */
215
+    public function each( $callable ) {
216
+        foreach ( $this->storage as $key => $value ) {
217
+            call_user_func( $callable, $value, $key );
218
+        }
219
+    }
220
+
221
+    /**
222
+     * {@inheritdoc}
223
+     *
224
+     * @param mixed $key     Key to fetch.
225
+     * @param mixed $default Default to return if key is missing.
226
+     *
227
+     * @return mixed
228
+     */
229
+    public function get_or_else( $key, $default ) {
230
+        return ( $this->exists( $key ) ) ? $this->get( $key ) : $default;
231
+    }
232
+
233
+    /**
234
+     * {@inheritdoc}
235
+     */
236
+    public function keys() {
237
+        return array_keys( $this->storage );
238
+    }
239
+
240
+    /**
241
+     * {@inheritdoc}
242
+     */
243
+    public function values() {
244
+        return array_values( $this->storage );
245
+    }
246
+
247
+    /**
248
+     * {@inheritdoc}
249
+     *
250
+     * @param callable $callable Function to call.
251
+     *
252
+     * @return DictionaryContract
253
+     */
254
+    public function map( $callable ) {
255
+        $items = array();
256
+        $val_type = null;
257
+
258
+        foreach ( $this->storage as $key => $val ) {
259
+            $v = call_user_func( $callable, $val, $key );
260
+
261
+            if ( ! isset( $val_type ) ) {
262
+                $val_type = gettype( $v );
263
+            }
264
+
265
+            $items[ $key ] = $v;
266
+        }
267
+
268
+        return new static( $this->get_key_type(), $val_type ? : $this->get_value_type(), $items );
269
+    }
270
+
271
+    /**
272
+     * {@inheritdoc}
273
+     *
274
+     * @param array|DictionaryContract $source Source to merge.
275
+     *
276
+     * @return DictionaryContract
277
+     *
278
+     * @throws InvalidArgumentException
279
+     */
280
+    public function merge( $source ) {
281
+        if ( $source instanceof self ) {
282
+            $source = $source->to_array();
283
+        }
284
+
285
+        if ( ! is_array( $source ) ) {
286
+            throw new InvalidArgumentException( 'Combine must be a Dictionary or an array' );
287
+        }
288
+
289
+        return new static( $this->get_key_type(), $this->get_value_type(), array_merge( $this->storage, $source ) );
290
+    }
291
+
292
+
293
+    /**
294
+     * {@inheritdoc}
295
+     *
296
+     * @param callable $callable
297
+     *
298
+     * @return bool
299
+     */
300
+    public function contains( $callable ) {
301
+        foreach ( $this->storage as $key => $value ) {
302
+            if ( call_user_func( $callable, $value, $key ) ) {
303
+                return true;
304
+            }
305
+        }
306
+
307
+        return false;
308
+    }
309
+
310
+    /**
311
+     * {@inheritdoc}
312
+     *
313
+     * @param callable $callable
314
+     * @param mixed    $initial
315
+     *
316
+     * @return mixed
317
+     */
318
+    public function reduce( $callable, $initial ) {
319
+        $carry = $initial;
320
+
321
+        foreach ( $this->storage as $key => $value ) {
322
+            $carry = $callable( $carry, $value, $key );
323
+        }
324
+
325
+        return $carry;
326
+    }
327
+
328
+    /**
329
+     * Return the current element.
330
+     *
331
+     * @return mixed
332
+     */
333
+    public function current() {
334
+        $key = $this->keys[ $this->position ];
335
+        return $this->storage[ $key ];
336
+    }
337
+
338
+    /**
339
+     * Move forward to next element.
340
+     */
341
+    public function next() {
342
+        $this->position ++;
343
+    }
344
+
345
+    /**
346
+     * Return the key of the current element.
347
+     *
348
+     * @return mixed
349
+     */
350
+    public function key() {
351
+        return $this->keys[ $this->position ];
352
+    }
353
+
354
+    /**
355
+     * Checks if current position is valid.
356
+     *
357
+     * @return bool
358
+     */
359
+    public function valid() {
360
+        return isset( $this->keys[ $this->position ] );
361
+    }
362
+
363
+    /**
364
+     * Rewind the Iterator to the first element.
365
+     */
366
+    public function rewind() {
367
+        $this->position = 0;
368
+        $this->keys = array_keys( $this->storage );
369
+    }
370
+
371
+    /**
372
+     * {@inheritDoc}
373
+     *
374
+     * @return array
375
+     */
376
+    public function serialize() {
377
+        return $this->map(function( $val ) {
378
+            if ( $val instanceof Serializes ) {
379
+                $val = $val->serialize();
380
+            }
381
+
382
+            return $val;
383
+        })->to_array();
384
+    }
385 385
 }
Please login to merge, or discard this patch.
Spacing   +63 added lines, -63 removed lines patch added patch discarded remove patch
@@ -58,15 +58,15 @@  discard block
 block discarded – undo
58 58
 	 *
59 59
 	 * @throws InvalidArgumentException
60 60
 	 */
61
-	public function __construct( $key_type, $val_type, array $storage = array() ) {
62
-		$this->key_type = new Type( $key_type, true );
63
-		$this->val_type = new Type( $val_type );
61
+	public function __construct($key_type, $val_type, array $storage = array()) {
62
+		$this->key_type = new Type($key_type, true);
63
+		$this->val_type = new Type($val_type);
64 64
 
65
-		foreach ( $storage as $key => $val ) {
66
-			$this->key_type->validate_element( $key );
67
-			$this->val_type->validate_element( $val );
65
+		foreach ($storage as $key => $val) {
66
+			$this->key_type->validate_element($key);
67
+			$this->val_type->validate_element($val);
68 68
 
69
-			$this->storage[ $key ] = $val;
69
+			$this->storage[$key] = $val;
70 70
 		}
71 71
 	}
72 72
 
@@ -95,8 +95,8 @@  discard block
 block discarded – undo
95 95
 	 *
96 96
 	 * @return bool
97 97
 	 */
98
-	public function exists( $key ) {
99
-		return array_key_exists( $key, $this->storage );
98
+	public function exists($key) {
99
+		return array_key_exists($key, $this->storage);
100 100
 	}
101 101
 
102 102
 	/**
@@ -106,8 +106,8 @@  discard block
 block discarded – undo
106 106
 	 *
107 107
 	 * @return mixed|null
108 108
 	 */
109
-	public function get( $key ) {
110
-		return $this->exists( $key ) ? $this->storage[ $key ] : null;
109
+	public function get($key) {
110
+		return $this->exists($key) ? $this->storage[$key] : null;
111 111
 	}
112 112
 
113 113
 	/**
@@ -117,13 +117,13 @@  discard block
 block discarded – undo
117 117
 	 *
118 118
 	 * @return DictionaryContract
119 119
 	 */
120
-	public function delete( $key ) {
120
+	public function delete($key) {
121 121
 		$storage = $this->storage;
122
-		if ( $this->exists( $key ) ) {
123
-			unset( $storage[ $key ] );
122
+		if ($this->exists($key)) {
123
+			unset($storage[$key]);
124 124
 		}
125 125
 
126
-		return new static( $this->get_key_type(), $this->get_value_type(), $storage );
126
+		return new static($this->get_key_type(), $this->get_value_type(), $storage);
127 127
 	}
128 128
 
129 129
 	/**
@@ -133,22 +133,22 @@  discard block
 block discarded – undo
133 133
 	 *
134 134
 	 * @return bool
135 135
 	 */
136
-	public function value_exists( $value ) {
137
-		return in_array( $value, $this->storage );
136
+	public function value_exists($value) {
137
+		return in_array($value, $this->storage);
138 138
 	}
139 139
 
140 140
 	/**
141 141
 	 * {@inheritdoc}
142 142
 	 */
143 143
 	public function count() {
144
-		return count( $this->storage );
144
+		return count($this->storage);
145 145
 	}
146 146
 
147 147
 	/**
148 148
 	 * {@inheritdoc}
149 149
 	 */
150 150
 	public function clear() {
151
-		return new static( $this->get_key_type(), $this->get_value_type() );
151
+		return new static($this->get_key_type(), $this->get_value_type());
152 152
 	}
153 153
 
154 154
 	/**
@@ -167,16 +167,16 @@  discard block
 block discarded – undo
167 167
 	 *
168 168
 	 * @return DictionaryContract
169 169
 	 */
170
-	public function filter( $condition ) {
170
+	public function filter($condition) {
171 171
 		$storage = array();
172 172
 
173
-		foreach ( $this->storage as $key => $value ) {
174
-			if ( call_user_func( $condition, $value, $key ) ) {
175
-				$storage[ $key ] = $value;
173
+		foreach ($this->storage as $key => $value) {
174
+			if (call_user_func($condition, $value, $key)) {
175
+				$storage[$key] = $value;
176 176
 			}
177 177
 		}
178 178
 
179
-		return new static( $this->get_key_type(), $this->get_value_type(), $storage );
179
+		return new static($this->get_key_type(), $this->get_value_type(), $storage);
180 180
 	}
181 181
 
182 182
 	/**
@@ -186,9 +186,9 @@  discard block
 block discarded – undo
186 186
 	 *
187 187
 	 * @return DictionaryContract
188 188
 	 */
189
-	public function reject( $condition ) {
190
-		return $this->filter( function ( $v, $k ) use ( $condition ) {
191
-			return ! call_user_func( $condition, $v, $k );
189
+	public function reject($condition) {
190
+		return $this->filter(function($v, $k) use ($condition) {
191
+			return !call_user_func($condition, $v, $k);
192 192
 		} );
193 193
 	}
194 194
 
@@ -200,11 +200,11 @@  discard block
 block discarded – undo
200 200
 	 *
201 201
 	 * @return DictionaryContract
202 202
 	 */
203
-	public function add( $key, $value ) {
203
+	public function add($key, $value) {
204 204
 		$storage         = $this->storage;
205
-		$storage[ $key ] = $value;
205
+		$storage[$key] = $value;
206 206
 
207
-		return new static( $this->get_key_type(), $this->get_value_type(), $storage );
207
+		return new static($this->get_key_type(), $this->get_value_type(), $storage);
208 208
 	}
209 209
 
210 210
 	/**
@@ -212,9 +212,9 @@  discard block
 block discarded – undo
212 212
 	 *
213 213
 	 * @param callable $callable Function to call.
214 214
 	 */
215
-	public function each( $callable ) {
216
-		foreach ( $this->storage as $key => $value ) {
217
-			call_user_func( $callable, $value, $key );
215
+	public function each($callable) {
216
+		foreach ($this->storage as $key => $value) {
217
+			call_user_func($callable, $value, $key);
218 218
 		}
219 219
 	}
220 220
 
@@ -226,22 +226,22 @@  discard block
 block discarded – undo
226 226
 	 *
227 227
 	 * @return mixed
228 228
 	 */
229
-	public function get_or_else( $key, $default ) {
230
-		return ( $this->exists( $key ) ) ? $this->get( $key ) : $default;
229
+	public function get_or_else($key, $default) {
230
+		return ($this->exists($key)) ? $this->get($key) : $default;
231 231
 	}
232 232
 
233 233
 	/**
234 234
 	 * {@inheritdoc}
235 235
 	 */
236 236
 	public function keys() {
237
-		return array_keys( $this->storage );
237
+		return array_keys($this->storage);
238 238
 	}
239 239
 
240 240
 	/**
241 241
 	 * {@inheritdoc}
242 242
 	 */
243 243
 	public function values() {
244
-		return array_values( $this->storage );
244
+		return array_values($this->storage);
245 245
 	}
246 246
 
247 247
 	/**
@@ -251,21 +251,21 @@  discard block
 block discarded – undo
251 251
 	 *
252 252
 	 * @return DictionaryContract
253 253
 	 */
254
-	public function map( $callable ) {
254
+	public function map($callable) {
255 255
 		$items = array();
256 256
 		$val_type = null;
257 257
 
258
-		foreach ( $this->storage as $key => $val ) {
259
-			$v = call_user_func( $callable, $val, $key );
258
+		foreach ($this->storage as $key => $val) {
259
+			$v = call_user_func($callable, $val, $key);
260 260
 
261
-			if ( ! isset( $val_type ) ) {
262
-				$val_type = gettype( $v );
261
+			if (!isset($val_type)) {
262
+				$val_type = gettype($v);
263 263
 			}
264 264
 
265
-			$items[ $key ] = $v;
265
+			$items[$key] = $v;
266 266
 		}
267 267
 
268
-		return new static( $this->get_key_type(), $val_type ? : $this->get_value_type(), $items );
268
+		return new static($this->get_key_type(), $val_type ?: $this->get_value_type(), $items);
269 269
 	}
270 270
 
271 271
 	/**
@@ -277,16 +277,16 @@  discard block
 block discarded – undo
277 277
 	 *
278 278
 	 * @throws InvalidArgumentException
279 279
 	 */
280
-	public function merge( $source ) {
281
-		if ( $source instanceof self ) {
280
+	public function merge($source) {
281
+		if ($source instanceof self) {
282 282
 			$source = $source->to_array();
283 283
 		}
284 284
 
285
-		if ( ! is_array( $source ) ) {
286
-			throw new InvalidArgumentException( 'Combine must be a Dictionary or an array' );
285
+		if (!is_array($source)) {
286
+			throw new InvalidArgumentException('Combine must be a Dictionary or an array');
287 287
 		}
288 288
 
289
-		return new static( $this->get_key_type(), $this->get_value_type(), array_merge( $this->storage, $source ) );
289
+		return new static($this->get_key_type(), $this->get_value_type(), array_merge($this->storage, $source));
290 290
 	}
291 291
 
292 292
 
@@ -297,9 +297,9 @@  discard block
 block discarded – undo
297 297
 	 *
298 298
 	 * @return bool
299 299
 	 */
300
-	public function contains( $callable ) {
301
-		foreach ( $this->storage as $key => $value ) {
302
-			if ( call_user_func( $callable, $value, $key ) ) {
300
+	public function contains($callable) {
301
+		foreach ($this->storage as $key => $value) {
302
+			if (call_user_func($callable, $value, $key)) {
303 303
 				return true;
304 304
 			}
305 305
 		}
@@ -315,11 +315,11 @@  discard block
 block discarded – undo
315 315
 	 *
316 316
 	 * @return mixed
317 317
 	 */
318
-	public function reduce( $callable, $initial ) {
318
+	public function reduce($callable, $initial) {
319 319
 		$carry = $initial;
320 320
 
321
-		foreach ( $this->storage as $key => $value ) {
322
-			$carry = $callable( $carry, $value, $key );
321
+		foreach ($this->storage as $key => $value) {
322
+			$carry = $callable($carry, $value, $key);
323 323
 		}
324 324
 
325 325
 		return $carry;
@@ -331,15 +331,15 @@  discard block
 block discarded – undo
331 331
 	 * @return mixed
332 332
 	 */
333 333
 	public function current() {
334
-		$key = $this->keys[ $this->position ];
335
-		return $this->storage[ $key ];
334
+		$key = $this->keys[$this->position];
335
+		return $this->storage[$key];
336 336
 	}
337 337
 
338 338
 	/**
339 339
 	 * Move forward to next element.
340 340
 	 */
341 341
 	public function next() {
342
-		$this->position ++;
342
+		$this->position++;
343 343
 	}
344 344
 
345 345
 	/**
@@ -348,7 +348,7 @@  discard block
 block discarded – undo
348 348
 	 * @return mixed
349 349
 	 */
350 350
 	public function key() {
351
-		return $this->keys[ $this->position ];
351
+		return $this->keys[$this->position];
352 352
 	}
353 353
 
354 354
 	/**
@@ -357,7 +357,7 @@  discard block
 block discarded – undo
357 357
 	 * @return bool
358 358
 	 */
359 359
 	public function valid() {
360
-		return isset( $this->keys[ $this->position ] );
360
+		return isset($this->keys[$this->position]);
361 361
 	}
362 362
 
363 363
 	/**
@@ -365,7 +365,7 @@  discard block
 block discarded – undo
365 365
 	 */
366 366
 	public function rewind() {
367 367
 		$this->position = 0;
368
-		$this->keys = array_keys( $this->storage );
368
+		$this->keys = array_keys($this->storage);
369 369
 	}
370 370
 
371 371
 	/**
@@ -374,8 +374,8 @@  discard block
 block discarded – undo
374 374
 	 * @return array
375 375
 	 */
376 376
 	public function serialize() {
377
-		return $this->map(function( $val ) {
378
-			if ( $val instanceof Serializes ) {
377
+		return $this->map(function($val) {
378
+			if ($val instanceof Serializes) {
379 379
 				$val = $val->serialize();
380 380
 			}
381 381
 
Please login to merge, or discard this patch.