From e968f5a595210fb7579f4b95b548b677122a6796 Mon Sep 17 00:00:00 2001 From: Remi Collet Date: Sat, 21 Oct 2017 08:04:53 +0200 Subject: new package --- .gitignore | 8 +++ Makefile | 4 ++ composer.json | 27 ++++++++++ php-netresearch-jsonmapper.spec | 116 ++++++++++++++++++++++++++++++++++++++++ 4 files changed, 155 insertions(+) create mode 100644 .gitignore create mode 100644 Makefile create mode 100644 composer.json create mode 100644 php-netresearch-jsonmapper.spec diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..fc9aa8c --- /dev/null +++ b/.gitignore @@ -0,0 +1,8 @@ +clog +package-*.xml +*.tgz +*.tar.gz +*.tar.xz +*.tar.xz.asc +*.src.rpm +*/*rpm diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..91b0fd5 --- /dev/null +++ b/Makefile @@ -0,0 +1,4 @@ +SRCDIR := $(shell pwd) +NAME := $(shell basename $(SRCDIR)) +include ../../common/Makefile + diff --git a/composer.json b/composer.json new file mode 100644 index 0000000..4c3b314 --- /dev/null +++ b/composer.json @@ -0,0 +1,27 @@ +{ + "name": "netresearch/jsonmapper", + "description": "Map nested JSON structures onto PHP classes", + "license": "OSL-3.0", + "autoload": { + "psr-0": {"JsonMapper": "src/"} + }, + "authors": [ + { + "name": "Christian Weiske", + "email": "cweiske@cweiske.de", + "homepage": "http://github.com/cweiske/jsonmapper/", + "role": "Developer" + } + ], + "support": { + "email": "cweiske@cweiske.de", + "issues": "https://github.com/cweiske/jsonmapper/issues" + }, + "require":{ + "php": ">=5.6" + }, + "require-dev": { + "phpunit/phpunit": "4.2.*", + "squizlabs/php_codesniffer": "~1.5" + } +} diff --git a/php-netresearch-jsonmapper.spec b/php-netresearch-jsonmapper.spec new file mode 100644 index 0000000..2c82c16 --- /dev/null +++ b/php-netresearch-jsonmapper.spec @@ -0,0 +1,116 @@ +# remirepo/fedora spec file for php-netresearch-jsonmapper +# +# Copyright (c) 2017 Remi Collet +# License: CC-BY-SA +# http://creativecommons.org/licenses/by-sa/4.0/ +# +# Please, preserve the changelog entries +# +%global gh_commit b94ffe5b237a697253f06f5a57d9b22292bfffb3 +%global gh_short %(c=%{gh_commit}; echo ${c:0:7}) +%global gh_owner cweiske +%global gh_project jsonmapper + +%global pk_vendor netresearch +%global pk_project jsonmapper + +%global php_home %{_datadir}/php +%global with_tests 0%{!?_without_tests:1} + +Name: php-%{pk_vendor}-%{pk_project} +Version: 1.3.0 +Release: 1%{?dist} +Summary: Map nested JSON structures onto PHP classes + +Group: Development/Libraries +License: OSL 3.0 +URL: https://github.com/%{gh_owner}/%{gh_project} +Source0: https://github.com/%{gh_owner}/%{gh_project}/archive/%{gh_commit}/%{name}-%{version}-%{gh_short}.tar.gz + +BuildArch: noarch +%if %{with_tests} +# For tests +BuildRequires: php(language) >= 5.6 +BuildRequires: php-pcre +BuildRequires: php-spl +# From composer.json, "require-dev": { +# "phpunit/phpunit": "4.2.*", +# "squizlabs/php_codesniffer": "~1.5" +BuildRequires: php-composer(phpunit/phpunit) >= 4.2 +# Required by autoloader +BuildRequires: php-fedora-autoloader-devel +%endif + +# From composer.json, "require": { +# "php": ">=5.6" +Requires: php(language) >= 5.6 +# From phpcompatinfo report for version 1.3.0 +Requires: php-pcre +Requires: php-spl +# Required by autoloader +Requires: php-composer(fedora/autoloader) + +Provides: php-composer(%{pk_vendor}/%{pk_project}) = %{version} + + +%description +Takes data retrieved from a JSON web service and converts them into nested +object and arrays - using your own model classes. + +Starting from a base object, it maps JSON data on class properties, converting +them into the correct simple types or objects. + +It's a bit like the native SOAP parameter mapping PHP's SoapClient gives you, +but for JSON. It does not rely on any schema, only your PHP class definitions. + +Type detection works by parsing @var docblock annotations of class properties, +as well as type hints in setter methods. + +You do not have to modify your model classes by adding JSON specific code; +it works automatically by parsing already-existing docblocks. + +Autoloader: %{php_home}/%{pk_vendor}/%{pk_project}/autoload.php + + +%prep +%setup -q -n %{gh_project}-%{gh_commit} + + +%build +phpab --template fedora --output src/autoload.php src + + +%install +: Library +mkdir -p %{buildroot}%{php_home}/%{pk_vendor} +cp -pr src %{buildroot}%{php_home}/%{pk_vendor}/%{pk_project} + + +%check +%if %{with_tests} +mkdir vendor + +ret=0 +for cmd in php php56 php70 php71 php72; do + if which $cmd; then + $cmd %{_bindir}/phpunit --bootstrap %{buildroot}%{php_home}/%{pk_vendor}/%{pk_project}/autoload.php --verbose . || ret=1 + fi +done +exit $ret +%else +: Test suite disabled +%endif + + +%files +%{!?_licensedir:%global license %%doc} +%license LICENSE +%doc composer.json +%doc ChangeLog README.rst +%dir %{php_home}/%{pk_vendor} + %{php_home}/%{pk_vendor}/%{pk_project} + + +%changelog +* Sat Oct 21 2017 Remi Collet - 1.3.0-1 +- initial package, version 1.3.0 -- cgit