Skip to content

Commit

Permalink
Update.
Browse files Browse the repository at this point in the history
Use Github actions instead of Travis.
Fix Code style
Bump package versions.
Add probot files
Add GitAttributes file.
Update README.
  • Loading branch information
drupol committed Dec 20, 2019
1 parent 3887c02 commit 25fec1c
Show file tree
Hide file tree
Showing 9 changed files with 126 additions and 53 deletions.
10 changes: 10 additions & 0 deletions .gitattributes
@@ -0,0 +1,10 @@
/spec export-ignore
.editorconfig export-ignore
.gitattributes export-ignore
.gitignore export-ignore
.scrutinizer.yml export-ignore
.travis.yml export-ignore
phpunit.xml.dist export-ignore
infection.json.dist export-ignore
grumphp.yml.dist export-ignore
phpspec.yml.dist export-ignore
49 changes: 49 additions & 0 deletions .github/settings.yml
@@ -0,0 +1,49 @@
# https://github.com/probot/settings

branches:
- name: master
protection:
enforce_admins: false
required_pull_request_reviews:
dismiss_stale_reviews: true
require_code_owner_reviews: true
required_approving_review_count: 1
required_status_checks:
contexts:
- "Grumphp"
strict: false
restrictions: null

labels:
- name: bug
color: ee0701

- name: dependencies
color: 0366d6

- name: enhancement
color: 0e8a16

- name: question
color: cc317c

- name: security
color: ee0701

- name: stale
color: eeeeee

repository:
allow_merge_commit: true
allow_rebase_merge: false
allow_squash_merge: false
default_branch: master
description: "Belgian national number faker generator using fzaninotto/faker."
topics: faker,belgian national number
has_downloads: true
has_issues: true
has_pages: false
has_projects: false
has_wiki: false
name: belgian-national-number-faker
private: false
41 changes: 41 additions & 0 deletions .github/workflows/continuous-integration.yml
@@ -0,0 +1,41 @@
# https://help.github.com/en/categories/automating-your-workflow-with-github-actions

on:
- pull_request
- push

name: "Continuous Integration"

jobs:
grumphp:
name: "Grumphp"

runs-on: ubuntu-latest

strategy:
matrix:
php-binary:
- php7.1
- php7.2
- php7.3

steps:
- name: "Checkout"
uses: actions/checkout@master
with:
fetch-depth: 1

- name: "Composer install"
run: ${{ matrix.php-binary }} $(which composer) install --no-interaction --no-progress --no-suggest

- name: "Composer install lowest dependencies"
if: matrix.dependencies == 'lowest'
run: ${{ matrix.php-binary }} $(which composer) update --no-interaction --no-progress --no-suggest --prefer-lowest

- name: "Run Grumphp"
run: ${{ matrix.php-binary }} vendor/bin/grumphp run
env:
STRYKER_DASHBOARD_API_KEY: ${{ secrets.STRYKER_DASHBOARD_API_KEY }}

- name: "Scrutinizer"
run: wget https://scrutinizer-ci.com/ocular.phar && php ocular.phar code-coverage:upload --format=php-clover build/logs/clover.xml
24 changes: 0 additions & 24 deletions .travis.yml

This file was deleted.

