r9713 - in /branches/upstream/libdublincore-record-perl: ./ current/ current/lib/ current/lib/DublinCore/ current/t/

vdanjean at users.alioth.debian.org vdanjean at users.alioth.debian.org
Sat Nov 24 16:49:49 UTC 2007


Author: vdanjean
Date: Sat Nov 24 16:49:48 2007
New Revision: 9713

URL: http://svn.debian.org/wsvn/?sc=1&rev=9713
Log:
[svn-inject] Installing original source of libdublincore-record-perl

Added:
    branches/upstream/libdublincore-record-perl/
    branches/upstream/libdublincore-record-perl/current/
    branches/upstream/libdublincore-record-perl/current/Build.PL
    branches/upstream/libdublincore-record-perl/current/Changes
    branches/upstream/libdublincore-record-perl/current/MANIFEST
    branches/upstream/libdublincore-record-perl/current/META.yml
    branches/upstream/libdublincore-record-perl/current/Makefile.PL
    branches/upstream/libdublincore-record-perl/current/README
    branches/upstream/libdublincore-record-perl/current/lib/
    branches/upstream/libdublincore-record-perl/current/lib/DublinCore/
    branches/upstream/libdublincore-record-perl/current/lib/DublinCore/Element.pm
    branches/upstream/libdublincore-record-perl/current/lib/DublinCore/Record.pm
    branches/upstream/libdublincore-record-perl/current/t/
    branches/upstream/libdublincore-record-perl/current/t/01-use.t
    branches/upstream/libdublincore-record-perl/current/t/10-empty.t
    branches/upstream/libdublincore-record-perl/current/t/11-constructor.t
    branches/upstream/libdublincore-record-perl/current/t/12-setters.t
    branches/upstream/libdublincore-record-perl/current/t/98-pod_coverage.t
    branches/upstream/libdublincore-record-perl/current/t/99-pod.t

Added: branches/upstream/libdublincore-record-perl/current/Build.PL
URL: http://svn.debian.org/wsvn/branches/upstream/libdublincore-record-perl/current/Build.PL?rev=9713&op=file
==============================================================================
--- branches/upstream/libdublincore-record-perl/current/Build.PL (added)
+++ branches/upstream/libdublincore-record-perl/current/Build.PL Sat Nov 24 16:49:48 2007
@@ -1,0 +1,18 @@
+use strict;
+
+use Module::Build;
+
+my $build = Module::Build->new(
+    module_name        => 'DublinCore::Record',
+    dist_author        => 'Brian Cassidy <bricas at cpan.org>',
+    license            => 'perl',
+    create_readme      => 1,
+    create_makefile_pl => 'traditional',
+    requires           => {
+        'Class::Accessor' => 0
+    },
+    build_requires     => {
+        'Test::More'  => 0
+    },
+);
+$build->create_build_script;

Added: branches/upstream/libdublincore-record-perl/current/Changes
URL: http://svn.debian.org/wsvn/branches/upstream/libdublincore-record-perl/current/Changes?rev=9713&op=file
==============================================================================
--- branches/upstream/libdublincore-record-perl/current/Changes (added)
+++ branches/upstream/libdublincore-record-perl/current/Changes Sat Nov 24 16:49:48 2007
@@ -1,0 +1,13 @@
+Revision history for Perl extension DublinCore::Record
+
+0.03  Mon Feb 26 2007
+    - repackaged -- no functional changes
+
+0.02  Tue Mar 08 2005
+    - pod fixes
+    - added pod_coverage test
+    - increased coverage
+
+0.01  Fri Nov 12 11:06:45 2004
+    - original version
+

Added: branches/upstream/libdublincore-record-perl/current/MANIFEST
URL: http://svn.debian.org/wsvn/branches/upstream/libdublincore-record-perl/current/MANIFEST?rev=9713&op=file
==============================================================================
--- branches/upstream/libdublincore-record-perl/current/MANIFEST (added)
+++ branches/upstream/libdublincore-record-perl/current/MANIFEST Sat Nov 24 16:49:48 2007
@@ -1,0 +1,14 @@
+Build.PL
+Changes
+lib/DublinCore/Element.pm
+lib/DublinCore/Record.pm
+Makefile.PL
+MANIFEST			This list of files
+META.yml
+README
+t/01-use.t
+t/10-empty.t
+t/11-constructor.t
+t/12-setters.t
+t/98-pod_coverage.t
+t/99-pod.t

