Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 10 additions & 10 deletions docs/snippets/advanced-directive-array.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,18 @@
<array_directive>

<user>
<name>Henri Schimmel DVM</name>
<avatar>https://via.placeholder.com/640x480.png/0011ff?text=dolor</avatar>
<avatar>https://via.placeholder.com/640x480.png/00aa55?text=et</avatar>
<images name="est consequuntur similique">https://via.placeholder.com/640x480.png/00ccaa?text=odit</images>
<images name="aut quisquam quis">https://via.placeholder.com/640x480.png/0066ff?text=fugiat</images>
<name>Ms. Thelma Johnston PhD</name>
<avatar>https://via.placeholder.com/640x480.png/00cc00?text=distinctio</avatar>
<avatar>https://via.placeholder.com/640x480.png/006655?text=eum</avatar>
<images name="ut tempora eum">https://via.placeholder.com/640x480.png/0033bb?text=quasi</images>
<images name="dolorum repudiandae ut">https://via.placeholder.com/640x480.png/003333?text=iure</images>
</user>
<user>
<name>Hortense Pacocha</name>
<avatar>https://via.placeholder.com/640x480.png/00eeee?text=qui</avatar>
<avatar>https://via.placeholder.com/640x480.png/0033aa?text=maiores</avatar>
<images name="corporis provident consequatur">https://via.placeholder.com/640x480.png/007766?text=aspernatur</images>
<images name="aut ea eos">https://via.placeholder.com/640x480.png/00aaff?text=sunt</images>
<name>Dr. Billy McLaughlin Sr.</name>
<avatar>https://via.placeholder.com/640x480.png/006688?text=autem</avatar>
<avatar>https://via.placeholder.com/640x480.png/00aa66?text=commodi</avatar>
<images name="dolorem voluptatem sint">https://via.placeholder.com/640x480.png/001199?text=voluptas</images>
<images name="temporibus nisi placeat">https://via.placeholder.com/640x480.png/0022cc?text=hic</images>
</user>

</array_directive>
10 changes: 5 additions & 5 deletions docs/snippets/advanced-directive-attributes.xml
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<attributes_directive>

<company since="2015"/>
<company since="1977"/>
<url>https://example.com</url>

<user>
<name>Mrs. Kathryn Roob</name>
<contact email="bella00@example.net" phone="555-000-1"/>
<name>Dr. Rudolph Labadie</name>
<contact email="runolfsdottir.guadalupe@example.com" phone="555-000-1"/>
</user>
<user>
<name>Luna Keeling</name>
<contact email="kirlin.andreanne@example.org" phone="555-000-2"/>
<name>Dr. Adam Turcotte MD</name>
<contact email="veffertz@example.org" phone="555-000-2"/>
</user>

</attributes_directive>
8 changes: 4 additions & 4 deletions docs/snippets/advanced-directive-cdata.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@
<cdata_directive>

<user>
<name><![CDATA[<h1>Davon Schultz</h1>]]></name>
<email>bayer.isadore@example.com</email>
<name><![CDATA[<h1>Kareem Gusikowski</h1>]]></name>
<email>ross.mcdermott@example.net</email>
</user>
<user>
<name><![CDATA[<h1>Elna DuBuque</h1>]]></name>
<email>gail.mohr@example.com</email>
<name><![CDATA[<h1>Jaunita Wilderman</h1>]]></name>
<email>reichert.elwyn@example.org</email>
</user>

</cdata_directive>
8 changes: 4 additions & 4 deletions docs/snippets/advanced-directive-mixed.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,17 @@
<mixed_directive>

<user>
<name>Alanis Haley</name>
<name>Shirley Hegmann</name>
<some>
<first>Foo</first>
<second>victor63@example.org</second>
<second>margarett18@example.com</second>
</some>
</user>
<user>
<name>Prof. Reymundo Klocko PhD</name>
<name>Gabriel Olson</name>
<some>
<first>Foo</first>
<second>tyreek79@example.com</second>
<second>ladarius24@example.net</second>
</some>
</user>

Expand Down
8 changes: 4 additions & 4 deletions docs/snippets/advanced-directive-value.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@
<value_directive>

<user>
<name>Mitchell Vandervort</name>
<contact type="email">rohan.ashlee@example.org</contact>
<name>Mrs. Rosamond Lehner</name>
<contact type="email">kiara55@example.org</contact>
</user>
<user>
<name>Prof. Cullen Spencer</name>
<contact type="email">jody50@example.net</contact>
<name>Rosalia Donnelly</name>
<contact type="email">luella39@example.com</contact>
</user>