4 changes: 2 additions & 2 deletions README.md
@@ -1,7 +1,7 @@
[![Latest Stable Version](https://img.shields.io/packagist/v/drupol/belgian-national-number-faker.svg?style=flat-square)](https://packagist.org/packages/drupol/belgian-national-number-faker)
[![GitHub stars](https://img.shields.io/github/stars/drupol/belgian-national-number-faker.svg?style=flat-square)](https://packagist.org/packages/drupol/belgian-national-number-faker)
[![Total Downloads](https://img.shields.io/packagist/dt/drupol/belgian-national-number-faker.svg?style=flat-square)](https://packagist.org/packages/drupol/belgian-national-number-faker)
[![Build Status](https://img.shields.io/travis/drupol/belgian-national-number-faker/master.svg?style=flat-square)](https://travis-ci.org/drupol/belgian-national-number-faker)
[![GitHub Workflow Status](https://img.shields.io/github/workflow/status/drupol/belgian-national-number-faker/Continuous%20Integration?style=flat-square)](https://github.com/drupol/belgian-national-number-faker/actions)
[![Scrutinizer code quality](https://img.shields.io/scrutinizer/quality/g/drupol/belgian-national-number-faker/master.svg?style=flat-square)](https://scrutinizer-ci.com/g/drupol/belgian-national-number-faker/?branch=master)
[![Code Coverage](https://img.shields.io/scrutinizer/coverage/g/drupol/belgian-national-number-faker/master.svg?style=flat-square)](https://scrutinizer-ci.com/g/drupol/belgian-national-number-faker/?branch=master)
[![Mutation testing badge](https://badge.stryker-mutator.io/github.com/drupol/belgian-national-number-faker/master)](https://stryker-mutator.github.io)
Expand Down Expand Up @@ -56,7 +56,7 @@ services:

## Code quality, tests and benchmarks

Every time changes are introduced into the library, [Travis CI](https://travis-ci.org/drupol/belgian-national-number-faker/builds) run the tests and the benchmarks.
Every time changes are introduced into the library, [Github](https://github.com/drupol/belgian-national-number-faker/actions) run the tests and the benchmarks.

The library has tests written with [PHPSpec](http://www.phpspec.net/).
Feel free to check them out in the `spec` directory. Run `composer phpspec` to trigger the tests.
Expand Down
18 changes: 7 additions & 11 deletions composer.json
Expand Up @@ -19,25 +19,21 @@
"php": ">= 7.1"
},
"require-dev": {
"drupol/php-conventions": "^1",
"friends-of-phpspec/phpspec-code-coverage": "^4 || ^5",
"drupol/php-conventions": "^1.6.8",
"friends-of-phpspec/phpspec-code-coverage": "^4",
"fzaninotto/faker": "^1.6",
"infection/infection": "^0.13.4",
"phpspec/phpspec": "^4 || ^5",
"phpstan/phpstan-strict-rules": "^0.11.1",
"phptaskman/changelog": "^1",
"scrutinizer/ocular": "^1"
"infection/infection": "^0.13.6",
"phpspec/phpspec": "^5.1.2 || ^6.1",
"phpstan/phpstan-strict-rules": "^0.12",
"phptaskman/changelog": "^1"
},
"autoload": {
"psr-4": {
"drupol\\BelgianNationalNumberFaker\\": "src/"
}
},
"scripts": {
"apigen": "./vendor/bin/apigen generate src --destination build/docs",
"bench": "./vendor/bin/phpbench run --report=aggregate --store --precision=3",
"grumphp": "./vendor/bin/grumphp run",
"infection": "./vendor/bin/infection run -j 10",
"scrutinizer": "./vendor/bin/ocular code-coverage:upload --format=php-clover build/logs/clover.xml"
"infection": "./vendor/bin/infection run -j 10"
}
}
3 changes: 1 addition & 2 deletions infection.json.dist
Expand Up @@ -14,6 +14,5 @@
"branch": "master"
}
},
"testFramework":"phpspec",
"tmpDir": "build"
"testFramework":"phpspec"
}
2 changes: 1 addition & 1 deletion src/Provider/BelgianNationalNumber.php
Expand Up @@ -23,7 +23,7 @@ final class BelgianNationalNumber extends Base
public function belgianNationalIdentificationNumber(): string
{
do {
$probe = \mb_substr(DateTime::date('Ymd'), 2) . static::randomNumber(5, true);
$probe = mb_substr(DateTime::date('Ymd'), 2) . self::randomNumber(5, true);
} while (false === BelgianNationalNumberValidator::isValid($probe));

return $probe;
Expand Down
28 changes: 15 additions & 13 deletions src/Validator/BelgianNationalNumberValidator.php
Expand Up @@ -4,6 +4,8 @@

namespace drupol\BelgianNationalNumberFaker\Validator;

use const FILTER_SANITIZE_NUMBER_INT;

/**
* Class BelgianNationalNumberValidator.
*/
Expand All @@ -20,7 +22,7 @@ final class BelgianNationalNumberValidator
*/
public static function isValid(string $id): bool
{
return static::isValidNationalNumber($id);
return self::isValidNationalNumber($id);
}

/**
Expand All @@ -34,7 +36,7 @@ public static function isValid(string $id): bool
*/
private static function isValidNationalNumber(string $national_number): bool
{
$national_number = \filter_var($national_number, \FILTER_SANITIZE_NUMBER_INT);
$national_number = filter_var($national_number, FILTER_SANITIZE_NUMBER_INT);

if (false === $national_number) {
return false;
Expand All @@ -43,23 +45,23 @@ private static function isValidNationalNumber(string $national_number): bool
$allowedCharactersPattern = '/^[0-9\\ \\-]+$/';
$nonNumericPattern = '/\\D/';

if (1 !== \preg_match($allowedCharactersPattern, $national_number)) {
if (1 !== preg_match($allowedCharactersPattern, $national_number)) {
return false;
}

$national_number = \preg_replace($nonNumericPattern, '', $national_number);
$national_number = preg_replace($nonNumericPattern, '', $national_number);

if (null === $national_number) {
return false;
}

if (11 !== \mb_strlen($national_number)) {
if (11 !== mb_strlen($national_number)) {
return false;
}

$birthDatePart = (int) \mb_substr($national_number, 0, 6);
$counterPart = (int) \mb_substr($national_number, 6, 3);
$controlPart = (int) \mb_substr($national_number, 9, 2);
$birthDatePart = (int) mb_substr($national_number, 0, 6);
$counterPart = (int) mb_substr($national_number, 6, 3);
$controlPart = (int) mb_substr($national_number, 9, 2);

// 1. CONTROL NUMBER CHECKING
$born2kOrLater = false;
Expand All @@ -79,13 +81,13 @@ private static function isValidNationalNumber(string $national_number): bool
'20' . $birthDatePart :
'19' . $birthDatePart;

$checkdate = \checkdate(
(int) \mb_substr($birthDate, 4, 2),
(int) \mb_substr($birthDate, 6, 2),
(int) \mb_substr($birthDate, 0, 4)
$checkdate = checkdate(
(int) mb_substr($birthDate, 4, 2),
(int) mb_substr($birthDate, 6, 2),
(int) mb_substr($birthDate, 0, 4)
);

if (!$checkdate) {
if (false === $checkdate) {
return false;
}

Expand Down

0 comments on commit 25fec1c

Please sign in to comment.