@@ -1,5 +1,31 @@
Revision history for Perl extension Text::Delimited.
+2.10 2014/03/26
+
+ Including credit for the RT on the 2.00 change info
+
+2.09 2014/03/07
+
+ Now using warnings.
+
+2.08 2014/03/03
+
+ Automated build, now properly constructing meta data.
+
+ Corrected POD errors
+
+ Adding a POD test
+
+2.07 2014/02/24
+
+ Meta information updated
+
+ Added LICENSE file to distribution
+
+ Tests updated to Test::Simple.
+
+ Version leap to match automated build numbers.
+
2.00 2006/07/31
Provided non-capitalized method names to match Perl style as suggested
@@ -12,6 +38,8 @@ Revision history for Perl extension Text::Delimited.
Added initialization checks on exported methods to avoid superfluous
warnings generated when -w is used.
+ Handle blank lines at the end of a file gracefully as per RT #12006
+
Added credit to PetBlvd (http://www.petblvd.com) for the sponsorship
of further development.
@@ -0,0 +1,201 @@
+ The Artistic License 2.0
+
+ Copyright (c) 2000-2006, The Perl Foundation.
+
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+Preamble
+
+This license establishes the terms under which a given free software
+Package may be copied, modified, distributed, and/or redistributed.
+The intent is that the Copyright Holder maintains some artistic
+control over the development of that Package while still keeping the
+Package available as open source and free software.
+
+You are always permitted to make arrangements wholly outside of this
+license directly with the Copyright Holder of a given Package. If the
+terms of this license do not permit the full use that you propose to
+make of the Package, you should contact the Copyright Holder and seek
+a different licensing arrangement.
+
+Definitions
+
+ "Copyright Holder" means the individual(s) or organization(s)
+ named in the copyright notice for the entire Package.
+
+ "Contributor" means any party that has contributed code or other
+ material to the Package, in accordance with the Copyright Holder's
+ procedures.
+
+ "You" and "your" means any person who would like to copy,
+ distribute, or modify the Package.
+
+ "Package" means the collection of files distributed by the
+ Copyright Holder, and derivatives of that collection and/or of
+ those files. A given Package may consist of either the Standard
+ Version, or a Modified Version.
+
+ "Distribute" means providing a copy of the Package or making it
+ accessible to anyone else, or in the case of a company or
+ organization, to others outside of your company or organization.
+
+ "Distributor Fee" means any fee that you charge for Distributing
+ this Package or providing support for this Package to another
+ party. It does not mean licensing fees.
+
+ "Standard Version" refers to the Package if it has not been
+ modified, or has been modified only in ways explicitly requested
+ by the Copyright Holder.
+
+ "Modified Version" means the Package, if it has been changed, and
+ such changes were not explicitly requested by the Copyright
+ Holder.
+
+ "Original License" means this Artistic License as Distributed with
+ the Standard Version of the Package, in its current version or as
+ it may be modified by The Perl Foundation in the future.
+
+ "Source" form means the source code, documentation source, and
+ configuration files for the Package.
+
+ "Compiled" form means the compiled bytecode, object code, binary,
+ or any other form resulting from mechanical transformation or
+ translation of the Source form.
+
+
+Permission for Use and Modification Without Distribution
+
+(1) You are permitted to use the Standard Version and create and use
+Modified Versions for any purpose without restriction, provided that
+you do not Distribute the Modified Version.
+
+
+Permissions for Redistribution of the Standard Version
+
+(2) You may Distribute verbatim copies of the Source form of the
+Standard Version of this Package in any medium without restriction,
+either gratis or for a Distributor Fee, provided that you duplicate
+all of the original copyright notices and associated disclaimers. At
+your discretion, such verbatim copies may or may not include a
+Compiled form of the Package.
+
+(3) You may apply any bug fixes, portability changes, and other
+modifications made available from the Copyright Holder. The resulting
+Package will still be considered the Standard Version, and as such
+will be subject to the Original License.
+
+
+Distribution of Modified Versions of the Package as Source
+
+(4) You may Distribute your Modified Version as Source (either gratis
+or for a Distributor Fee, and with or without a Compiled form of the
+Modified Version) provided that you clearly document how it differs
+from the Standard Version, including, but not limited to, documenting
+any non-standard features, executables, or modules, and provided that
+you do at least ONE of the following:
+
+ (a) make the Modified Version available to the Copyright Holder
+ of the Standard Version, under the Original License, so that the
+ Copyright Holder may include your modifications in the Standard
+ Version.
+
+ (b) ensure that installation of your Modified Version does not
+ prevent the user installing or running the Standard Version. In
+ addition, the Modified Version must bear a name that is different
+ from the name of the Standard Version.
+
+ (c) allow anyone who receives a copy of the Modified Version to
+ make the Source form of the Modified Version available to others
+ under
+
+ (i) the Original License or
+
+ (ii) a license that permits the licensee to freely copy,
+ modify and redistribute the Modified Version using the same
+ licensing terms that apply to the copy that the licensee
+ received, and requires that the Source form of the Modified
+ Version, and of any works derived from it, be made freely
+ available in that license fees are prohibited but Distributor
+ Fees are allowed.
+
+
+Distribution of Compiled Forms of the Standard Version
+or Modified Versions without the Source
+
+(5) You may Distribute Compiled forms of the Standard Version without
+the Source, provided that you include complete instructions on how to
+get the Source of the Standard Version. Such instructions must be
+valid at the time of your distribution. If these instructions, at any
+time while you are carrying out such distribution, become invalid, you
+must provide new instructions on demand or cease further distribution.
+If you provide valid instructions or cease distribution within thirty
+days after you become aware that the instructions are invalid, then
+you do not forfeit any of your rights under this license.
+
+(6) You may Distribute a Modified Version in Compiled form without
+the Source, provided that you comply with Section 4 with respect to
+the Source of the Modified Version.
+
+
+Aggregating or Linking the Package
+
+(7) You may aggregate the Package (either the Standard Version or
+Modified Version) with other packages and Distribute the resulting
+aggregation provided that you do not charge a licensing fee for the
+Package. Distributor Fees are permitted, and licensing fees for other
+components in the aggregation are permitted. The terms of this license
+apply to the use and Distribution of the Standard or Modified Versions
+as included in the aggregation.
+
+(8) You are permitted to link Modified and Standard Versions with
+other works, to embed the Package in a larger work of your own, or to
+build stand-alone binary or bytecode versions of applications that
+include the Package, and Distribute the result without restriction,
+provided the result does not expose a direct interface to the Package.
+
+
+Items That are Not Considered Part of a Modified Version
+
+(9) Works (including, but not limited to, modules and scripts) that
+merely extend or make use of the Package, do not, by themselves, cause
+the Package to be a Modified Version. In addition, such works are not
+considered parts of the Package itself, and are not subject to the
+terms of this license.
+
+
+General Provisions
+
+(10) Any use, modification, and distribution of the Standard or
+Modified Versions is governed by this Artistic License. By using,
+modifying or distributing the Package, you accept this license. Do not
+use, modify, or distribute the Package, if you do not accept this
+license.
+
+(11) If your Modified Version has been derived from a Modified
+Version made by someone other than you, you are nevertheless required
+to ensure that your Modified Version complies with the requirements of
+this license.
+
+(12) This license does not grant you the right to use any trademark,
+service mark, tradename, or logo of the Copyright Holder.
+
+(13) This license includes the non-exclusive, worldwide,
+free-of-charge patent license to make, have made, use, offer to sell,
+sell, import and otherwise transfer the Package with respect to any
+patent claims licensable by the Copyright Holder that are necessarily
+infringed by the Package. If you institute patent litigation
+(including a cross-claim or counterclaim) against any party alleging
+that the Package constitutes direct or contributory patent
+infringement, then this Artistic License to you shall terminate on the
+date that such litigation is filed.
+
+(14) Disclaimer of Warranty:
+THE PACKAGE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS "AS
+IS' AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. THE IMPLIED
+WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR
+NON-INFRINGEMENT ARE DISCLAIMED TO THE EXTENT PERMITTED BY YOUR LOCAL
+LAW. UNLESS REQUIRED BY LAW, NO COPYRIGHT HOLDER OR CONTRIBUTOR WILL
+BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
+DAMAGES ARISING IN ANY WAY OUT OF THE USE OF THE PACKAGE, EVEN IF
+ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
@@ -1,11 +1,13 @@
Changes
+LICENSE
lib/Text/Delimited.pm
Makefile.PL
MANIFEST
README
+t/00-pod.t
t/01-load.t
t/02-historic.t
t/03-parse.t
t/test.txt
-
-META.yml Module meta-data (added by MakeMaker)
+META.yml Module YAML meta-data (added by MakeMaker)
+META.json Module JSON meta-data (added by MakeMaker)
@@ -0,0 +1,61 @@
+{
+ "abstract" : "Delimited Text Processing",
+ "author" : [
+ "Phil Pollard <bennie@cpan.org>"
+ ],
+ "dynamic_config" : 1,
+ "generated_by" : "ExtUtils::MakeMaker version 6.92, CPAN::Meta::Converter version 2.132830",
+ "license" : [
+ "artistic_2"
+ ],
+ "meta-spec" : {
+ "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec",
+ "version" : "2"
+ },
+ "name" : "Text-Delimited",
+ "no_index" : {
+ "directory" : [
+ "t",
+ "inc",
+ "t"
+ ]
+ },
+ "prereqs" : {
+ "build" : {
+ "requires" : {
+ "ExtUtils::MakeMaker" : "0"
+ }
+ },
+ "configure" : {
+ "requires" : {
+ "ExtUtils::MakeMaker" : "0"
+ }
+ },
+ "runtime" : {
+ "requires" : {
+ "Symbol" : "0",
+ "Test::More" : "0",
+ "Test::Simple" : "0",
+ "perl" : "5.006001"
+ }
+ }
+ },
+ "provides" : {
+ "Text::Delimited" : {
+ "file" : "lib/Text/Delimited.pm",
+ "version" : "2.10"
+ }
+ },
+ "release_status" : "stable",
+ "resources" : {
+ "bugtracker" : {
+ "web" : "https://rt.cpan.org/Dist/Display.html?Name=Text-Delimited"
+ },
+ "repository" : {
+ "type" : "git",
+ "url" : "git://github.com/bennie/perl-Text-Delimited.git",
+ "web" : "http://github.com/bennie/perl-Text-Delimited"
+ }
+ },
+ "version" : "2.10"
+}
@@ -1,10 +1,33 @@
-# http://module-build.sourceforge.net/META-spec.html
-#XXXXXXX This is a prototype!!! It will change in the future!!! XXXXX#
-name: Text-Delimited
-version: 2.00
-version_from: lib/Text/Delimited.pm
-installdirs: site
+---
+abstract: 'Delimited Text Processing'
+author:
+ - 'Phil Pollard <bennie@cpan.org>'
+build_requires:
+ ExtUtils::MakeMaker: 0
+configure_requires:
+ ExtUtils::MakeMaker: 0
+dynamic_config: 1
+generated_by: 'ExtUtils::MakeMaker version 6.92, CPAN::Meta::Converter version 2.132830'
+license: artistic_2
+meta-spec:
+ url: http://module-build.sourceforge.net/META-spec-v1.4.html
+ version: 1.4
+name: Text-Delimited
+no_index:
+ directory:
+ - t
+ - inc
+ - t
+provides:
+ Text::Delimited:
+ file: lib/Text/Delimited.pm
+ version: 2.10
requires:
-
-distribution_type: module
-generated_by: ExtUtils::MakeMaker version 6.17
+ Symbol: 0
+ Test::More: 0
+ Test::Simple: 0
+ perl: 5.006001
+resources:
+ bugtracker: https://rt.cpan.org/Dist/Display.html?Name=Text-Delimited
+ repository: git://github.com/bennie/perl-Text-Delimited.git
+version: 2.10
@@ -1,9 +1,51 @@
use ExtUtils::MakeMaker;
WriteMakefile(
- 'NAME' => 'Text::Delimited',
- 'VERSION_FROM' => 'lib/Text/Delimited.pm',
- ($] >= 5.005 ?
- (ABSTRACT_FROM => 'lib/Text/Delimited.pm',
- AUTHOR => 'Phillip Pollard <bennie@cpan.org>') : ()),
-);
+ ABSTRACT => "Delimited Text Processing",
+ AUTHOR => 'Phil Pollard <bennie@cpan.org>',
+ LICENSE => 'artistic_2',
+ NAME => 'Text::Delimited',
+ VERSION => '2.10',
+
+ PREREQ_PM => {
+ 'Test::More' => 0,
+ 'Test::Simple' => '0',
+ 'Symbol' => 0
+ },
+
+ ( $ExtUtils::MakeMaker::VERSION < 6.46
+ ? ()
+ : ( META_MERGE => {
+ 'meta-spec' => { version => 2 },
+ no_index => {directory => [qw/t/]},
+ provides =>
+
+ {
+ 'Text::Delimited' => {
+ 'version' => '2.10',
+ 'file' => 'lib/Text/Delimited.pm'
+ }
+ },
+
+ release_status => 'stable',
+ resources => {
+ repository => {
+ type => 'git',
+ url => 'git://github.com/bennie/perl-Text-Delimited.git',
+ web => 'http://github.com/bennie/perl-Text-Delimited',
+ },
+ bugtracker => {
+ web => 'https://rt.cpan.org/Dist/Display.html?Name=Text-Delimited',
+ },
+
+ },
+ },
+ )
+ ),
+
+ ( $ExtUtils::MakeMaker::VERSION < 6.48
+ ? ()
+ : ( MIN_PERL_VERSION => '5.006001' )
+ )
+
+);
\ No newline at end of file
@@ -1,5 +1,5 @@
- Text::Delimited - Delimited Text Processing Module - v 2.00
+ Text::Delimited - Delimited Text Processing Module - 2.10
================================================================================
SYNOPSIS:
@@ -81,12 +81,12 @@ METHODS:
new([filename|filepointer],[enumerate])
- Creates a new Text::TabFile object. Takes optional parameter that is
+ Creates a new Text::Delimited object. Takes optional parameter that is
either a filename or a globbed filehandle. Files specified by filename
must already exist.
Can optionally take a second argument. If this argument evaluates to
- true, TabFile.pm will append a _NUM to the end of all fields with
+ true, Text::Delimited will append a _NUM to the end of all fields with
duplicate names. That is, if your header row contains 2 columns named
"NAME", one will be changed to NAME_1, the other to NAME_2.
@@ -97,7 +97,7 @@ METHODS:
succeeds.
Can optionally take a second argument. If this argument evaluates to
- true, TabFile.pm will append a _NUM to the end of all fields with
+ true, Text::Delimited will append a _NUM to the end of all fields with
duplicate names. That is, if your header row contains 2 columns named
"NAME", one will be changed to NAME_1, the other to NAME_2.
@@ -116,7 +116,7 @@ METHODS:
setmode(encoding)
- Set the given encoding scheme on the tabfile to allow for reading files
+ Set the given encoding scheme on the input file to allow for reading files
encoded in standards other than ASCII.
================================================================================
@@ -124,23 +124,23 @@ EXPORTABLE METHODS:
================================================================================
For convienience, the following methods are exportable. These are handy
- for quickly writing output tab files.
+ for quickly writing output delimited files.
- tj(@STUFF)
- Tab Join. Returns the given array as a string joined with tabs.
+ d_join(@STUFF)
+ Delimited Join. Returns the given array as a string joined with the
+ current delimiter.
- tl(@STUFF)
- Tab Line. Returns the given array as a string joined with tabs (with
- newline appended).
+ d_line(@STUFF)
+ Delimited Line. Returns the given array as a string joined with the
+ current delimiter and with newline appended.
================================================================================
AUTHORSHIP:
================================================================================
+ Text::Delimited 2.10 2014/03/26
- Text::Delimited v2.00 2006/07/31
-
- (c) 2004-2006, Phillip Pollard <bennie@cpan.org>
+ (c) 2004-2014, Phillip Pollard <bennie@cpan.org>
Released under the Perl Artistic License
I'd like to thank PetBlvd for sponsoring continued work on this module.
@@ -1,8 +1,8 @@
-=head1 NAME:
+=head1 NAME
Text::Delimited - Module for parsing delimited text files
-=head1 SYNOPSIS:
+=head1 SYNOPSIS
Text::Delimited provides a programattical interface to data stored in
delimited text files. It is dependant upon the first row of the text
@@ -13,7 +13,7 @@ After instancing, for each call to Read the next row's data is returned as
a hash reference. The individual elements are keyed by their corresonding
column headings.
-=head1 USAGE:
+=head1 USAGE
A short example of usage is detailed below. It opens a pipe delimited file
called 'infile.txt', reads through every row and prints out the data from
@@ -39,6 +39,8 @@ Other informational methods are also available. They are listed blow:
=head1 METHODS:
+=over
+
=item close()
Closes the file or connection, and cleans up various bits.
@@ -65,7 +67,7 @@ have been made, will be 0. After the first call to Read, this will return
=item new([filename|filepointer],[enumerate])
-Creates a new Text::TabFile object. Takes optional parameter that is either
+Creates a new Text::Delimited object. Takes optional parameter that is either
a filename or a globbed filehandle. Files specified by filename must
already exist.
@@ -99,29 +101,51 @@ This method returns undef if there is no more data to be read.
=item setmode(encoding)
-Set the given encoding scheme on the tabfile to allow for reading files
+Set the given encoding scheme on the input file to allow for reading files
encoded in standards other than ASCII.
-=head1 EXPORTABLE METHODS:
+=back
+
+=head1 EXPORTABLE METHODS
For convienience, the following methods are exportable. These are handy
-for quickly writing output tab files.
+for quickly writing output delimited files.
+
+=over
=item d_join(@STUFF)
-Delimited Join. Returns the given array as a string joined with the current delimiter.
+Delimited Join. Returns the given array as a string joined with the
+current delimiter.
=item d_line(@STUFF)
-Delimited Line. Returns the given array as a string joined with the current delimiter
-and with newline appended.
+Delimited Line. Returns the given array as a string joined with the
+current delimiter and with newline appended.
+
+=back
+
+=head1 BUGS AND SOURCE
+
+ Bug tracking for this module: https://rt.cpan.org/Dist/Display.html?Name=Text-Delimited
+
+ Source hosting: http://www.github.com/bennie/perl-Text-Delimited
+
+=head1 VERSION
+
+ Text::Delimited v2.10 (2014/03/26)
+
+=head1 COPYRIGHT
+
+ (c) 2004-2014, Phillip Pollard <bennie@cpan.org>
-=head1 AUTHORSHIP:
+=head1 LICENSE
- Text::Delimited v2.00 2006/06/31
+This source code is released under the "Perl Artistic License 2.0," the text of
+which is included in the LICENSE file of this distribution. It may also be
+reviewed here: http://opensource.org/licenses/artistic-license-2.0
- (c) 2004-2006, Phillip Pollard <bennie@cpan.org>
- Released under the Perl Artistic License
+=head1 AUTHORSHIP
I'd like to thank PetBlvd for sponsoring continued work on this module.
http://www.petblvd.com/
@@ -129,7 +153,7 @@ and with newline appended.
Additional contributions by Kristina Davis <krd@menagerie.tf>
Based upon the original module by Andrew Barnett <abarnett@hmsonline.com>
- Derived from Util::TabFile 1.9 2003/11/05
+ Originally derived from Util::TabFile 1.9 2003/11/05
With permission granted from Health Market Science, Inc.
=cut
@@ -138,10 +162,11 @@ package Text::Delimited;
use Symbol;
-use 5.006;
+use 5.006001;
+use warnings;
use strict;
-our $VERSION = '2.00';
+$Text::Delimited::VERSION = '2.10';
### Private mthods
@@ -0,0 +1,4 @@
+use Test::More;
+eval "use Test::Pod 1.00";
+plan skip_all => "Test::Pod 1.00 required for testing POD" if $@;
+all_pod_files_ok();
@@ -1,20 +1,8 @@
-# Before `make install' is performed this script should be runnable with
-# `make test'. After `make install' it should work as `perl test.pl'
+use Test::Simple tests => 2;
+use strict;
-#########################
-
-# change 'tests => 1' to 'tests => last_test_to_print';
-
-use Test;
-BEGIN { plan tests => 2 };
use Text::Delimited;
-ok(1); # If we made it this far, we're ok.
-
-#########################
-
-# Insert your test code below, the Test module is use()ed here so read
-# its man page ( perldoc Test ) for help writing this test script.
+ok(1);
my $t = new Text::Delimited;
ok(defined $t);
-
@@ -1,7 +1,5 @@
-use Test;
-BEGIN { plan tests => 27 };
-
-### Load the module
+use Test::Simple tests => 27;
+use strict;
use Text::Delimited;
ok(1);
@@ -1,7 +1,5 @@
-use Test;
-BEGIN { plan tests => 27 };
-
-### Load the module
+use Test::Simple tests => 27;
+use strict;
use Text::Delimited;
ok(1);