</value_directive>
8 changes: 4 additions & 4 deletions docs/snippets/advanced-element-attribute.xml
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<attribute>

<user created_at="2025-09-14T17:34:16+00:00">
<user created_at="2025-09-14T17:45:16+00:00">
<id>1</id>
<name>Julie Dickinson</name>
<name>Aaliyah Rowe</name>
</user>
<user created_at="2025-09-14T17:34:16+00:00">
<user created_at="2025-09-14T17:45:16+00:00">
<id>2</id>
<name>Dudley Hirthe</name>
<name>Valentine Mosciski DVM</name>
</user>

</attribute>
4 changes: 2 additions & 2 deletions docs/snippets/advanced-element-header-footer.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@

<user>
<id>1</id>
<name>Kristin VonRueden</name>
<name>Prof. Dandre Altenwerth III</name>
</user>
<user>
<id>2</id>
<name>Destin Stiedemann I</name>
<name>Miss Lesly Dicki</name>
</user>

</header_footer>
Expand Down
4 changes: 2 additions & 2 deletions docs/snippets/advanced-element-info-before-false.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,11 @@

<user>
<id>1</id>
<name>Willis Feest</name>
<name>Misty Hahn IV</name>
</user>
<user>
<id>2</id>
<name>Jennie Simonis</name>
<name>Kaya Zieme</name>
</user>

</info_method>
4 changes: 2 additions & 2 deletions docs/snippets/advanced-element-info.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,11 @@

<user>
<id>1</id>
<name>Mr. Terrance Koelpin</name>
<name>Darwin McKenzie</name>
</user>
<user>
<id>2</id>
<name>Daniella Will DVM</name>
<name>Emory Torp</name>
</user>

</info_method>
4 changes: 2 additions & 2 deletions docs/snippets/advanced-element-root.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@

<user>
<id>1</id>
<name>Prof. John Ward</name>
<name>Whitney Barton</name>
</user>
<user>
<id>2</id>
<name>Mrs. Felicia Stroman</name>
<name>Prof. Ron Cormier PhD</name>
</user>

</foo>
48 changes: 24 additions & 24 deletions docs/snippets/receipt-instagram-feed.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,46 +6,46 @@

