use Scalar::Util qw/looks_like_number/;
use WebService::TDWTF::Article;
-my @subs = qw/article list_recent list_series list_author/;
+my @subs = qw/article list_recent list_series list_author series/;
our @EXPORT = map { "tdwtf_$_" } @subs;
our @EXPORT_OK = (@EXPORT, @subs);
our %EXPORT_TAGS = (all => [@EXPORT_OK]);
sub list_series { _list 'series', @_ }
sub list_author { _list 'author', @_ }
+sub series { @{_query "$BASE_URL/series/"} }
+
BEGIN {
*tdwtf_article = \&article;
*tdwtf_list_recent = \&list_recent;
*tdwtf_list_series = \&list_series;
*tdwtf_list_author = \&list_author;
+ *tdwtf_series = \&series;
}
1;
# All Error'd articles published in January 2014
my @jan14_errord = tdwtf_list_series 'errord', 2014, 1;
+ my @series = series; # List of all series
+ my $series = series; # Number of series ($series == @series)
+ print $series[0]->Slug; # alexs-soapbox
+ print $series[0]->Title; # Alex's Soapbox
+ print $series[0]->Description; # <description of this series>
+ print $series[0]->CssClass; # tales
+
=head1 DESCRIPTION
WebService::TDWTF is an interface to the API of L<http://thedailywtf.com>.
in the given month of the given year. I<$month> is an integer between
1 and 12.
+=item B<tdwtf_series>
+
+=item B<series>
+
+In list context, returns a list of all existing article series. Each
+series is an unblessed hashref with the keys C<Slug>, C<Title>,
+C<Description> and C<CssClass>.
+
+In scalar context, returns the number of existing article series.
+
=back
=head1 NOTES
use warnings;
use Test::RequiresInternet ('thedailywtf.com' => 80);
-use Test::More tests => 14;
+use Test::More tests => 16;
BEGIN { use_ok('WebService::TDWTF') };
my $art = tdwtf_article;
my @sod = tdwtf_list_series 'code-sod', 5;
is @sod, 5, 'tdwtf_list_series \'code-sod\', 5';
+my @series = tdwtf_series;
+note 'Found ' . @series . ' series';
+cmp_ok @series, '==', scalar tdwtf_series, 'tdwtf_series scalar context';
+my ($codesod) = grep { $_->{Title} =~ /codesod/i } @series;
+is $codesod->{Slug}, 'code-sod', 'tdwtf_series finds CodeSOD';
my ($last) = tdwtf_list_recent 1;
ok !defined $last->NextArticle, 'last article has no next article';