IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 6501


Ignore:
Timestamp:
Feb 27, 2006, 5:03:34 PM (20 years ago)
Author:
jhoblitt
Message:

add DataStore::Record->new()
move DataStore::Record::File out of DataStore::Record and rename it to DataStore::File
move DataStore::Record::FileSet out of DataStore::Record and rename it to DataStore::FileSet
add DataStore::Product
improve DataStore::Record:... constructor uri param validation (trailing slash vs. no trailing slash)

Location:
trunk/DataStore
Files:
3 added
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/DataStore/MANIFEST

    r6492 r6501  
    77README
    88Todo
     9lib/DataStore/File.pm
    910lib/DataStore/File/Parser.pm
     11lib/DataStore/FileSet.pm
    1012lib/DataStore/FileSet/Parser.pm
     13lib/DataStore/Product.pm
     14lib/DataStore/Record.pm
    1115t/00_distribution.t
    1216t/01_load.t
  • trunk/DataStore/lib/DataStore/File/Parser.pm

    r6499 r6501  
    11# Copyright (C) 2006  Joshua Hoblitt
    22#
    3 # $Id: Parser.pm,v 1.5 2006-02-27 22:32:00 jhoblitt Exp $
     3# $Id: Parser.pm,v 1.6 2006-02-28 03:02:12 jhoblitt Exp $
    44
    55package DataStore::File::Parser;
     
    1414
    1515use Carp qw( carp );
    16 use DataStore::Record;
    17 use Params::Validate qw( validate_pos SCALAR);
     16use DataStore::File;
     17use Params::Validate qw( validate validate_pos SCALAR );
    1818
    1919my $std_field = qr/^[a-z0-9-_.]+$/;
     
    6363    my $class = shift;
    6464
    65     my $self = bless {}, ref $class || $class;
     65    my %p = validate(@_,
     66        {
     67            base_uri => {
     68                type        => SCALAR,
     69                callbacks   => {
     70                    'is valid http uri' => sub { is_http_uri($_[0]) },
     71                },
     72                default =>  'http://example.org/',
     73            },
     74        },
     75    );
     76
     77    my $self = bless \%p, ref $class || $class;
    6678
    6779    return $self;
     
    141153
    142154        # fifo 
    143         push @data, DataStore::Record::File->new({
     155        push @data, DataStore::File->new({
    144156            fileid  => $fileid,
    145157            bytes   => $bytes,
    146158            md5sum  => $md5sum,
    147159            type    => $type,
     160            uri     => $self->base_uri . $fileid,
    148161        });
    149162    } continue {
  • trunk/DataStore/lib/DataStore/FileSet/Parser.pm

    r6499 r6501  
    11# Copyright (C) 2006  Joshua Hoblitt
    22#
    3 # $Id: Parser.pm,v 1.6 2006-02-27 22:32:00 jhoblitt Exp $
     3# $Id: Parser.pm,v 1.7 2006-02-28 03:02:12 jhoblitt Exp $
    44
    55package DataStore::FileSet::Parser;
     
    1515use Carp qw( carp );
    1616use Data::Validate::URI qw( is_http_uri );
    17 use DataStore::Record;
     17use DataStore::FileSet;
    1818use Params::Validate qw( validate validate_pos SCALAR);
    1919
     
    152152
    153153        # fifo
    154         push @data, DataStore::Record::FileSet->new({
     154        push @data, DataStore::FileSet->new({
    155155            fileset     => $fileset,
    156156            datetime    => $datetime,
    157157            type        => $type,
    158             uri         => $self->base_uri . $fileset,
     158            uri         => $self->base_uri . $fileset . '/',
    159159        });
    160160    } continue {
  • trunk/DataStore/lib/DataStore/Record.pm

    r6499 r6501  
    11# Copyright (C) 2006  Joshua Hoblitt
    22#
    3 # $Id: Record.pm,v 1.1 2006-02-27 22:32:00 jhoblitt Exp $
     3# $Id: Record.pm,v 1.2 2006-02-28 03:02:12 jhoblitt Exp $
    44
    55package DataStore::Record;
     
    1515use Carp qw( carp );
    1616use Data::Validate::URI qw( is_http_uri );
    17 use Params::Validate qw( validate validate_pos SCALAR);
     17use Params::Validate qw( validate_with validate SCALAR );
    1818
    1919use vars qw( @BASE_FIELDS );
     
    4444=head2 Methods
    4545
     46=head3 Constructors
     47
     48=over 4
     49
     50=cut
     51
     52sub new
     53{
     54    my $class = shift;
     55
     56    my %p = validate_with(
     57        params  => \@_,
     58        spec    => {
     59            uri => {
     60                type        => SCALAR,
     61                callbacks   => {
     62                    'is valid http uri' => sub { is_http_uri($_[0]) },
     63                },
     64                default =>  'http://example.org/',
     65            },
     66        },
     67        allow_extra => 1,
     68    );
     69
     70    my $self = bless { uri => $p{uri} }, ref $class || $class;
     71
     72    return $self;
     73}
     74
     75=back
     76
    4677=head3 Object Methods
    4778
     
    5283=cut
    5384
    54 package DataStore::Record::FileSet;
    55 
    56 use base qw( DataStore::Record );
    57 
    58 use vars qw( @BASE_FIELDS );
    59 
    60 @BASE_FIELDS = qw( fileset datetime type );
    61 
    62 __PACKAGE__->mk_accessors(@BASE_FIELDS);
    63 
    64 
    65 package DataStore::Record::File;
    66 
    67 use base qw( DataStore::Record );
    68 
    69 use vars qw( @BASE_FIELDS );
    70 
    71 @BASE_FIELDS = qw( fileid bytes md5sum type );
    72 
    73 __PACKAGE__->mk_accessors(@BASE_FIELDS);
    74 
    75851;
    7686
  • trunk/DataStore/t/01_load.t

    r6475 r6501  
    33# t/001_load.t - check module loading and create testing directory
    44
    5 use Test::More tests => 2;
     5use lib qw( ./lib ./t );
    66
     7use Test::More tests => 6;
     8
     9BEGIN { use_ok( 'DataStore::File' ); }
    710BEGIN { use_ok( 'DataStore::File::Parser' ); }
     11BEGIN { use_ok( 'DataStore::FileSet' ); }
    812BEGIN { use_ok( 'DataStore::FileSet::Parser' ); }
    9 
     13BEGIN { use_ok( 'DataStore::Product' ); }
     14BEGIN { use_ok( 'DataStore::Record' ); }
  • trunk/DataStore/t/02_fileset_parse.t

    r6497 r6501  
    33# Copyright (C) 2006  Joshua Hoblitt
    44#
    5 # $Id: 02_fileset_parse.t,v 1.4 2006-02-25 04:48:25 jhoblitt Exp $
     5# $Id: 02_fileset_parse.t,v 1.5 2006-02-28 03:02:12 jhoblitt Exp $
    66
    77use strict;
     
    121121    is(scalar @$results, 4, "correct number of item returned");
    122122
    123     isa_ok(@$results[0], 'DataStore::FileSet::Record');
     123    isa_ok(@$results[0], 'DataStore::FileSet');
    124124    is(@$results[0]->fileset, 'otis0123456', 'correct fileset');
    125125    is(@$results[0]->datetime, '2006-01-01T00:03:04Z', 'correct datetime');
    126126    is(@$results[0]->type, 'object', 'correct type');
    127     is(@$results[0]->uri, 'http://foo.com/otis0123456', 'correct uri');
     127    is(@$results[0]->uri, 'http://foo.com/otis0123456/', 'correct uri');
    128128
    129     isa_ok(@$results[1], 'DataStore::FileSet::Record');
     129    isa_ok(@$results[1], 'DataStore::FileSet');
    130130    is(@$results[1]->fileset, 'otis0123456', 'correct fileset');
    131131    is(@$results[1]->datetime, '2006-01-01T00:03:04Z', 'correct datetime');
    132132    is(@$results[1]->type, 'object', 'correct type');
    133     is(@$results[1]->uri, 'http://foo.com/otis0123456', 'correct uri');
     133    is(@$results[1]->uri, 'http://foo.com/otis0123456/', 'correct uri');
    134134
    135     isa_ok(@$results[2], 'DataStore::FileSet::Record');
     135    isa_ok(@$results[2], 'DataStore::FileSet');
    136136    is(@$results[2]->fileset, 'otis0123456', 'correct fileset');
    137137    is(@$results[2]->datetime, '2006-01-01T00:03:04Z', 'correct datetime');
    138138    is(@$results[2]->type, 'object', 'correct type');
    139     is(@$results[2]->uri, 'http://foo.com/otis0123456', 'correct uri');
     139    is(@$results[2]->uri, 'http://foo.com/otis0123456/', 'correct uri');
    140140
    141     isa_ok(@$results[3], 'DataStore::FileSet::Record');
     141    isa_ok(@$results[3], 'DataStore::FileSet');
    142142    is(@$results[3]->fileset, 'otis0123456', 'correct fileset');
    143143    is(@$results[3]->datetime, '2006-01-01T00:03:04Z', 'correct datetime');
    144144    is(@$results[3]->type, 'object', 'correct type');
    145     is(@$results[3]->uri, 'http://foo.com/otis0123456', 'correct uri');
     145    is(@$results[3]->uri, 'http://foo.com/otis0123456/', 'correct uri');
    146146}
    147147
     
    164164    is(scalar @$results, 1, "correct number of item returned");
    165165
    166     isa_ok(@$results[0], 'DataStore::FileSet::Record');
     166    isa_ok(@$results[0], 'DataStore::FileSet');
    167167    is(@$results[0]->fileset, 'otis0123456', 'correct fileset');
    168168    is(@$results[0]->datetime, '2006-01-01T00:03:04Z', 'correct datetime');
  • trunk/DataStore/t/03_file_parse.t

    r6491 r6501  
    33# Copyright (C) 2006  Joshua Hoblitt
    44#
    5 # $Id: 03_file_parse.t,v 1.2 2006-02-25 00:13:36 jhoblitt Exp $
     5# $Id: 03_file_parse.t,v 1.3 2006-02-28 03:02:12 jhoblitt Exp $
    66
    77use strict;
     
    132132    is(scalar @$results, 4, "correct number of item returned");
    133133
    134     isa_ok(@$results[0], 'DataStore::File::Record');
     134    isa_ok(@$results[0], 'DataStore::File');
    135135    is(@$results[0]->fileid, 'otis0123456.01', 'correct fileid');
    136136    is(@$results[0]->bytes, '83002312', 'correct datetime');
     
    138138    is(@$results[0]->type, 'chip', 'correct type');
    139139
    140     isa_ok(@$results[1], 'DataStore::File::Record');
     140    isa_ok(@$results[1], 'DataStore::File');
    141141    is(@$results[1]->fileid, 'otis0123456.02', 'correct fileid');
    142142    is(@$results[1]->bytes, '83002312', 'correct datetime');
     
    144144    is(@$results[1]->type, 'chip', 'correct type');
    145145
    146     isa_ok(@$results[2], 'DataStore::File::Record');
     146    isa_ok(@$results[2], 'DataStore::File');
    147147    is(@$results[2]->fileid, 'otis0123456.03', 'correct fileid');
    148148    is(@$results[2]->bytes, '83002312', 'correct datetime');
     
    150150    is(@$results[2]->type, 'chip', 'correct type');
    151151
    152     isa_ok(@$results[3], 'DataStore::File::Record');
     152    isa_ok(@$results[3], 'DataStore::File');
    153153    is(@$results[3]->fileid, 'otis0123456.04', 'correct fileid');
    154154    is(@$results[3]->bytes, '83002312', 'correct datetime');
     
    175175    is(scalar @$results, 1, "correct number of item returned");
    176176
    177     isa_ok(@$results[0], 'DataStore::File::Record');
     177    isa_ok(@$results[0], 'DataStore::File');
    178178    is(@$results[0]->fileid, 'otis0123456.01', 'correct fileid');
    179179    is(@$results[0]->bytes, '83002312', 'correct datetime');
Note: See TracChangeset for help on using the changeset viewer.