package Equinox::Migration::SimpleTagList;
+# Copyright 2009-2012, Equinox Software, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
use warnings;
use strict;
=head1 VERSION
-Version 1.000
+Version 1.001
=cut
-our $VERSION = '1.000';
+our $VERSION = '1.001';
=head1 SYNOPSIS
if ($args{file}) {
if (-r $args{file}) {
- $self->{conf}{file} = $args{file};
- $self->generate;
+ $self->generate($args{file});
} else {
- die "Can't open tags file: $!\n";
+ die "Can't open tags file '", $args{file}, "': $!\n";
}
+ }elsif ($args{str}) {
+ $self->generate($args{str},'scalar');
}
return $self;
=cut
-sub has { my ($self, $t) = @_; $t =~ s/^0+//; return (defined $self->{tags}{$t}) ? 1 : 0 }
+sub has { my ($self, $t) = @_; return 0 unless $t; $t =~ s/^0+//; return (defined $self->{tags}{$t}) ? 1 : 0 }
=head2 as_hashref
sub as_listref { my ($self) = @_; return [ sort {$a <=> $b} keys %{$self->{tags}} ] }
sub generate {
- my ($self) = @_;
+ my ($self, $file, $scalar) = @_;
- open TAGFILE, '<', $self->{conf}{file};
+ if ($scalar) {
+ open TAGFILE, '<', \$file;
+ } else {
+ open TAGFILE, '<', $file;
+ }
while (<TAGFILE>) {
+ next if m/^#/;
+ next if m/^\s*\n$/;
+
$self->{conf}{lastwasrange} = 0;
$self->{conf}{range}{high} = 0;
$self->{conf}{range}{low} = 0;
my @chunks = split /\s+/;
while (my $chunk = shift @chunks) {
+ last if ($chunk =~ /^#/);
# single values
if ($chunk =~ /^\d{1,3}$/) {