Test::CPAN::Meta::JSONUserrContributed Perl Test::CPAN::Meta::JSON::Version(3)NAMETest::CPAN::Meta::JSON::Version - Validate META.json elements.
SYNOPSIS
use Test::CPAN::Meta::JSON::Version;
DESCRIPTION
This module was written to ensure that a META.json file, provided with
a standard distribution uploaded to CPAN, meets the specifications that
are slowly being introduced to module uploads, via the use of
ExtUtils::MakeMaker, Module::Build and Module::Install.
This module is meant to be used together with Test::CPAN::Meta::JSON,
however the code is self contained enough that you can access it
directly.
See CPAN::Meta for further details of the CPAN Meta Specification.
ABSTRACT
Validation of META.json data against the CPAN Meta Specification.
CLASS CONSTRUCTOR
· new( data => $data [, spec => $version] )
The constructor must be passed a valid data structure.
Optionally you may also provide a specification version. This
version is then use to ensure that the given data structure meets
the respective META.yml specification definition. If no version is
provided the module will attempt to deduce the appropriate
specification version from the data structure itself.
METHODS
Main Methods
· parse()
Using the given data structure provided with the constructor,
attempts to parse and validate according to the appropriate
specification definition.
Returns 1 if any errors found, otherwise returns 0.
· errors()
Returns a list of the errors found during parsing.
Check Methods
· check_map($spec,$data)
Checks whether a map (or hash) part of the data structure conforms
to the appropriate specification definition.
· check_lazylist($spec,$data)
If it's a string, make it into a list and check the list
· check_list($spec,$data)
Checks whether a list (or array) part of the data structure
conforms to the appropriate specification definition.
Validator Methods
· url($self,$key,$value)
Validates that a given value is in an acceptable URL format
· urlspec($self,$key,$value)
Validates that the URL to a META.yml specification is a known one.
· string_or_undef($self,$key,$value)
Validates that the value is either a string or an undef value. Bit
of a catchall function for parts of the data structure that are
completely user defined.
· string($self,$key,$value)
Validates that a string exists for the given key.
· file($self,$key,$value)
Validate that a file is passed for the given key. This may be made
more thorough in the future. For now it acts like \&string.
· exversion($self,$key,$value)
Validates a list of versions, e.g. '<= 5, >=2, ==3, !=4, >1, <6,
0'.
· version($self,$key,$value)
Validates a single version string. Versions of the type '5.8.8' and
'0.00_00' are both valid. A leading 'v' like 'v1.2.3' is also
valid.
· boolean($self,$key,$value)
Validates for a boolean value. Currently these values are '1', '0',
'true', 'false', however the latter 2 may be removed.
· license($self,$key,$value)
Validates that a value is given for the license. Returns 1 if an
known license type, or 2 if a value is given but the license type
is not a recommended one.
· resource($self,$key,$value)
Validates that the given key is in CamelCase, to indicate a user
defined keyword.
· keyword($self,$key,$value)
Validates that key is in an acceptable format for the META.yml
specification, i.e. any in the character class [-_a-z].
For user defined keys, although not explicitly stated in the
specifications (v1.0 - v1.4), the convention is to precede the key
with a pattern matching qr{\Ax_}i. Following this any character
from the character class [-_a-zA-Z] can be used. This clarification
has been added to v2.0 of the specification.
· identifier($self,$key,$value)
Validates that key is in an acceptable format for the META.yml
specification, for an identifier, i.e. any that matches the regular
expression qr/[a-z][a-z_]/i.
· module($self,$key,$value)
Validates that a given key is in an acceptable module name format,
e.g. 'Test::CPAN::Meta::JSON::Version'.
· release_status($self,$key,$value)
Validates that the value for 'release_status' is set appropriately
for one of 'stable', 'testing' or 'unstable'.
· custom_1($self,$key,$value)
Validates custom keys based on camelcase only.
· custom_2($self,$key,$value)
Validates custom keys based on user defined (i.e. /^[xX]_/) only.
· phase($self,$key,$value)
Validates for a legal phase of a pre-requisite map.
· relation($self,$key,$value)
Validates for a legal relation, within a phase, of a pre-requisite
map.
· anything($self,$key,$value)
Usually reserved for user defined structures, allowing them to be
considered valid without a need for a specification definition for
the structure.
BUGS, PATCHES & FIXES
There are no known bugs at the time of this release. However, if you
spot a bug or are experiencing difficulties that are not explained
within the POD documentation, please send an email to barbie@cpan.org
or submit a bug to the RT system
(http://rt.cpan.org/Public/Dist/Display.html?Name=Test-CPAN-Meta-JSON).
However, it would help greatly if you are able to pinpoint problems or
even supply a patch.
Fixes are dependant upon their severity and my availablity. Should a
fix not be forthcoming, please feel free to (politely) remind me.
DSLIP
b - Beta testing
d - Developer
p - Perl-only
O - Object oriented
p - Standard-Perl: user may choose between GPL and Artistic
AUTHOR
Barbie, <barbie@cpan.org> for Miss Barbell Productions,
<http://www.missbarbell.co.uk>
COPYRIGHT AND LICENSE
Copyright (C) 2009-2011 Barbie for Miss Barbell Productions
This module is free software; you can redistribute it and/or
modify it under the Artistic Licence v2.
perl v5.14.12011-02-13Test::CPAN::Meta::JSON::Version(3)