Completed
Push — master ( 092da6...b7a681 )
by Jakub
02:00
created

anonymous//src/RssChannelItem.php$1   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 10
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
c 0
b 0
f 0
dl 0
loc 10
ccs 4
cts 4
cp 1
rs 10
wmc 2
1
<?php
2
declare(strict_types=1);
3
4
namespace Nexendrie\Rss;
5
6
use Symfony\Component\OptionsResolver\OptionsResolver;
7
8
/**
9
 * Rss Channel Item
10
 *
11
 * @author Jakub Konečný
12
 */
13 1
class RssChannelItem {
14 1
  use \Nette\SmartObject;
15
16
  /** @var array */
17
  protected $data;
18
  
19
  public function __construct(array $data) {
20 1
    $this->data = $data;
21 1
  }
22
23
  protected function configureOptions(OptionsResolver $resolver, Generator $generator): void {
24 1
    foreach($generator->getExtensions() as $extension) {
25 1
      $extension->configureItemOptions($resolver, $generator);
26
    }
27 1
  }
28
29
  public function toXml(\SimpleXMLElement &$element, Generator $generator): void {
30 1
    $resolver = new OptionsResolver();
31 1
    $this->configureOptions($resolver, $generator);
32 1
    $data = $resolver->resolve($this->data);
33 1
    foreach($data as $key => $value) {
34 1
      if($value === "") {
35 1
        continue;
36
      }
37 1
      if(!$value instanceof IXmlConvertible) {
38 1
        $value = new GenericElement($key, $value);
39
      }
40 1
      $value->appendToXml($element);
41
    }
42 1
  }
43
}
44
?>