Added: branches/upstream/libdublincore-record-perl/current/META.yml
URL: http://svn.debian.org/wsvn/branches/upstream/libdublincore-record-perl/current/META.yml?rev=9713&op=file
==============================================================================
--- branches/upstream/libdublincore-record-perl/current/META.yml (added)
+++ branches/upstream/libdublincore-record-perl/current/META.yml Sat Nov 24 16:49:48 2007
@@ -1,0 +1,24 @@
+---
+name: DublinCore-Record
+version: 0.03
+author:
+  - 'Brian Cassidy <bricas at cpan.org>'
+abstract: Container for Dublin Core metadata elements
+license: perl
+resources:
+  license: http://dev.perl.org/licenses/
+requires:
+  Class::Accessor: 0
+build_requires:
+  Test::More: 0
+provides:
+  DublinCore::Element:
+    file: lib/DublinCore/Element.pm
+    version: 0.03
+  DublinCore::Record:
+    file: lib/DublinCore/Record.pm
+    version: 0.03
+generated_by: Module::Build version 0.2806
+meta-spec:
+  url: http://module-build.sourceforge.net/META-spec-v1.2.html
+  version: 1.2

Added: branches/upstream/libdublincore-record-perl/current/Makefile.PL
URL: http://svn.debian.org/wsvn/branches/upstream/libdublincore-record-perl/current/Makefile.PL?rev=9713&op=file
==============================================================================
--- branches/upstream/libdublincore-record-perl/current/Makefile.PL (added)
+++ branches/upstream/libdublincore-record-perl/current/Makefile.PL Sat Nov 24 16:49:48 2007
@@ -1,0 +1,15 @@
+# Note: this file was auto-generated by Module::Build::Compat version 0.03
+use ExtUtils::MakeMaker;
+WriteMakefile
+(
+          'PL_FILES' => {},
+          'INSTALLDIRS' => 'site',
+          'NAME' => 'DublinCore::Record',
+          'EXE_FILES' => [],
+          'VERSION_FROM' => 'lib/DublinCore/Record.pm',
+          'PREREQ_PM' => {
+                           'Test::More' => 0,
+                           'Class::Accessor' => 0
+                         }
+        )
+;

