Files
piratepoet/lib/WP
Rostislav Wolny 6f6bbbd1a3 Ensure same data types for all autocompelete list items
In client code we expect that botch category and product ids
are strings but we send strings for lists based on posts and integers
for lists based on terms. We use mostly string values so this change unifies
that all ids for autocomplete lists are strings.
[MAILPOET-3555]
2021-04-12 09:24:05 +02:00
..

<?php

namespace MailPoet\WP;

class Readme {
  public static function parseChangelog($readmeTxt, $limit = null) {
    // Extract changelog section of the readme.txt
    preg_match('/== Changelog ==(.*?)(\n==|$)/is', $readmeTxt, $changelog);

    if (empty($changelog[1])) {
      return false;
    }

    // Get changelog entries
    $entries = preg_split('/\n(?=\=)/', trim($changelog[1]), -1, PREG_SPLIT_NO_EMPTY);

    if (empty($entries)) {
      return false;
    }

    $c = 0;
    $changelog = [];

    foreach ($entries as $entry) {
      // Locate version header and changes list
      preg_match('/=(.*?)=(.*)/s', $entry, $parts);

      if (empty($parts[1]) || empty($parts[2])) {
        return false;
      }

      $header = trim($parts[1]);
      $list = trim($parts[2]);

      // Get individual items from the list
      $list = preg_split('/(^|\n)[\* ]*/', $list, -1, PREG_SPLIT_NO_EMPTY);

      $changelog[] = [
        'version' => $header,
        'changes' => $list,
      ];

      if (++$c == $limit) {
        break;
      }
    }

    return $changelog;
  }
}