CssInlinerPlugin::beforeSendPerformed()   A
last analyzed

Complexity

Conditions 4
Paths 6

Size

Total Lines 14

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 8
CRAP Score 4

Importance

Changes 0
Metric Value
dl 0
loc 14
ccs 8
cts 8
cp 1
rs 9.7998
c 0
b 0
f 0
cc 4
nc 6
nop 1
crap 4
1
<?php
2
3
namespace Openbuildings\Swiftmailer;
4
5
use TijsVerkoyen\CssToInlineStyles\CssToInlineStyles;
6
use Swift_Events_SendListener;
7
use Swift_Events_SendEvent;
8
9
class CssInlinerPlugin implements Swift_Events_SendListener
10
{
11
    /**
12
     * @var CssToInlineStyles
13
     */
14
    private $converter;
15
16
    /**
17
     * @param CssToInlineStyles $converter
18
     */
19 1
    public function __construct(CssToInlineStyles $converter = null)
20
    {
21 1
        if ($converter) {
22 1
            $this->converter = $converter;
23
        } else {
24 1
            $this->converter = new CssToInlineStyles();
25
        }
26 1
    }
27
28
    /**
29
     * @param Swift_Events_SendEvent $event
30
     */
31 3
    public function beforeSendPerformed(Swift_Events_SendEvent $event)
32
    {
33 3
        $message = $event->getMessage();
34
35 3
        if ($message->getContentType() === 'text/html') {
36 2
            $message->setBody($this->converter->convert($message->getBody()));
37
        }
38
39 3
        foreach ($message->getChildren() as $part) {
40 1
            if (strpos($part->getContentType(), 'text/html') === 0) {
41 1
                $part->setBody($this->converter->convert($part->getBody()));
42
            }
43
        }
44 3
    }
45
46
    /**
47
     * @param Swift_Events_SendEvent $event
48
     */
49 1
    public function sendPerformed(Swift_Events_SendEvent $event)
50
    {
51
        // Do nothing after sending the message
52 1
    }
53
}
54