X-Git-Url: http://git.ieval.ro/?a=blobdiff_plain;f=lib%2FZeal%2FDocset.pm;h=d3e013bd0dbb49c4247e1d36817b27d5b765276e;hb=1a477fa4fdc40fd4142e2a01ff12865381cd7d8e;hp=d280a505e303fb7177a6109e38e571d5d6011c11;hpb=c1c9c8170efd62dddd10a2c8e5defd545e48c42b;p=zeal.git diff --git a/lib/Zeal/Docset.pm b/lib/Zeal/Docset.pm index d280a50..d3e013b 100644 --- a/lib/Zeal/Docset.pm +++ b/lib/Zeal/Docset.pm @@ -4,7 +4,7 @@ use 5.014000; use strict; use warnings; -our $VERSION = '0.000_001'; +our $VERSION = '0.001'; use parent qw/Class::Accessor::Fast/; __PACKAGE__->mk_ro_accessors(qw/path plist dbh name id family/); @@ -40,12 +40,16 @@ sub new { sub _blessdocs { my ($self, $docsref) = @_; - map { Zeal::Document->new(+{%$_, docset => $self}) } @$docsref; + map { + my %hash = (%$_, docset => $self); + ($hash{path}, $hash{anchor}) = split /#/s, $hash{path}; + Zeal::Document->new(\%hash); + } @$docsref; } sub fetch { my ($self, $path) = @_; - return HTTP::Tiny->new->get($path) if $path =~ /^http:/s; + return HTTP::Tiny->new->get($path)->{content} if $path =~ /^http:/s; my $docroot = catdir $self->path, 'Contents', 'Resources', 'Documents'; $path = rel2abs $path, $docroot; scalar read_file $path @@ -83,6 +87,17 @@ Zeal::Docset - Class representing a Dash/Zeal docset =head1 SYNOPSIS use Zeal::Docset; + my $ds = Zeal::Docset->new('/home/mgv/docsets/Perl.docset'); + say $ds->$path; # /home/mgv/docsets/Perl.docset + say $ds->name; # Perl + say $ds->id; # perl + say $ds->family; # perl + + # In SQL LIKE, % is .* and _ is . + my @matches = $ds->query('perlopen%'); # finds perlopenbsd and perlopentut + my $doc = $ds->query('perlsec'); # A Zeal::Document object for perlsec + my $html = $ds->get('perls_c'); # HTML documentation of perlsec + my @docs = $ds->list; # all documents =head1 DESCRIPTION @@ -162,7 +177,7 @@ Marius Gavrilescu, Emarius@ieval.roE =head1 COPYRIGHT AND LICENSE -Copyright (C) 2014 by Marius Gavrilescu +Copyright (C) 2014-2015 by Marius Gavrilescu This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.20.1 or,