Geo-OGC-Service
view release on metacpan or search on metacpan
"requires" : {
"ExtUtils::MakeMaker" : "0"
}
},
"runtime" : {
"requires" : {
"Carp" : "0",
"Clone" : "0",
"Encode" : "0",
"JSON" : "0",
"Modern::Perl" : "0",
"Plack::Builder" : "0",
"Plack::Request" : "0",
"XML::LibXML" : "0",
"XML::LibXML::PrettyPrint" : "0",
"perl" : "5.010000"
}
},
"test" : {
"requires" : {
"HTTP::Request::Common" : "0",
name: Geo-OGC-Service
no_index:
directory:
- t
- inc
requires:
Carp: '0'
Clone: '0'
Encode: '0'
JSON: '0'
Modern::Perl: '0'
Plack::Builder: '0'
Plack::Request: '0'
XML::LibXML: '0'
XML::LibXML::PrettyPrint: '0'
perl: '5.010000'
resources:
repository: https://github.com/ajolma/Geo-OGC-Service
version: '0.14'
x_serialization_backend: 'CPAN::Meta::YAML version 0.018'
Makefile.PL view on Meta::CPAN
use ExtUtils::MakeMaker;
WriteMakefile1(
NAME => 'Geo::OGC::Service',
VERSION_FROM => 'lib/Geo/OGC/Service.pm', # finds $VERSION, requires EU::MM from perl >= 5.5
PREREQ_PM => { "Carp" => 0,
"Modern::Perl" => 0,
"Plack::Request" => 0,
"Plack::Builder" => 0,
"JSON" => 0,
"Encode" => 0,
"XML::LibXML" => 0,
"XML::LibXML::PrettyPrint" => 0, # for debugging
"Clone" => 0 },
TEST_REQUIRES => { "Plack::Test" => 0,
"HTTP::Request::Common" => 0,
"XML::SemanticDiff" => 0 },
lib/Geo/OGC/Service.pm view on Meta::CPAN
None by default.
=head2 METHODS
=cut
package Geo::OGC::Service;
use 5.010000; # say // and //=
use Carp;
use Modern::Perl;
use Encode qw(decode encode);
use Plack::Request;
use Plack::Builder;
use JSON;
use XML::LibXML;
use Clone 'clone';
use XML::LibXML::PrettyPrint;
use parent qw/Plack::Component/;
lib/Geo/OGC/Service.pm view on Meta::CPAN
=head2 DESCRIPTION
The class contains methods for common tasks for all services.
=head2 METHODS
=cut
package Geo::OGC::Service::Common;
use Modern::Perl;
=pod
=head3 CORS
Return the CORS headers as a list according to the configuration. CORS
may be in the configuration as a scalar or as a hash. A scalar value
is taken as a value for Access-Control-Allow-Origin. A hash may have
the following keys. (Note the missing prefix Access-Control-.)
lib/Geo/OGC/Service.pm view on Meta::CPAN
elements. If there is no $content or $content is undef, a self-closing
tag is written. If $content is '/>' a closing tag is written.
Setting $tag to 0 or 1, allows writing plain content.
If $attribute{$key} is undefined the attribute is not written at all.
=cut
package Geo::OGC::Service::XMLWriter;
use Modern::Perl;
use Encode qw(decode encode is_utf8);
use Carp;
sub element {
my $self = shift;
my $tag = shift;
return unless defined $tag;
if (ref($tag) eq 'ARRAY') {
for my $element ($tag, @_) {
$self->element(@$element);
lib/Geo/OGC/Service.pm view on Meta::CPAN
Using $w as XMLWriter sets writer, which is obtained from $responder,
to write XML. The writer is closed when $w is destroyed.
$headers and $declaration are optional. The defaults are
'Content-Type' => 'text/xml; charset=utf-8' and '<?xml version="1.0"
encoding="UTF-8"?>'.
=cut
package Geo::OGC::Service::XMLWriter::Streaming;
use Modern::Perl;
our @ISA = qw(Geo::OGC::Service::XMLWriter Plack::Util::Prototype); # can't use parent since Plack is not yet
sub new {
my ($class, $responder, $headers, $declaration) = @_;
my %headers;
if (ref $headers) {
%headers = @$headers;
} else {
$headers{'Content-Type'} = $headers;
lib/Geo/OGC/Service.pm view on Meta::CPAN
Using $w to produce XML caches the XML. The cached XML can be
written by a writer obtained from a $responder.
$headers and $declaration are optional. The defaults are as in
Geo::OGC::Service::XMLWriter::Streaming.
=cut
package Geo::OGC::Service::XMLWriter::Caching;
use Modern::Perl;
use Encode qw(decode encode is_utf8);
our @ISA = qw(Geo::OGC::Service::XMLWriter);
sub new {
my ($class, $headers, $declaration) = @_;
my %headers;
if (ref $headers) {
%headers = @$headers;
} else {
( run in 0.566 second using v1.01-cache-2.11-cpan-a5abf4f5562 )