Added: branches/upstream/libdublincore-record-perl/current/README
URL: http://svn.debian.org/wsvn/branches/upstream/libdublincore-record-perl/current/README?rev=9713&op=file
==============================================================================
--- branches/upstream/libdublincore-record-perl/current/README (added)
+++ branches/upstream/libdublincore-record-perl/current/README Sat Nov 24 16:49:48 2007
@@ -1,0 +1,155 @@
+NAME
+    DublinCore::Record - Container for Dublin Core metadata elements
+
+SYNOPSIS
+        use DublinCore::Record;
+    
+        my $record = DublinCore::Record->new();
+    
+        # later ...
+
+        # print the title
+        print $record->element( 'title' )->content;
+
+        ## list context will retrieve all of a particular element 
+        foreach my $element ( $record->element( 'Creator' ) ) {
+            print "creator: ", $element->content(), "\n";
+        }
+
+        ## qualified dublin core
+        my $creation = $record->element( 'Date.created' )->content();
+
+DESCRIPTION
+    DublinCore::Record is an abstract class for manipulating DublinCore
+    metadata. The Dublin Core is a small set of metadata elements for
+    describing information resources. For more information on embedding
+    DublinCore in HTML see RFC 2731 <http://www.ietf.org/rfc/rfc2731> or
+    <http://www.dublincore.org/documents/dces/>
+
+METHODS
+  new()
+    The constructor. Takes no arguments.
+
+        $record = DublinCore::Record->new();
+
+  add( @elements )
+    Adds valid DublinCore::Element objects to the record.
+
+  remove( @elements )
+    Removes valid DublinCore::Element object from the record.
+
+  element()
+    This method will return a relevant DublinCore::Element object. When
+    called in a scalar context element() will return the first relevant
+    element found, and when called in a list context it will return all the
+    relevant elements (since Dublin Core elements are repeatable).
+
+        ## retrieve first title element
+        my $element = $record->element( 'Title' );
+        my $title = $element->content();
+    
+        ## shorthand object chaining to extract element content
+        my $title = $record->element( 'Title' )->content();
+    
+        ## retrieve all creator elements
+        @creators = $record->element( 'Creator' );
+
+    You can also retrieve qualified elements in a similar fashion.
+
+        my $date = $record->element( 'Date.created' )->content();
+
+    In order to fascilitate chaining element() will return an empty
+    DublinCore::Element object when the requested element does not exist.
+    You can check if you're getting an empty empty back by using the
+    is_empty() method.
+
+        if( $record->element( 'title' )->is_empty ) {
+            # no title
+        }
+
+  elements()
+    Returns all the Dublin Core elements found as DublinCore::Element
+    objects which you can then manipulate further.
+
+        foreach my $element ( $record->elements() ) {
+            print "name=", $element->name(), "\n";
+            print "content=", $element->content(), "\n";
+        }
+
+  title()
+    Returns a DublinCore::Element object for the title element. You can then
+    retrieve content, qualifier, scheme, lang attributes like so.
+
+        my $title = $record->title();
+        print "content:   ", $title->content(), "\n";
+        print "qualifier: ", $title->qualifier(), "\n";
+        print "scheme:    ", $title->scheme(), "\n";
+        print "language:  ", $title->language(), "\n";
+
+    Since there can be multiple instances of a particular element type
+    (title, creator, subject, etc) you can retrieve multiple title elements
+    by calling title() in a list context.
+
+        my @titles = $record->title();
+        foreach my $title ( @titles ) {
+            print "title: ", $title->content(), "\n";
+        }
+
+  creator()
+    Retrieve creator information in the same manner as title().
+
+  subject()
+    Retrieve subject information in the same manner as title().
+
+  description()
+    Retrieve description information in the same manner as title().
+
+  publisher()
+    Retrieve publisher information in the same manner as title().
+
+  contributor()
+    Retrieve contributor information in the same manner as title().
+
+  date()
+    Retrieve date information in the same manner as title().
+
+  type()
+    Retrieve type information in the same manner as title().
+
+  format()
+    Retrieve format information in the same manner as title().
+
+  identifier()
+    Retrieve identifier information in the same manner as title().
+
+  source()
+    Retrieve source information in the same manner as title().
+
+  language()
+    Retrieve language information in the same manner as title().
+
+  relation()
+    Retrieve relation information in the same manner as title().
+
+  coverage()
+    Retrieve coverage information in the same manner as title().
+
+  rights()
+    Retrieve rights information in the same manner as title().
+
+SEE ALSO
+    * DublinCore::Element
+    * Dublin Core <http://www.dublincore.org/>
+    * RFC 2731 <http://www.ietf.org/rfc/rfc2731>
+    * perl4lib <http://www.rice.edu/perl4lib>
+
+AUTHOR
+    * Ed Summers <ehs at pobox.com>
+    * Brian Cassidy <bricas at cpan.org>
+
+COPYRIGHT AND LICENSE
+    Copyright 2007 by Ed Summers, Brian Cassidy
+
+    This library is free software; you can redistribute it and/or modify it
+    under the same terms as Perl itself.
+

