[libxml-compile-cache-perl] 01/06: Imported Upstream version 1.03
Lucas Kanashiro
kanashiro-guest at moszumanska.debian.org
Fri Jul 24 04:37:29 UTC 2015
This is an automated email from the git hooks/post-receive script.
kanashiro-guest pushed a commit to branch master
in repository libxml-compile-cache-perl.
commit 439948fc93f379a19c1544e29c2275e25633db81
Author: Lucas Kanashiro <kanashiro.duarte at gmail.com>
Date: Fri Jul 24 00:57:24 2015 -0300
Imported Upstream version 1.03
---
ChangeLog | 10 +++++++
META.json | 6 ++---
META.yml | 6 ++---
Makefile.PL | 6 ++---
README | 12 ++++-----
lib/XML/Compile/Cache.pm | 66 +++++++++++++++++++++++++++++++++++------------
lib/XML/Compile/Cache.pod | 45 ++++++++++++++++++++++++++++++--
7 files changed, 118 insertions(+), 33 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index ecbddbe..e19fe2d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,16 @@
==== version history of XML::Compile::Cache
+version 1.03: Mon Dec 22 08:41:12 CET 2014
+
+ Fixes:
+ - compileAll code-refs stored incorrectly.
+
+ Improvements:
+ - new method ::WSDL11::addNicePrefix()
+ - support new 'extends' hook.
+ - reader()/writer() add is_type option
+
version 1.02: Wed May 28 09:28:08 CEST 2014
Changes:
- any_element default changed from 'SKIP_ALL' into 'ATTEMPT'
diff --git a/META.json b/META.json
index 2cea18e..3d33269 100644
--- a/META.json
+++ b/META.json
@@ -34,12 +34,12 @@
"requires" : {
"Log::Report" : "0.19",
"Test::More" : "0.54",
- "XML::Compile" : "1.41",
+ "XML::Compile" : "1.48",
"XML::Compile::Tester" : "0.02",
- "XML::LibXML::Simple" : "0.13"
+ "XML::LibXML::Simple" : "0.95"
}
}
},
"release_status" : "stable",
- "version" : "1.02"
+ "version" : "1.03"
}
diff --git a/META.yml b/META.yml
index 6258b4b..ee17ef9 100644
--- a/META.yml
+++ b/META.yml
@@ -20,7 +20,7 @@ no_index:
requires:
Log::Report: 0.19
Test::More: 0.54
- XML::Compile: 1.41
+ XML::Compile: 1.48
XML::Compile::Tester: 0.02
- XML::LibXML::Simple: 0.13
-version: 1.02
+ XML::LibXML::Simple: 0.95
+version: 1.03
diff --git a/Makefile.PL b/Makefile.PL
index ea8c00f..1c613de 100644
--- a/Makefile.PL
+++ b/Makefile.PL
@@ -4,11 +4,11 @@ use 5.008;
WriteMakefile
( NAME => 'XML::Compile::Cache'
- , VERSION => '1.02'
+ , VERSION => '1.03'
, PREREQ_PM =>
- { XML::Compile => '1.41'
+ { XML::Compile => 1.48
, XML::Compile::Tester => 0.02
- , XML::LibXML::Simple => 0.13
+ , XML::LibXML::Simple => 0.95
, Log::Report => 0.19
, Test::More => 0.54
diff --git a/README b/README
index bc5e134..ea730f8 100644
--- a/README
+++ b/README
@@ -1,5 +1,5 @@
-=== README for XML-Compile-Cache version 1.02
-= Generated on Wed May 28 09:28:15 2014 by OODoc 2.01
+=== README for XML-Compile-Cache version 1.03
+= Generated on Mon Dec 22 08:41:24 2014 by OODoc 2.01
There are various ways to install this module:
@@ -9,16 +9,16 @@ There are various ways to install this module:
(2) if you use Windows, have a look at http://ppm.activestate.com/
(3) if you have downloaded this module manually (as root/administrator)
- gzip -d XML-Compile-Cache-1.02.tar.gz
- tar -xf XML-Compile-Cache-1.02.tar
- cd XML-Compile-Cache-1.02
+ gzip -d XML-Compile-Cache-1.03.tar.gz
+ tar -xf XML-Compile-Cache-1.03.tar
+ cd XML-Compile-Cache-1.03
perl Makefile.PL
make # optional
make test # optional
make install
For usage, see the included manual-pages or
- http://search.cpan.org/dist/XML-Compile-Cache-1.02/
+ http://search.cpan.org/dist/XML-Compile-Cache-1.03/
Please report problems to
http://rt.cpan.org/Dist/Display.html?Queue=XML-Compile-Cache
diff --git a/lib/XML/Compile/Cache.pm b/lib/XML/Compile/Cache.pm
index f6124be..b460497 100644
--- a/lib/XML/Compile/Cache.pm
+++ b/lib/XML/Compile/Cache.pm
@@ -7,7 +7,7 @@ use strict;
package XML::Compile::Cache;
use vars '$VERSION';
-$VERSION = '1.02';
+$VERSION = '1.03';
use base 'XML::Compile::Schema';
@@ -30,14 +30,12 @@ sub init($)
$self->{XCC_wopts} = delete $args->{opts_writers} || [];
$self->{XCC_undecl} = delete $args->{allow_undeclared} || 0;
- $self->{XCC_rcode} = {}; # compiled code refs
- $self->{XCC_wcode} = {};
$self->{XCC_dropts} = {}; # declared opts
$self->{XCC_dwopts} = {};
$self->{XCC_uropts} = {}; # undeclared opts
$self->{XCC_uwopts} = {};
- $self->{XCC_readers} = {};
+ $self->{XCC_readers} = {}; # compiled code refs;
$self->{XCC_writers} = {};
$self->typemap($args->{typemap});
@@ -128,7 +126,7 @@ sub addPrefixes(@)
if(my $def = $a->{$prefix})
{ if($def->{uri} ne $ns)
- { error __x"prefix {prefix} already refers to {uri}, cannot use it for {ns}"
+ { error __x"prefix `{prefix}' already refers to {uri}, cannot use it for {ns}"
, prefix => $prefix, uri => $def->{uri}, ns => $ns;
}
}
@@ -162,6 +160,26 @@ sub prefixFor($)
}
+sub addNicePrefix($$)
+{ my ($self, $base, $ns) = @_;
+ if(my $def = $self->prefix($base))
+ { return $base if $def->{uri} eq $ns;
+ }
+ else
+ { $self->addPrefixes($base => $ns);
+ return $base;
+ }
+
+ $base .= '01' if $base !~ m/[0-9]$/;
+ while(my $def = $self->prefix($base))
+ { return $base if $def->{uri} eq $ns;
+ $base++;
+ }
+ $self->addPrefixes($base => $ns);
+ $base;
+}
+
+
sub learnPrefixes($)
{ my ($self, $node) = @_;
my $namespaces = $self->prefixes;
@@ -220,7 +238,7 @@ sub compileAll(;$$)
{ my ($myns, $local) = unpack_type $type;
next if $usens eq $myns;
}
- $self->{XCC_rcode}{$type} ||= $self->compile(READER=>$type);
+ $self->reader($type);
}
}
@@ -230,7 +248,7 @@ sub compileAll(;$$)
{ my ($myns, $local) = unpack_type $type;
next if $usens eq $myns;
}
- $self->{XCC_wcode}{$type} ||= $self->compile(WRITER => $type);
+ $self->writer($type);
}
}
}
@@ -248,6 +266,7 @@ sub _same_params($$)
sub reader($@)
{ my ($self, $name) = (shift, shift);
+ my %args = @_;
my $type = $self->findName($name);
my $readers = $self->{XCC_readers};
@@ -262,7 +281,9 @@ sub reader($@)
{ if(my $ur = $self->{XCC_uropts}{$type})
{ # do not use cached version when options differ
_same_params $ur, \@_
- or return $self->compile(READER => $type, @_);
+ or return $args{is_type}
+ ? $self->compileType(READER => $type, @_)
+ : $self->compile(READER => $type, @_);
}
else
{ $self->{XCC_uropts}{$type} = \@_;
@@ -272,13 +293,16 @@ sub reader($@)
{ error __x"type {name} is only declared as writer", name => $name }
else { error __x"type {name} is not declared", name => $name }
- $readers->{$type} ||= $self->compile(READER => $type, @_);
+ $readers->{$type} ||= $args{is_type}
+ ? $self->compileType(READER => $type, @_)
+ : $self->compile(READER => $type, @_);
}
-sub writer($)
+sub writer($%)
{ my ($self, $name) = (shift, shift);
- my $type = $self->findName($name);
+ my %args = @_;
+ my $type = $self->findName($name);
my $writers = $self->{XCC_writers};
if(exists $self->{XCC_dwopts}{$type})
@@ -292,7 +316,9 @@ sub writer($)
{ if(my $ur = $self->{XCC_uwopts}{$type})
{ # do not use cached version when options differ
_same_params $ur, \@_
- or return $self->compile(WRITER => $type, @_)
+ or return $args{is_type}
+ ? $self->compileType(WRITER => $type, @_)
+ : $self->compile(WRITER => $type, @_);
}
else
{ $self->{XCC_uwopts}{$type} = \@_;
@@ -305,7 +331,10 @@ sub writer($)
{ error __x"type {name} is not declared", name => $name;
}
- $writers->{$type} ||= $self->compile(WRITER => $type, @_);
+ $writers->{$type} ||= $args{is_type}
+ ? $self->compileType(WRITER => $type, @_)
+ : $self->compile(WRITER => $type, @_);
+
}
sub template($$@)
@@ -408,11 +437,16 @@ sub _cleanup_hooks($)
{ my ($self, $hooks) = @_;
$hooks or return;
+ # translate prefixed type names into full names
foreach my $hook (ref $hooks eq 'ARRAY' ? @$hooks : $hooks)
- { my $types = $hook->{type} or next;
- $hook->{type} =
- [ map {ref $_ eq 'Regexp' ? $_ : $self->findName($_)}
+ { if(my $types = $hook->{type})
+ { $hook->{type} =
+ [ map {ref $_ eq 'Regexp' ? $_ : $self->findName($_)}
ref $types eq 'ARRAY' ? @$types : $types ];
+ }
+ elsif(my $ext = $hook->{extends})
+ { $hook->{extends} = $self->findName($ext);
+ }
}
$hooks;
}
diff --git a/lib/XML/Compile/Cache.pod b/lib/XML/Compile/Cache.pod
index 44383fd..b5ef4f5 100644
--- a/lib/XML/Compile/Cache.pod
+++ b/lib/XML/Compile/Cache.pod
@@ -224,6 +224,19 @@ but the code gets much cleaner.
=over 4
+=item $obj-E<gt>B<addNicePrefix>(BASE, NAMESPACE)
+
+[1.03] Register NAMESPACE -if not yet defined- with prefix name BASE. When
+that prefix name is already in use for some other namespace, BASE followed
+by a number are attempted (starting with 01). The prefix is returned.
+
+When the BASE already ends on a number, that number will get counted.
+
+example:
+
+ my $prefix = $schema->addNicePrefix('call', $myns);
+ # $prefix now can be call, call01, call02 etc
+
=item $obj-E<gt>B<addPrefixes>( [PAIRS|ARRAY|HASH] )
The X::C logic does auto-detect prefix/namespaces combinations from
@@ -312,6 +325,10 @@ By default, the processors are only compiled when used. This method is
especially useful in a B<daemon process>, where preparations can take as
much time as they want to... and running should be as fast as possible.
+=item $obj-E<gt>B<compileType>( <'READER'|'WRITER'>, $type, %options )
+
+Inherited, see L<XML::Compile::Schema/"Compilers">
+
=item $obj-E<gt>B<dataToXML>($node|REF-XML|XML-STRING|$filename|$fh|$known)
=item XML::Compile::Cache-E<gt>B<dataToXML>($node|REF-XML|XML-STRING|$filename|$fh|$known)
@@ -334,6 +351,18 @@ The reader will be compiled the first time that it is used, and that
same CODE reference will be returned each next request for the same
$type. Call L<compileAll()|XML::Compile::Cache/"Compilers"> to have all readers compiled by force.
+ -Option --Default
+ is_type <false>
+
+=over 2
+
+=item is_type => BOOLEAN
+
+[1.03] use L<compileType()|XML::Compile::Schema/"Compilers"> with the given element, to replace L<compile()|XML::Compile::Schema/"Compilers">
+You probably want an additional C<element> parameter.
+
+=back
+
example:
my $schema = XML::Compile::Cache->new(\@xsd,
@@ -357,6 +386,18 @@ The writer will be compiled the first time that it is used, and that
same CODE reference will be returned each next request for the same
type.
+ -Option --Default
+ is_type <false>
+
+=over 2
+
+=item is_type => BOOLEAN
+
+[1.03] use L<compileType()|XML::Compile::Schema/"Compilers"> with the given element, to replace L<compile()|XML::Compile::Schema/"Compilers">
+You probably want an additional C<element> parameter.
+
+=back
+
example:
my $xml = $cache->writer('gml:members')->($doc, $data);
@@ -501,8 +542,8 @@ L<XML::Compile::Util::pack_type()|XML::Compile::Util/"Packing">.
=head1 SEE ALSO
-This module is part of XML-Compile-Cache distribution version 1.02,
-built on May 28, 2014. Website: F<http://perl.overmeer.net/xml-compile/>
+This module is part of XML-Compile-Cache distribution version 1.03,
+built on December 22, 2014. Website: F<http://perl.overmeer.net/xml-compile/>
Other distributions in this suite:
L<XML::Compile>,
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-perl/packages/libxml-compile-cache-perl.git
More information about the Pkg-perl-cvs-commits
mailing list