Completed
Pull Request — master (#20)
by
unknown
02:29
created

CssInlinerPlugin::beforeSendPerformed()   A

Complexity

Conditions 4
Paths 6

Size

Total Lines 14
Code Lines 7

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 8
CRAP Score 4.3244

Importance

Changes 4
Bugs 0 Features 1
Metric Value
c 4
b 0
f 1
dl 0
loc 14
ccs 8
cts 11
cp 0.7272
rs 9.2
cc 4
eloc 7
nc 6
nop 1
crap 4.3244
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
/**
10
 * @package    openbuildings\swiftmailer-css-inliner
11
 * @author     Ivan Kerin <[email protected]>
12
 * @copyright  (c) 2013 OpenBuildings Ltd.
13
 * @license    http://spdx.org/licenses/BSD-3-Clause
14
 */
15
class CssInlinerPlugin implements Swift_Events_SendListener
16
{
17
	/**
18
	 * @var CssToInlineStyles
19
	 */
20
	private $converter;
21
22
	/**
23
	 * @param CssToInlineStyles $converter
24
	 */
25
	public function __construct(CssToInlineStyles $converter = null)
26
	{
27
		if ($converter) {
28
			$this->converter = $converter;
29
		} else {
30
			$this->converter = new CssToInlineStyles();
31
		}
32
	}
33
34
	/**
35
	 * @param Swift_Events_SendEvent $event
36
	 */
37 1
	public function beforeSendPerformed(Swift_Events_SendEvent $event)
38
	{
39 1
		$message = $event->getMessage();
40
41 1
		if ($message->getContentType() === 'text/html') {
42 1
			$message->setBody($this->converter->convert($message->getBody()));
43 1
		}
44
45 1
		foreach ($message->getChildren() as $part) {
46
			if (strpos($part->getContentType(), 'text/html') === 0) {
47
				$part->setBody($this->converter->convert($part->getBody()));
48
			}
49 1
		}
50 1
	}
51
52
	/**
53
	 * Do nothing
54
	 *
55
	 * @param Swift_Events_SendEvent $event
56
	 */
57 1
	public function sendPerformed(\Swift_Events_SendEvent $event)
58
	{
59
		// Do Nothing
60 1
	}
61
}
62