A new user interface for you! Read more...

File perl-Data-Type.spec of Package perl-Data-Type

#
# spec file for package perl-Data-Type
#
# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via https://bugs.opensuse.org/
#


Name:           perl-Data-Type
Version:        0.02.02
Release:        0
%define cpan_name Data-Type
Summary:        Robust and extensible data- and valuetype system
License:        CHECK(Artistic-1.0 OR GPL-1.0-or-later)
Group:          Development/Libraries/Perl
Url:            https://metacpan.org/release/%{cpan_name}
Source0:        https://cpan.metacpan.org/authors/id/M/MU/MUENALAN/%{cpan_name}-%{version}.tar.gz
BuildArch:      noarch
BuildRoot:      %{_tmppath}/%{name}-%{version}-build
BuildRequires:  perl
BuildRequires:  perl-macros
BuildRequires:  perl(Attribute::Util) >= 0.01
BuildRequires:  perl(Business::CINS) >= 1.13
BuildRequires:  perl(Business::CreditCard) >= 0.27
BuildRequires:  perl(Business::ISSN) >= 0.90
BuildRequires:  perl(Business::UPC) >= 0.04
BuildRequires:  perl(Class::Maker) >= 0.05.17
BuildRequires:  perl(Class::Multimethods) >= 1.70
BuildRequires:  perl(DBI) >= 1.30
BuildRequires:  perl(Data::Iter)
BuildRequires:  perl(Date::Parse) >= 2.27
BuildRequires:  perl(Email::Valid) >= 0.15
BuildRequires:  perl(Error) >= 0.15
BuildRequires:  perl(HTML::Lint) >= 1.26
BuildRequires:  perl(IO::Extended) >= 0.06
BuildRequires:  perl(Locale::Language) >= 2.0
BuildRequires:  perl(Locale::SubCountry)
BuildRequires:  perl(Net::IPv6Addr) >= 0.2
BuildRequires:  perl(Regexp::Box) >= 0.01
BuildRequires:  perl(Regexp::Common) >= 2.113
BuildRequires:  perl(String::ExpandEscapes) >= 0.01
BuildRequires:  perl(Text::TabularDisplay) >= 1.18
BuildRequires:  perl(Tie::ListKeyedHash) >= 0.41
BuildRequires:  perl(X500::DN) >= 0.28
BuildRequires:  perl(XML::LibXSLT) >= 1.53
BuildRequires:  perl(XML::Parser) >= 2.34
BuildRequires:  perl(XML::Schema) >= 0.07
Requires:       perl(Attribute::Util) >= 0.01
Requires:       perl(Business::CINS) >= 1.13
Requires:       perl(Business::CreditCard) >= 0.27
Requires:       perl(Business::ISSN) >= 0.90
Requires:       perl(Business::UPC) >= 0.04
Requires:       perl(Class::Maker) >= 0.05.17
Requires:       perl(Class::Multimethods) >= 1.70
Requires:       perl(DBI) >= 1.30
Requires:       perl(Data::Iter)
Requires:       perl(Date::Parse) >= 2.27
Requires:       perl(Email::Valid) >= 0.15
Requires:       perl(Error) >= 0.15
Requires:       perl(HTML::Lint) >= 1.26
Requires:       perl(IO::Extended) >= 0.06
Requires:       perl(Locale::Language) >= 2.0
Requires:       perl(Locale::SubCountry)
Requires:       perl(Net::IPv6Addr) >= 0.2
Requires:       perl(Regexp::Box) >= 0.01
Requires:       perl(Regexp::Common) >= 2.113
Requires:       perl(String::ExpandEscapes) >= 0.01
Requires:       perl(Text::TabularDisplay) >= 1.18
Requires:       perl(Tie::ListKeyedHash) >= 0.41
Requires:       perl(X500::DN) >= 0.28
Requires:       perl(XML::LibXSLT) >= 1.53
Requires:       perl(XML::Parser) >= 2.34
Requires:       perl(XML::Schema) >= 0.07
%{perl_requires}

%description
A lot of CPAN modules have a common purpose: reporting if data has some
"characteristics". Email::Valid is an illustrous example: reporting if a
string has characteristics of an email address. The 'address()' method
reports this via returning ''yes'' or ''no''. Another module, another
behaviour: 'Business::ISSN' tests for the characteristics of an
'International Standard Serial Number' and does this via an 'is_valid'
method returning 'true' or 'false'. And so on and so on. Data::Type was
created with modularity, introspectability and usability in mind.

The resulting key concepts are:

* * 
a unified interface to type related CPAN modules (via Data::Type)

* * 
generic, fun to extend and simple API (see Data::Type::Docs::RFC)

* * 
paremeterized types ( eg. 'STD::VARCHAR(80)' )

* * 
alternativly exception-based or functional problem reports (valid()
  contra is())

* * 
localization via Locale::Maketext (Data::Type/Localization)

* *
syntactic sugar ( 'die unless is BIO::DNA' )

* *
generic access through DBI to catalog of data types and more (see
  Data::Type::Query)

This module relies, as much as its plausible, on CPAN modules doing the job
in the backend. For instance Regexp::Common is doing a lot of the regular
expression testing. Email::Valid takes care of the 'EMAIL' type.
Data::Parse can be exploited for doing the backwork for the 'DATE' type.

%prep
%setup -q -n %{cpan_name}-%{version}
find . -type f ! -name \*.pl -print0 | xargs -0 chmod 644

rm -f pm_to_blib

%build
perl Makefile.PL INSTALLDIRS=vendor
make %{?_smp_mflags}

%check
make test

%install
%perl_make_install
%perl_process_packlist
%perl_gen_filelist

%files -f %{name}.files
%defattr(-,root,root,755)
%doc ANNOUNCE ChangeLog Changes KEYWORDS Makefile README SYMBOLS Todo

%changelog