Code Duplication    Length = 10-10 lines in 3 locations

src/Persister.php 3 locations

@@ 245-254 (lines=10) @@
242
        $changeset = $model->getChangeSet();
243
244
        $update = [];
245
        foreach ($changeset['attributes'] as $key => $values) {
246
            if (null === $values['new']) {
247
                $op = '$unset';
248
                $value = 1;
249
            } else {
250
                $op = '$set';
251
                $value = $this->prepareAttribute($metadata->getAttribute($key), $values['new']);
252
            }
253
            $update[$op][$key] = $value;
254
        }
255
256
        // @todo Must prevent inverse relationships from persisting
257
        foreach ($changeset['hasOne'] as $key => $values) {
@@ 257-266 (lines=10) @@
254
        }
255
256
        // @todo Must prevent inverse relationships from persisting
257
        foreach ($changeset['hasOne'] as $key => $values) {
258
            if (null === $values['new']) {
259
                $op = '$unset';
260
                $value = 1;
261
            } else {
262
                $op = '$set';
263
                $value = $this->prepareHasOne($metadata->getRelationship($key), $values['new']);
264
            }
265
            $update[$op][$key] = $value;
266
        }
267
268
        foreach ($changeset['hasMany'] as $key => $values) {
269
            if (null === $values['new']) {
@@ 268-277 (lines=10) @@
265
            $update[$op][$key] = $value;
266
        }
267
268
        foreach ($changeset['hasMany'] as $key => $values) {
269
            if (null === $values['new']) {
270
                $op = '$unset';
271
                $value = 1;
272
            } else {
273
                $op = '$set';
274
                $value = $this->prepareHasMany($metadata->getRelationship($key), $values['new']);
275
            }
276
            $update[$op][$key] = $value;
277
        }
278
279
        if (empty($update)) {
280
            return $model;