Hub::Data::Meta - Interface for manipulating web-content meta-data
Part of the Hub Library
use Hub; my $meta = Hub::mkinst( 'Meta' );
$new_global_id = $meta->create_id();
$meta->define_id("user", "u%30d", 5); $new_user_id = $meta->create_id("user"); die unless $new_user_id eq "u005"; $next_user_id = $meta->create_id("user"); die unless $new_user_id eq "u006";
$meta->define_order("users", "ascending", "name"); $meta->order_items("users", @users)
Provides interfaces for manipulating internal data elements. These are defined as:
variable name description
_id identifier which uniquely distinguishes this item in its container.
_sort numerical value which signifies item order within its container.
_created_by user which has created this item
_last_modified_by user which has last modified this item
_last_modified last time this item was modified in seconds since the epoch
create_id | get_id | initHash | order_items | touch |
define_id | init | new | smart_compare |
gets the next number for an id and returns the formmatted value. file storage is saved as 'meta.hf'.
example:
a) $meta->create_id(); b) $meta->create_id(); ...
c) $meta->create_id('abc','%d',10);
returns:
a) 1 b) 2 ...
c) 11 (presuming the id 'abc' wasn't defined, it is initialized)
define the format and initial value for an id
example:
$meta->define_id('global', '%04d', 0); $meta->define_id('folsiz', "p%d", 100); $meta->define_id('bolmsk', "item%08d", 2000);
will create ids of the form:
0164 where the value is 164 and starts at 0 p748 where the value is 748 and starts at 100 item00012148 where the value is 12148 and starts at 200
return the stored id data, or create it with default values
example:
$meta->get_id(); $meta->get_id('folsiz');
returns a hash reference to:
the global id data the id data for 'folsiz'
Usage: initialize
initialize meta-data for the provided hash
order the anon hashes within an array according to some hash key
Usage: order_items( $array_ref, 'hash_key', 'sort_key' );
1) The 'sort_key' arguement (or literally '_sort' if no arg is provided) will be assigned in the anon hash with the 0 ... n index which indicates the correct sort order.
2) sorting will use a numeric comparison when the data of the key to sort on is purely digits.
use 'cmp' or '<=>' depending on the data. missing values are pushed to the end of the list
refresh meta-data in the provided hashref.
example:
$meta->touch( { this => "is", a => "hashref" } );
will:
{ _created_by => guest, _last_modified_by => guest, _created => 1071712178, _last_modified => 1071712178, this => "is", a => "hashref", }
Ryan Gies
Copyright (c) 2006 Livesite Networks, LLC. All rights reserved.
Copyright (c) 2000-2005 Ryan Gies. All rights reserved.
This file created by on at