NAME

Dancer::Plugin::PageHistory::PageSet - collection of pages with accessors

ATTRIBUTES

default_type

For all methods that expect an argument type then this default_type will be the one used when type is not specified. Defaults to default.

fallback_page

In the event that "latest_page" or "previous_page" have no page to return then "fallback_page" is returned instead.

By default this is set to undef.

You can set this page to something else by passing any of the following as the value of this attribute:

  • a hash reference to be passed to Dancer::Plugin::PageHistory::Page->new

  • a Dancer::Plugin::PageHistory::Page object

max_items

The maximum number of each history type stored in "pages".

pages

A hash reference of arrays of hash references.

Primary key is the history type such as default or product. For each type an array reference of pages is stored with new pages added at the start of the array reference.

methods

An array reference of extra method names that should be added to the class. For example if one of these method names is 'product' then the following shortcut method will be added:

sub product {
    return shift->pages->{"product"};
}

METHODS

add( %args )

$args{type} defaults to "default_type".

In addition to type other arguments should be those passed to new in Dancer::Plugin::PageHistory::Page.

has_pages

Predicate on "pages".

page_index($index, $type)

Returns the page from "pages" of type $type at position $index. If $type is not supplied then "default_type" will be used. If page is not found then "fallback_page" is returned instead.

latest_page($type)

A convenience method equivalent to:

page_index(0, $type)

previous_page

A convenience method equivalent to:

page_index(1, $type)

types

Return all of the page types currently stored in history.

In array context returns an array of type names (keys of "pages") and in scalar context returns the same as an array reference.