Added: branches/upstream/libdublincore-record-perl/current/lib/DublinCore/Element.pm
URL: http://svn.debian.org/wsvn/branches/upstream/libdublincore-record-perl/current/lib/DublinCore/Element.pm?rev=9713&op=file
==============================================================================
--- branches/upstream/libdublincore-record-perl/current/lib/DublinCore/Element.pm (added)
+++ branches/upstream/libdublincore-record-perl/current/lib/DublinCore/Element.pm Sat Nov 24 16:49:48 2007
@@ -1,0 +1,132 @@
+package DublinCore::Element;
+
+=head1 NAME
+
+DublinCore::Element - Class for representing a Dublin Core element
+
+=head1 SYNOPSIS
+
+    my $element = DublinCore::Element->new( \%info );
+    print "content:   ", $element->content(), "\n";
+    print "qualifier: ", $element->qualifier(), "\n";
+    print "language:  ", $element->language(), "\n";
+    print "scheme:    ", $element->scheme(), "\n";
+
+=head1 DESCRIPTION
+
+DublinCore::Record methods such as element(), elements(), title(), etc return
+DublinCore::Element objects as their result. These can be queried 
+further to extract an elements content, qualifier, language, and schema. For a 
+definition of these attributes please see RFC 2731 and 
+L<http://www.dublincore.org>.
+
+=cut
+
+use base qw( Class::Accessor );
+
+use strict;
+use warnings;
+
+our $VERSION = '0.03';
+
+__PACKAGE__->mk_accessors( qw( name qualifier content language scheme is_empty ) );
+
+=head1 METHODS
+
+=head2 new()
+
+The constructor. Take a hashref of input arguments.
+
+=cut
+
+sub new {
+    my $class = shift;
+    my $self  = $class->SUPER::new( @_ );
+
+    bless $self, $class;
+
+    $self->is_empty( 1 );
+
+    return $self;
+}
+
+=head2 content()
+
+Gets and sets the content of the element.
+    
+    ## extract the element
+    my $title = $record->element( 'title' );
+    print $title->content();
+
+    ## or you can chain them together
+    print $record->element( 'title' )->content();
+
+=head2 qualifier()
+
+Gets and sets the qualifier used by the element.
+
+=head2 language()
+
+Gets and sets the language of the content in element.
+
+=head2 scheme()
+
+Gets and sets the scheme used by the element. 
+
+=head2 name()
+
+Gets and sets the element name (title, creator, date, etc).
+
+=head2 is_empty()
+
+Gets and sets the "empty" status of an element. This is useful when
+using DublinCore::Record's element() method.
+
+To see if the record has an creator elements:
+
+    if( $record->element( 'creator' )->is_empty ) {
+        # no creators
+    }
+
+
+=head2 set()
+
+This function overrides the default set() behavior in order to remove the
+is_empty flag.
+
+=cut
+
+sub set {
+    my $self = shift;
+    $self->SUPER::set( 'is_empty' => 0 ) if $self->is_empty;
+    $self->SUPER::set( @_ );
+}
+
+=head1 SEE ALSO
+
+=over 4 
+
+=item * DublinCore::Record
+
+=back
+
+=head1 AUTHOR
+
+=over 4
+
+=item * Ed Summers E<lt>ehs at pobox.comE<gt>
+
+=item * Brian Cassidy E<lt>bricas at cpan.orgE<gt>
+
+=back
+
+=head1 COPYRIGHT AND LICENSE
+
+Copyright 2007 by Ed Summers, Brian Cassidy
+
+This library is free software; you can redistribute it and/or modify
+it under the same terms as Perl itself. 
+
+=cut
+
+1;

