Skip to content

Commit 105b9de

Browse files
committed
add: support DublinCore multiple subjects
1 parent e94db56 commit 105b9de

File tree

2 files changed

+9
-0
lines changed

2 files changed

+9
-0
lines changed

lib/domain/dublin_core/dublin_core.dart

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ class DublinCore {
66
final String description;
77
final String creator;
88
final String subject;
9+
final List<String> subjects;
910
final String publisher;
1011
final String contributor;
1112
final String date;
@@ -23,6 +24,7 @@ class DublinCore {
2324
this.description,
2425
this.creator,
2526
this.subject,
27+
this.subjects,
2628
this.publisher,
2729
this.contributor,
2830
this.date,
@@ -45,6 +47,9 @@ class DublinCore {
4547
description: findElementOrNull(element, "dc:description")?.text,
4648
creator: findElementOrNull(element, "dc:creator")?.text,
4749
subject: findElementOrNull(element, "dc:subject")?.text,
50+
subjects: findAllDirectElementsOrNull(element, 'dc:subject')
51+
.map((subjectElement) => subjectElement.text)
52+
.toList(),
4853
publisher: findElementOrNull(element, "dc:publisher")?.text,
4954
contributor: findElementOrNull(element, "dc:contributor")?.text,
5055
date: findElementOrNull(element, "dc:date")?.text,

test/rss1_test.dart

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,5 +110,9 @@ void main() {
110110
expect(firstItem.link, 'http://b.hatena.ne.jp/guide/staff_bookmark_03');
111111
expect(firstItem.dc.creator, 'sample');
112112
expect(firstItem.dc.date, '2009-04-10T09:44:20Z');
113+
expect(firstItem.dc.subject, 'はてな');
114+
expect(firstItem.dc.subjects[0], 'はてな');
115+
expect(firstItem.dc.subjects[1], 'インタビュー');
116+
expect(firstItem.dc.subjects[2], 'はてなブックマーク');
113117
});
114118
}

0 commit comments

Comments
 (0)