<item>
<g:id>1</g:id>
<g:title><![CDATA[et libero maiores explicabo]]></g:title>
<g:description><![CDATA[Earum facilis voluptatem sint facere. Omnis tempore repellat ex quas ut aliquam. Nihil expedita aut ea labore doloremque aliquam et.]]></g:description>
<g:link>https://example.com/products/voluptatem-autem-quia-ut-ut</g:link>
<g:image_link>https://via.placeholder.com/640x480.png/002255?text=consectetur</g:image_link>
<g:additional_image_link>https://via.placeholder.com/640x480.png/000088?text=animi</g:additional_image_link>
<g:additional_image_link>https://via.placeholder.com/640x480.png/0011ee?text=commodi</g:additional_image_link>
<g:brand>odio</g:brand>
<g:title><![CDATA[eaque nulla recusandae aliquid]]></g:title>
<g:description><![CDATA[Atque sunt illum qui omnis eos. Sunt iste nisi quidem ut vitae. In quas est totam eius accusantium deserunt eaque. Ea repellat perspiciatis vel aut cumque illo. In et voluptas at eos.]]></g:description>
<g:link>https://example.com/products/qui-enim-minima-aut-similique-id-nihil-voluptatem</g:link>
<g:image_link>https://via.placeholder.com/640x480.png/00ffaa?text=natus</g:image_link>
<g:additional_image_link>https://via.placeholder.com/640x480.png/0099cc?text=nobis</g:additional_image_link>
<g:additional_image_link>https://via.placeholder.com/640x480.png/006611?text=qui</g:additional_image_link>
<g:brand>suscipit</g:brand>
<g:condition>new</g:condition>
<g:availability>in stock</g:availability>
<g:price>196</g:price>
<g:sale_price>196</g:sale_price>
<g:price>980</g:price>
<g:sale_price>980</g:sale_price>
<g:item_group_id>12345</g:item_group_id>
<g:status>active</g:status>
<g:color><![CDATA[Bisque]]></g:color>
<g:size>17</g:size>
<g:color><![CDATA[PaleGoldenRod]]></g:color>
<g:size>13</g:size>
<g:age_group>adult</g:age_group>
<g:material><![CDATA[suscipit]]></g:material>
<g:material><![CDATA[modi]]></g:material>
<g:pattern><![CDATA[regular]]></g:pattern>
<g:google_product_category>1000</g:google_product_category>
<g:fb_product_category>2000</g:fb_product_category>
</item>
<item>
<g:id>2</g:id>
<g:title><![CDATA[error ipsum minima aliquam]]></g:title>
<g:description><![CDATA[Sed laborum quod non autem ratione amet veniam. Exercitationem expedita necessitatibus magnam dolor non fuga temporibus. Fugit quam libero modi aut inventore provident sed. Nisi velit in culpa fugit.]]></g:description>
<g:link>https://example.com/products/numquam-ea-animi-molestiae-laborum</g:link>
<g:image_link>https://via.placeholder.com/640x480.png/008866?text=natus</g:image_link>
<g:additional_image_link>https://via.placeholder.com/640x480.png/0044ff?text=aut</g:additional_image_link>
<g:additional_image_link>https://via.placeholder.com/640x480.png/000022?text=debitis</g:additional_image_link>
<g:brand>perferendis</g:brand>
<g:title><![CDATA[commodi impedit aut dignissimos]]></g:title>
<g:description><![CDATA[Voluptatem quia fugiat enim et molestiae. Illo at eos est iste. Nulla et non est. Qui qui facere harum nesciunt. Itaque sit quibusdam praesentium qui beatae est cum. Quia sint autem vel aut.]]></g:description>
<g:link>https://example.com/products/pariatur-aliquid-sapiente-quia-est-quis-cumque-quis</g:link>
<g:image_link>https://via.placeholder.com/640x480.png/0033bb?text=harum</g:image_link>
<g:additional_image_link>https://via.placeholder.com/640x480.png/00ffdd?text=sit</g:additional_image_link>
<g:additional_image_link>https://via.placeholder.com/640x480.png/00ff66?text=sequi</g:additional_image_link>
<g:brand>explicabo</g:brand>
<g:condition>new</g:condition>
<g:availability>in stock</g:availability>
<g:price>447</g:price>
<g:sale_price>447</g:sale_price>
<g:price>659</g:price>
<g:sale_price>659</g:sale_price>
<g:item_group_id>12345</g:item_group_id>
<g:status>active</g:status>
<g:color><![CDATA[DarkOrchid]]></g:color>
<g:size>37</g:size>
<g:color><![CDATA[Chocolate]]></g:color>
<g:size>16</g:size>
<g:age_group>adult</g:age_group>
<g:material><![CDATA[occaecati]]></g:material>
<g:material><![CDATA[facere]]></g:material>
<g:pattern><![CDATA[regular]]></g:pattern>
<g:google_product_category>1000</g:google_product_category>
<g:fb_product_category>2000</g:fb_product_category>
Expand Down
4 changes: 2 additions & 2 deletions docs/snippets/receipt-sitemap-feed.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xmlns:video="http://www.google.com/schemas/sitemap-video/1.1" xmlns:news="http://www.google.com/schemas/sitemap-news/0.9">

<url>
<loc>https://example.com/products/neque-quidem-est-magnam-saepe-voluptas-veniam</loc>
<loc>https://example.com/products/in-nulla-sequi-qui-nulla</loc>
<lastmod>2025-09-04T04:08:12+00:00</lastmod>
<priority>0.9</priority>
</url>
<url>
<loc>https://example.com/products/dolore-minus-ut-nisi-aut-eaque-voluptatem</loc>
<loc>https://example.com/products/et-at-dolor-occaecati-ut</loc>
<lastmod>2025-09-04T04:08:12+00:00</lastmod>
<priority>0.9</priority>
</url>
Expand Down
44 changes: 22 additions & 22 deletions docs/snippets/receipt-yandex-feed.xml
Original file line number Diff line number Diff line change
Expand Up @@ -17,35 +17,35 @@
<offers>