Added: branches/upstream/libdublincore-record-perl/current/lib/DublinCore/Record.pm
URL: http://svn.debian.org/wsvn/branches/upstream/libdublincore-record-perl/current/lib/DublinCore/Record.pm?rev=9713&op=file
==============================================================================
--- branches/upstream/libdublincore-record-perl/current/lib/DublinCore/Record.pm (added)
+++ branches/upstream/libdublincore-record-perl/current/lib/DublinCore/Record.pm Sat Nov 24 16:49:48 2007
@@ -1,0 +1,426 @@
+package DublinCore::Record;
+
+=head1 NAME
+
+DublinCore::Record - Container for Dublin Core metadata elements
+
+=head1 SYNOPSIS
+
+    use DublinCore::Record;
+    
+    my $record = DublinCore::Record->new();
+    
+    # later ...
+
+    # print the title
+    print $record->element( 'title' )->content;
+
+    ## list context will retrieve all of a particular element 
+    foreach my $element ( $record->element( 'Creator' ) ) {
+        print "creator: ", $element->content(), "\n";
+    }
+
+    ## qualified dublin core
+    my $creation = $record->element( 'Date.created' )->content();
+
+=head1 DESCRIPTION
+
+DublinCore::Record is an abstract class for manipulating DublinCore metadata.
+The Dublin Core is a small set of metadata elements for describing information
+resources. For more information on embedding DublinCore in HTML see RFC 2731 
+L<http://www.ietf.org/rfc/rfc2731> or L<http://www.dublincore.org/documents/dces/>
+
+=cut
+
+use strict;
+use warnings;
+
+use Carp qw( croak );
+use DublinCore::Element;
+
+our $VERSION        = '0.03';
+our @VALID_ELEMENTS = qw(
+    title
+    creator
+    subject
+    description
+    publisher
+    contributor
+    date
+    type
+    format
+    identifier
+    source
+    language
+    relation
+    coverage
+    rights
+);
+
+=head1 METHODS
+
+=head2 new()
+
+The constructor. Takes no arguments.
+
+    $record = DublinCore::Record->new();
+
+=cut 
+
+sub new {
+    my $class = shift;
+    my $self  = {};
+
+    $self->{ "DC_$_" } = [] for @VALID_ELEMENTS;
+
+    bless $self, $class;
+
+    $self->add( @_ );
+
+    return $self;
+}
+
+=head2 add( @elements )
+
+Adds valid DublinCore::Element objects to the record.
+
+=cut
+
+sub add {
+    my $self = shift;
+
+    for my $element ( @_ ) {
+        push @{ $self->{ 'DC_' . lc( $element->name ) } }, $element;
+    }
+}
+
+=head2 remove( @elements )
+
+Removes valid DublinCore::Element object from the record.
+
+=cut
+
+sub remove {
+    my $self = shift;
+
+    for my $element ( @_ ) {
+        my $name = 'DC_' . lc( $element->name );
+        $self->{ $name } = [
+            grep { $element ne $_ } @{ $self->{ $name } }
+        ];
+    }
+}
+
+=head2 element() 
+
+This method will return a relevant DublinCore::Element object. When 
+called in a scalar context element() will return the first relevant element
+found, and when called in a list context it will return all the relevant 
+elements (since Dublin Core elements are repeatable).
+
+    ## retrieve first title element
+    my $element = $record->element( 'Title' );
+    my $title = $element->content();
+    
+    ## shorthand object chaining to extract element content
+    my $title = $record->element( 'Title' )->content();
+    
+    ## retrieve all creator elements
+    @creators = $record->element( 'Creator' );
+
+You can also retrieve qualified elements in a similar fashion. 
+
+    my $date = $record->element( 'Date.created' )->content();
+
+In order to fascilitate chaining element() will return an empty 
+DublinCore::Element object when the requested element does not
+exist. You can check if you're getting an empty empty back by using
+the is_empty() method.
+
+    if( $record->element( 'title' )->is_empty ) {
+        # no title
+    }
+
+=cut
+
+sub element {
+    my ( $self, $name ) = @_;
+    $name = lc( $name );
+
+    ## must be a valid DC element (with additional qualifier)
+    croak( "invalid Dublin Core element: $name" ) 
+        if ! grep { $name =~ /^$_/ } @VALID_ELEMENTS;
+
+    ## extract qualifier if present
+    my $qualifier; 
+    ( $name, $qualifier ) = split /\./, $name;
+
+    my @elements = ();
+    foreach my $element ( @{ $self->{ "DC_$name" } } ) {
+        if ( $qualifier and $element->qualifier() =~ /$qualifier/i ) {
+            push( @elements, $element );
+        } elsif ( !$qualifier ) {
+            push( @elements, $element );
+        }
+    }
+
+    if ( wantarray ) { return @elements };
+    return( $elements[ 0 ] ) if $elements[ 0 ];
+
+    ## otherwise return an empty element object to fascilitate
+    ## chaining when the element doesn't exist :
+    ## $dc->element( 'Title' )->content().
+
+    return( DublinCore::Element->new() );
+}
+
+=head2 elements()
+
+Returns all the Dublin Core elements found as DublinCore::Element
+objects which you can then manipulate further.
+
+    foreach my $element ( $record->elements() ) {
+        print "name=", $element->name(), "\n";
+        print "content=", $element->content(), "\n";
+    }
+
+=cut 
+
+sub elements {
+    my $self = shift;
+    my @elements = ();
+    foreach my $type ( @VALID_ELEMENTS ) {
+        push( @elements, @{ $self->{ "DC_$type" } } );
+    }
+    return( @elements );
+}
+
+=head2 title()
+
+Returns a DublinCore::Element object for the title element. You can then 
+retrieve content, qualifier, scheme, lang attributes like so. 
+
+    my $title = $record->title();
+    print "content:   ", $title->content(), "\n";
+    print "qualifier: ", $title->qualifier(), "\n";
+    print "scheme:    ", $title->scheme(), "\n";
+    print "language:  ", $title->language(), "\n";
+
+Since there can be multiple instances of a particular element type (title,
+creator, subject, etc) you can retrieve multiple title elements by calling
+title() in a list context.
+
+    my @titles = $record->title();
+    foreach my $title ( @titles ) {
+        print "title: ", $title->content(), "\n";
+    }
+
+=cut
+
+sub title {
+    my $self = shift;
+    return( $self->_getElement( 'title', wantarray ) );
+}
+
+=head2 creator()
+
+Retrieve creator information in the same manner as title().
+
+=cut
+
+sub creator {
+    my $self = shift;
+    return( $self->_getElement( 'creator', wantarray ) );
+}
+
+=head2 subject()
+
+Retrieve subject information in the same manner as title().
+
+=cut
+
+sub subject {
+    my $self = shift;
+    return( $self->_getElement( 'subject', wantarray ) );
+}
+
+=head2 description()
+
+Retrieve description information in the same manner as title().
+
+=cut
+
+sub description {
+    my $self = shift;
+    return( $self->_getElement( 'description', wantarray ) );
+}
+
+=head2 publisher()
+
+Retrieve publisher  information in the same manner as title().
+
+=cut
+
+sub publisher {
+    my $self = shift;
+    return( $self->_getElement( 'publisher', wantarray ) );
+}
+
+=head2 contributor()
+
+Retrieve contributor information in the same manner as title().
+
+=cut
+
+sub contributor {
+    my $self = shift;
+    return( $self->_getElement( 'contributor', wantarray ) );
+}
+
+=head2 date()
+
+Retrieve date information in the same manner as title().
+
+=cut
+
+sub date {
+    my $self = shift;
+    return( $self->_getElement( 'date', wantarray ) );
+}
+
+=head2 type()
+
+Retrieve type information in the same manner as title().
+
+=cut
+
+sub type {
+    my $self = shift;
+    return( $self->_getElement( 'type', wantarray ) );
+}
+
+=head2 format()
+
+Retrieve format information in the same manner as title().
+
+=cut
+
+sub format {
+    my $self = shift;
+    return( $self->_getElement( 'format', wantarray ) );
+}
+
+=head2 identifier()
+
+Retrieve identifier information in the same manner as title().
+
+=cut
+
+sub identifier {
+    my $self = shift;
+    return( $self->_getElement( 'identifier', wantarray ) );
+}
+
+=head2 source()
+
+Retrieve source information in the same manner as title().
+
+=cut
+
+sub source {
+    my $self = shift;
+    return( $self->_getElement( 'source', wantarray ) );
+}
+
+=head2 language()
+
+Retrieve language information in the same manner as title().
+
+=cut
+
+sub language {
+    my $self = shift;
+    return( $self->_getElement( 'language', wantarray ) );
+}
+
+=head2 relation()
+
+Retrieve relation information in the same manner as title().
+
+=cut
+
+sub relation {
+    my $self = shift;
+    return( $self->_getElement( 'relation', wantarray ) );
+}
+
+=head2 coverage()
+
+Retrieve coverage information in the same manner as title().
+
+=cut
+
+sub coverage {
+    my $self = shift;
+    return( $self->_getElement( 'coverage', wantarray ) );
+}
+
+=head2 rights()
+
+Retrieve rights information in the same manner as title().
+
+=cut
+
+sub rights {
+    my $self = shift;
+    return( $self->_getElement( 'rights', wantarray ) );
+}
+
+sub _getElement {
+    my ( $self, $element, $wantarray ) = @_;
+    my $contents = $self->{ "DC_$element" };
+
+    if ( $wantarray ) {
+        return( @$contents );
+    }
+    elsif ( scalar( @$contents ) > 0 ) {
+        return( $contents->[ 0 ] );
+    }
+
+    return DublinCore::Element->new();
+}
+
+=head1 SEE ALSO
+
+=over 4 
+
+=item * DublinCore::Element
+
+=item * Dublin Core L<http://www.dublincore.org/>
+
+=item * RFC 2731 L<http://www.ietf.org/rfc/rfc2731>
+
+=item * perl4lib L<http://www.rice.edu/perl4lib>
+
+=back
+
+=head1 AUTHOR
+
+=over 4
+
+=item * Ed Summers E<lt>ehs at pobox.comE<gt>
+
+=item * Brian Cassidy E<lt>bricas at cpan.orgE<gt>
+
+=back
+
+=head1 COPYRIGHT AND LICENSE
+
+Copyright 2007 by Ed Summers, Brian Cassidy
+
+This library is free software; you can redistribute it and/or modify
+it under the same terms as Perl itself. 
+
+=cut
+
+1;

