Make Zeal->sets die if given family does not exist
[zeal.git] / lib / Zeal.pm
index 8fab14a733d2c7c25f16e8692196cdc64ed5d9fa..5fd8d5a4c706bf5f03cf6212bf391cef14f01200 100644 (file)
@@ -5,7 +5,7 @@ use strict;
 use warnings;
 use re '/s';
 
-our $VERSION = '0.000_001';
+our $VERSION = '0.000_002';
 
 use File::Spec::Functions qw/catfile/;
 
@@ -41,12 +41,13 @@ sub add {
 sub sets {
        my ($self, $family) = @_;
        return map { @$_ } values %{$self->{sets}} unless $family;
+       die "No docsets in family '$family'\n" unless $self->{sets}{$family};
        @{$self->{sets}{$family}}
 }
 
 sub query {
        my ($self, $query, $family) = @_;
-       ($family, $query) = split /:/, $query, 2 if !$family && $query =~ /:/;
+       ($family, $query) = split /:/, $query, 2 if !$family && $query =~ /^\w+:[^:]/;
        my @res = map { $_->query($query) } $self->sets($family);
        wantarray ? @res : $res[0]
 }
@@ -64,16 +65,12 @@ Zeal - Read and query Dash/Zeal docsets
 
   use Zeal;
   my $zeal = Zeal->new("/home/mgv/docsets/:/home/mgv/something.docset");
-  # Add another docset
-  $zeal->add('/home/mgv/somethingelse.docset');
-  # Add a directory containing docsets
-  $zeal->add('/home/mgv/moredocsets/');
-  # Documentation for 'length' in all docsets
-  my $doc = $zeal->query('length');
-  # Documentation for all Test:: perl modules
-  my @docs = $zeal->query('Test::%', 'perl');
-  # Alternative syntax
-  @docs = $zeal->query('perl:Test::%);
+  $zeal->add('/home/mgv/somethingelse.docset'); # Add another docset
+  $zeal->add('/home/mgv/moredocsets/');         # Add a directory containing docsets
+
+  my $doc = $zeal->query('length');             # Documentation for 'length' in all docsets
+  my @docs = $zeal->query('Test::%', 'perl');   # Documentation for all Test:: perl modules
+  @docs = $zeal->query('perl:Test::%);          # Alternative syntax
 
 =head1 DESCRIPTION
 
This page took 0.010159 seconds and 4 git commands to generate.