The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

WWW::Mixi::OO::ListPage - WWW::Mixi::OO's List Pages base class

SYNOPSIS

package WWW::Mixi::OO::Foo;
use base qw(WWW::Mixi::OO::ListPage);
# some implementations...

DESCRIPTION

list pages base class.

METHODS

uri

see super class (WWW::Mixi::OO::Page).

this module handle following params:

page

page number, maybe 1 origin.

parse_uri

see super class (WWW::Mixi::OO::Page).

this module handle following params:

page

page number, maybe 1 origin.

parse_navi_next
# subclass
sub parse_navi_next {
    my ($this, %options) = @_;
    # parse...
    $this->content =~ /.../;
    # return
    return { a => b, c => d };
}

# call
my $next = $pkg->parse_navi_next;

page "next" navi parser. please return hashref. page didn't have next page navigation, no need to implement this.

parse_navi_prev
# subclass
sub parse_navi_prev {
    my ($this, %options) = @_;
    # parse...
    $this->content =~ /.../;
    # return
    return { a => b, c => d };
}

# call
my $prev = $pkg->parse_navi_prev;

page "prev" navi parser. please return hashref. page didn't have previous page navigation, no need to implement this.

fetch
# call
$pkg->fetch(
    limit => $limit,
    other_options...
);

fetch all items from some pages. need ->get and ->parse_navi_next()->{link}.

gen_sort_proc
# call
$pkg->gen_sort_proc($spec, [$pkg]);

generate sort closure(anonsub).

spec is "$field" or "!$field"(reverse order).

sort
# call
$pkg->sort($spec, @items...);

handy sort function. (but maybe need unnecessarily array copy...)

sort_type
  # subclass
  sub sort_type {
      my ($this, $field) = @_;

      if (grep { $_ eq $field } qw(more nums...)) {
	  return 'num';
      } else {
	  return $this->SUPER::sort_type($field);
      }
  }

sort type probe function.

get_navi_next
# call
$pkg->get_navi_next([opt => val], ...);

handy method. call ->set_content and ->parse_navi_next.

get_navi_prev
# call
$pkg->get_navi_prev([opt => val], ...);

handy method. call ->set_content and ->parse_navi_prev.

SEE ALSO

WWW::Mixi::OO::Page

AUTHOR

Topia <topia@clovery.jp>

COPYRIGHT AND LICENSE

Copyright (C) 2005 by Topia.

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.6 or, at your option, any later version of Perl 5 you may have available.