Added: branches/upstream/libdublincore-record-perl/current/t/01-use.t
URL: http://svn.debian.org/wsvn/branches/upstream/libdublincore-record-perl/current/t/01-use.t?rev=9713&op=file
==============================================================================
--- branches/upstream/libdublincore-record-perl/current/t/01-use.t (added)
+++ branches/upstream/libdublincore-record-perl/current/t/01-use.t Sat Nov 24 16:49:48 2007
@@ -1,0 +1,12 @@
+use Test::More tests => 4;
+use strict;
+use warnings;
+
+use_ok( 'DublinCore::Record' );
+use_ok( 'DublinCore::Element' );
+
+my $record = DublinCore::Record->new;
+isa_ok( $record, 'DublinCore::Record' );
+
+my $element = DublinCore::Element->new;
+isa_ok( $element, 'DublinCore::Element' );

Added: branches/upstream/libdublincore-record-perl/current/t/10-empty.t
URL: http://svn.debian.org/wsvn/branches/upstream/libdublincore-record-perl/current/t/10-empty.t?rev=9713&op=file
==============================================================================
--- branches/upstream/libdublincore-record-perl/current/t/10-empty.t (added)
+++ branches/upstream/libdublincore-record-perl/current/t/10-empty.t Sat Nov 24 16:49:48 2007
@@ -1,0 +1,14 @@
+use strict;
+use warnings;
+use Test::More tests => 5; 
+
+## make sure that elements appear empty 
+
+use_ok( 'DublinCore::Record' );
+use_ok( 'DublinCore::Element' );
+
+my $record = DublinCore::Record->new();
+isa_ok( $record, 'DublinCore::Record' );
+my $element = $record->element( 'title' );
+isa_ok( $element, 'DublinCore::Element' );
+ok( $element->is_empty(), 'is_empty()' );

