Completed
Push — master ( ad74ba...da4af3 )
by Nicolas
03:26
created

InMemory   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 30
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 4

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 2
c 0
b 0
f 0
lcom 0
cbo 4
dl 0
loc 30
ccs 19
cts 19
cp 1
rs 10

1 Method

Rating   Name   Duplication   Size   Complexity  
B build() 0 24 2
1
<?php
2
3
namespace Puzzle\AMQP\Messages;
4
5
use Puzzle\AMQP\Workers\MessageAdapter;
6
use Puzzle\AMQP\Messages\Bodies\NullBody;
7
8
class InMemory
9
{
10
    /**
11
     * @return \Puzzle\AMQP\ReadableMessage
12
     */
13 3
    public static function build($routingKey, Body $body = null, array $additionalHeaders = [], array $additionalAttributes = [])
14
    {
15 3
        if(! $body instanceof Body)
16 3
        {
17 1
            $body = new NullBody();
18 1
        }
19
20 3
        $attributes = array_merge([
21 3
            'content_type' => $body->getContentType(),
22 3
            'routing_key' => $routingKey,
23 3
            'content_encoding' => 'utf8',
24 3
            'message_id' => uniqid(true),
25 3
        ], $additionalAttributes);
26
27 3
        $attributes['headers'] = array_merge([
28 3
            'routing_key' => $routingKey,
29 3
            'app_id' => 'memory',
30 3
            'message_datetime' => date('Y-m-d H:i:s'),
31 3
        ], $additionalHeaders);
32
33 3
        return new MessageAdapter(
34 3
            new \Swarrot\Broker\Message($body->format(), $attributes)
35 3
        );
36
    }
37
}
38