Skip to content

Commit e4ee2ce

Browse files
Merge pull request #85 from TheDragonCode/1.x
Added support for `beforeInfo: false` parameter in root element handling and relevant documentation updates
2 parents ac11b14 + d3c7abe commit e4ee2ce

11 files changed

+117
-13
lines changed
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<attribute>
33

4-
<user created_at="2025-09-05 00:25:08">
4+
<user created_at="2025-09-05 00:35:01">
55
<id>1</id>
6-
<name>Ms. Sunny Barrows</name>
6+
<name>Gilda Moore</name>
77
</user>
8-
<user created_at="2025-09-05 00:25:08">
8+
<user created_at="2025-09-05 00:35:01">
99
<id>2</id>
10-
<name>Liana Dooley Sr.</name>
10+
<name>Prof. Jo Connelly</name>
1111
</user>
1212

1313
</attribute>

docs/snippets/advanced-element-header-footer.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@
33

44
<user>
55
<id>1</id>
6-
<name>Prof. Gabriel Botsford DDS</name>
6+
<name>Judy Jacobs</name>
77
</user>
88
<user>
99
<id>2</id>
10-
<name>Myles Hammes</name>
10+
<name>Ms. Lilliana Hettinger MD</name>
1111
</user>
1212

1313
</header_footer>
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace App\Feeds;
6+
7+
use App\Feeds\Info\InfoMethodFeedInfo;
8+
use App\Models\User;
9+
use DragonCode\LaravelFeed\Data\ElementData;
10+
use DragonCode\LaravelFeed\Feeds\Feed;
11+
use DragonCode\LaravelFeed\Feeds\Info\FeedInfo;
12+
use Illuminate\Database\Eloquent\Builder;
13+
14+
class InfoMethodBeforeFalseTest extends Feed
15+
{
16+
public function builder(): Builder
17+
{
18+
return User::query();
19+
}
20+
21+
public function root(): ElementData
22+
{
23+
return new ElementData(
24+
name : 'info_method',
25+
beforeInfo: false
26+
);
27+
}
28+
29+
public function info(): FeedInfo
30+
{
31+
return new InfoMethodFeedInfo;
32+
}
33+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<company>Laravel</company>
3+
<url>https://example.com</url>
4+
5+
<info_method>
6+
7+
<user>
8+
<id>1</id>
9+
<name>Devyn Brekke</name>
10+
</user>
11+
<user>
12+
<id>2</id>
13+
<name>Trudie Conn</name>
14+
</user>
15+
16+
</info_method>

docs/snippets/advanced-element-info.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,11 @@
66

77
<user>
88
<id>1</id>
9-
<name>Tess Raynor</name>
9+
<name>Dr. Stephen Donnelly DDS</name>
1010
</user>
1111
<user>
1212
<id>2</id>
13-
<name>Ms. Georgiana Denesik IV</name>
13+
<name>Miss Erika Mayert</name>
1414
</user>
1515

1616
</info_method>

docs/snippets/advanced-element-root.php

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ public function root(): ElementData
2727

2828
'generated_at' => now(),
2929
],
30-
beforeInfo: false
3130
);
3231
}
3332
}

docs/snippets/advanced-element-root.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@
33

44
<user>
55
<id>1</id>
6-
<name>Hudson Lehner</name>
6+
<name>Shyann Brown</name>
77
</user>
88
<user>
99
<id>2</id>
10-
<name>Luella Beier</name>
10+
<name>Einar Kassulke</name>
1111
</user>
1212

1313
</foo>

docs/topics/advanced-usage.topic

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,19 @@
7171
</p>
7272

7373
<code-block lang="xml" src="advanced-element-info.xml" />
74+
75+
<p>
76+
If it is necessary to change the procedure for the output of the root element relative to the
77+
information block, set the <code>beforeInfo</code> parameter in the <code>root</code> method:
78+
</p>
79+
80+
<code-block lang="php" src="advanced-element-info-before-false.php" include-lines="5-" />
81+
82+
<p>
83+
This code will result in:
84+
</p>
85+
86+
<code-block lang="xml" src="advanced-element-info-before-false.xml" />
7487
</chapter>
7588

7689
<chapter title="Header &amp; footer" id="header_and_footer">

tests/Feature/Docs/ElementTest.php

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,13 @@
66
use DragonCode\LaravelFeed\Models\Feed;
77
use Workbench\App\Feeds\Docs\AttributeFeed;
88
use Workbench\App\Feeds\Docs\HeaderFooterFeed;
9+
use Workbench\App\Feeds\Docs\InfoMethodBeforeFalseTest;
910
use Workbench\App\Feeds\Docs\InfoMethodFeed;
1011
use Workbench\App\Feeds\Docs\RootElementFeed;
1112

1213
use function Pest\Laravel\artisan;
1314

14-
it('generate stub', function (string $feed, array $files) {
15+
it('generate stub', function (string $feed, array $files = []) {
1516
$model = Feed::create([
1617
'class' => $feed,
1718
'title' => $feed,
@@ -38,6 +39,11 @@
3839
],
3940
],
4041

42+
'info before false' => [
43+
'feed' => InfoMethodBeforeFalseTest::class,
44+
'files' => ['InfoMethodBeforeFalseTest' => 'advanced-element-info-before-false.php'],
45+
],
46+
4147
'header & footer' => [
4248
'feed' => HeaderFooterFeed::class,
4349
'files' => ['HeaderFooterFeed' => 'advanced-element-header-footer.php'],
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace Workbench\App\Feeds\Docs;
6+
7+
use DragonCode\LaravelFeed\Data\ElementData;
8+
use DragonCode\LaravelFeed\Feeds\Feed;
9+
use DragonCode\LaravelFeed\Feeds\Info\FeedInfo;
10+
use Illuminate\Database\Eloquent\Builder;
11+
use Workbench\App\Feeds\Docs\Info\InfoMethodFeedInfo;
12+
use Workbench\App\Models\User;
13+
14+
class InfoMethodBeforeFalseTest extends Feed
15+
{
16+
public function builder(): Builder
17+
{
18+
return User::query();
19+
}
20+
21+
public function root(): ElementData
22+
{
23+
return new ElementData(
24+
name : 'info_method',
25+
beforeInfo: false
26+
);
27+
}
28+
29+
public function info(): FeedInfo
30+
{
31+
return new InfoMethodFeedInfo;
32+
}
33+
34+
public function filename(): string
35+
{
36+
return '../../../../../../../../../docs/snippets/advanced-element-info-before-false.xml';
37+
}
38+
}

0 commit comments

Comments
 (0)