Added: branches/upstream/libdublincore-record-perl/current/t/11-constructor.t
URL: http://svn.debian.org/wsvn/branches/upstream/libdublincore-record-perl/current/t/11-constructor.t?rev=9713&op=file
==============================================================================
--- branches/upstream/libdublincore-record-perl/current/t/11-constructor.t (added)
+++ branches/upstream/libdublincore-record-perl/current/t/11-constructor.t Sat Nov 24 16:49:48 2007
@@ -1,0 +1,69 @@
+use strict;
+use warnings;
+use Test::More tests => 64; 
+
+## use the Element constructor to create an element 
+## for each type of element, and make sure that they're 
+## available in the record afterwards 
+
+use_ok( 'DublinCore::Record' );
+use_ok( 'DublinCore::Element' );
+
+my $record = DublinCore::Record->new();
+
+foreach my $element ( @DublinCore::Record::VALID_ELEMENTS ) {
+    my $e = DublinCore::Element->new( {
+        name        => $element, 
+        qualifier   => "$element-qualifier",
+        content     => "$element-content",
+        language    => "$element-language",
+        scheme      => "$element-scheme"
+    } );
+    $record->add($e);
+}
+
+foreach my $element ( @DublinCore::Record::VALID_ELEMENTS ) {
+    my $e = $record->$element();
+    foreach my $attrib ( qw( qualifier content language scheme ) ) {
+        is( $e->$attrib(), "$element-$attrib", "$element : $attrib" ); 
+    }
+}
+
+# make sure we get the same results with elements()
+
+my @expected_elements = map +{
+    name      => $_,
+    qualifier => "$_-qualifier",
+    content   => "$_-content",
+    language  => "$_-language",
+    scheme    => "$_-scheme"
+}, sort @DublinCore::Record::VALID_ELEMENTS;
+
+my @got_elements = map +{
+    name      => $_->name,
+    qualifier => $_->qualifier,
+    content   => $_->content,
+    language  => $_->language,
+    scheme    => $_->scheme
+}, sort { $a->name cmp $b->name } $record->elements;
+
+is_deeply( \@got_elements, \@expected_elements, 'elements()' );
+
+# test removing
+
+my $removed = $expected_elements[ 0 ];
+ at expected_elements = @expected_elements[ 1..$#expected_elements ];
+my $name    = $removed->{ name };
+my $remove  = $record->$name;
+
+$record->remove( $remove );
+
+ at got_elements = map +{
+    name      => $_->name,
+    qualifier => $_->qualifier,
+    content   => $_->content,
+    language  => $_->language,
+    scheme    => $_->scheme
+}, sort { $a->name cmp $b->name } $record->elements;
+
+is_deeply( \@got_elements, \@expected_elements, 'remove()' );

Added: branches/upstream/libdublincore-record-perl/current/t/12-setters.t
URL: http://svn.debian.org/wsvn/branches/upstream/libdublincore-record-perl/current/t/12-setters.t?rev=9713&op=file
==============================================================================
--- branches/upstream/libdublincore-record-perl/current/t/12-setters.t (added)
+++ branches/upstream/libdublincore-record-perl/current/t/12-setters.t Sat Nov 24 16:49:48 2007
@@ -1,0 +1,27 @@
+use strict;
+use warnings;
+use Test::More tests => 62; 
+
+## test the setter methods explicitly
+
+use_ok( 'DublinCore::Record' );
+use_ok( 'DublinCore::Element' );
+
+my $record = DublinCore::Record->new();
+
+foreach my $element ( @DublinCore::Record::VALID_ELEMENTS ) {
+    my $e = DublinCore::Element->new();
+    $e->name( $element );
+    foreach my $attrib ( qw( qualifier content language scheme ) ) {
+        $e->$attrib( "$element-$attrib" );
+    }
+    $record->add($e);
+}
+
+foreach my $element ( @DublinCore::Record::VALID_ELEMENTS ) {
+    my $e = $record->$element();
+    foreach my $attrib ( qw( qualifier content language scheme ) ) {
+        is( $e->$attrib(), "$element-$attrib", "$element : $attrib" ); 
+    }
+}
+

Added: branches/upstream/libdublincore-record-perl/current/t/98-pod_coverage.t
URL: http://svn.debian.org/wsvn/branches/upstream/libdublincore-record-perl/current/t/98-pod_coverage.t?rev=9713&op=file
==============================================================================
--- branches/upstream/libdublincore-record-perl/current/t/98-pod_coverage.t (added)
+++ branches/upstream/libdublincore-record-perl/current/t/98-pod_coverage.t Sat Nov 24 16:49:48 2007
@@ -1,0 +1,4 @@
+use Test::More;
+eval "use Test::Pod::Coverage 1.00";
+plan skip_all => "Test::Pod::Coverage 1.00 required for testing POD coverage" if $@;
+all_pod_coverage_ok();

Added: branches/upstream/libdublincore-record-perl/current/t/99-pod.t
URL: http://svn.debian.org/wsvn/branches/upstream/libdublincore-record-perl/current/t/99-pod.t?rev=9713&op=file
==============================================================================
--- branches/upstream/libdublincore-record-perl/current/t/99-pod.t (added)
+++ branches/upstream/libdublincore-record-perl/current/t/99-pod.t Sat Nov 24 16:49:48 2007
@@ -1,0 +1,8 @@
+use Test::More;
+
+use strict;
+use warnings;
+
+eval 'use Test::Pod 1.00';
+plan skip_all => 'Test::Pod 1.00 required for testing POD' if $@;
+all_pod_files_ok();




More information about the Pkg-perl-cvs-commits mailing list