<offer id="1" available="true" type="vendor.model">
<url>https://example.com/products/aperiam-quaerat-delectus-ut-recusandae-repudiandae-in-nostrum-tempora</url>
<barcode>GD-TVYDQ</barcode>
<name>quis repellendus cumque expedita</name>
<description>Doloribus a rerum eos omnis quia. Quod accusantium repudiandae ea iste sequi eaque nihil. Ut qui rerum aut. Est sed architecto quia. Officia culpa perferendis debitis iure aut molestias illo.</description>
<url>https://example.com/products/quis-amet-nemo-maiores-id</url>
<barcode>GD-^L%5E]JM</barcode>
<name>omnis corrupti deserunt corrupti</name>
<description>Maiores et facere nobis rem et ea rerum. Omnis aut quis sapiente dolores inventore non rerum. At et excepturi nostrum consequatur est laboriosam.</description>
<delivery>true</delivery>
<price>981</price>
<price>660</price>
<currencyId>RUR</currencyId>
<vendor>ullam</vendor>
<picture>https://via.placeholder.com/640x480.png/006600?text=unde</picture>
<picture>https://via.placeholder.com/640x480.png/0099cc?text=aut</picture>
<picture>https://via.placeholder.com/640x480.png/002277?text=quis</picture>
<param name="Артикул">GD-TVYDQ</param>
<vendor>optio</vendor>
<picture>https://via.placeholder.com/640x480.png/000077?text=unde</picture>
<picture>https://via.placeholder.com/640x480.png/00cc11?text=ea</picture>
<picture>https://via.placeholder.com/640x480.png/0066aa?text=ut</picture>
<param name="Артикул">GD-^L%5E]JM</param>
<param name="Код цвета">1</param>
<param name="Пол">male</param>
<param name="Пол">female</param>
</offer>
<offer id="2" available="true" type="vendor.model">
<url>https://example.com/products/libero-cum-harum-ducimus-voluptate-et-rerum</url>
<barcode>GD-0?{BEJ</barcode>
<name>quia numquam quo repudiandae</name>
<description>Numquam est natus suscipit voluptatem. Eaque hic eius quia rerum dolore et. Voluptas aut dignissimos quam neque delectus in aliquid provident. Ducimus magni ea nemo.</description>
<url>https://example.com/products/quisquam-sint-dolores-ipsa-sed-possimus</url>
<barcode>GD-CWL$8T+H</barcode>
<name>porro id rem soluta</name>
<description>Qui eum magnam modi fugit quae. Eos minima aut a eum. Odit quidem fugiat quo laboriosam natus sit dicta. Aut autem sed in eum sit eum omnis consequatur.</description>
<delivery>true</delivery>
<price>519</price>
<price>508</price>
<currencyId>RUR</currencyId>
<vendor>quia</vendor>
<picture>https://via.placeholder.com/640x480.png/0066cc?text=tempora</picture>
<picture>https://via.placeholder.com/640x480.png/002211?text=veritatis</picture>
<picture>https://via.placeholder.com/640x480.png/00aa55?text=in</picture>
<param name="Артикул">GD-0?{BEJ</param>
<param name="Код цвета">4</param>
<vendor>dolorem</vendor>
<picture>https://via.placeholder.com/640x480.png/00ee99?text=praesentium</picture>
<picture>https://via.placeholder.com/640x480.png/00ddcc?text=magni</picture>
<picture>https://via.placeholder.com/640x480.png/00bb00?text=a</picture>
<param name="Артикул">GD-CWL$8T+H</param>
<param name="Код цвета">1</param>
<param name="Пол">male</param>
</offer>

Expand Down
8 changes: 2 additions & 6 deletions src/Converters/CsvConverter.php
Original file line number Diff line number Diff line change
Expand Up @@ -54,13 +54,9 @@ public function info(array $info, bool $afterRoot): string
protected function performItem(array $data): array
{
foreach ($data as &$value) {
if (is_array($value)) {
$value = $this->performItem($value);

continue;
if (! is_array($value)) {
$value = $this->transformValue($value);
}

$value = $this->transformValue($value);
}

return $data;
Expand Down
2 changes: 2 additions & 0 deletions src/Converters/RssConverter.php
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,9 @@ protected function performBox(FeedItem $item): DOMNode
$element = $this->createElement('item');

if ($values = $item->attributes()) {
// @codeCoverageIgnoreStart
$this->setAttributes($element, $values);
// @codeCoverageIgnoreEnd
}

return $element;
Expand Down
18 changes: 18 additions & 0 deletions tests/Feature/Events/FailedTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -25,3 +25,21 @@
exception : FeedGenerationException::class,
exceptionMessage: 'Something went wrong while generating the feed.'
);

test('feed class link', function () {
Event::fake();

$feed = Feed::create([
'class' => FailedFeed::class,
'title' => 'Failed',
]);

try {
artisan(FeedGenerateCommand::class, ['feed' => $feed->id])
->assertSuccessful()
->run();
} catch (FeedGenerationException $e) {
expect($e->getMessage())->toContain('Something went wrong while generating the feed.');
expect($e->getFeed())->toBe(FailedFeed::class);
}
});