• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

Yoast / whip / 6985375056

24 Nov 2023 10:53PM UTC coverage: 28.713% (+1.2%) from 27.5%
6985375056

push

github

web-flow
Merge pull request #152 from Yoast/JRF/ghactions-switch-to-coveralls-reporter

GH Actions: switch to Coveralls action runner to upload reports

87 of 303 relevant lines covered (28.71%)

2.62 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

9.52
/src/Whip_MessagesManager.php
1
<?php
2
/**
3
 * WHIP libary file.
4
 *
5
 * @package Yoast\WHIP
6
 */
7

8
/**
9
 * Manages messages using a global to prevent duplicate messages.
10
 */
11
class Whip_MessagesManager {
12

13
        /**
14
         * Whip_MessagesManager constructor.
15
         */
16
        public function __construct() {
×
17
                if ( ! array_key_exists( 'whip_messages', $GLOBALS ) ) {
×
18
                        $GLOBALS['whip_messages'] = array();
×
19
                }
20
        }
21

22
        /**
23
         * Adds a message to the Messages Manager.
24
         *
25
         * @param Whip_Message $message The message to add.
26
         *
27
         * @return void
28
         */
29
        public function addMessage( Whip_Message $message ) {
×
30
                $whipVersion = require __DIR__ . '/configs/version.php';
×
31

32
                $GLOBALS['whip_messages'][ $whipVersion ] = $message;
×
33
        }
34

35
        /**
36
         * Determines whether or not there are messages available.
37
         *
38
         * @return bool Whether or not there are messages available.
39
         */
40
        public function hasMessages() {
3✔
41
                return isset( $GLOBALS['whip_messages'] ) && count( $GLOBALS['whip_messages'] ) > 0;
3✔
42
        }
43

44
        /**
45
         * Lists the messages that are currently available.
46
         *
47
         * @return array The messages that are currently set.
48
         */
49
        public function listMessages() {
×
50
                return $GLOBALS['whip_messages'];
×
51
        }
52

53
        /**
54
         * Deletes all messages.
55
         *
56
         * @return void
57
         */
58
        public function deleteMessages() {
×
59
                unset( $GLOBALS['whip_messages'] );
×
60
        }
61

62
        /**
63
         * Gets the latest message.
64
         *
65
         * @return Whip_Message The message. Returns a NullMessage if none is found.
66
         */
67
        public function getLatestMessage() {
×
68
                if ( ! $this->hasMessages() ) {
×
69
                        return new Whip_NullMessage();
×
70
                }
71

72
                $messages = $this->sortByVersion( $this->listMessages() );
×
73

74
                $this->deleteMessages();
×
75

76
                return array_pop( $messages );
×
77
        }
78

79
        /**
80
         * Sorts the list of messages based on the version number.
81
         *
82
         * @param array $messages The list of messages to sort.
83
         *
84
         * @return array The sorted list of messages.
85
         */
86
        private function sortByVersion( array $messages ) {
×
87
                uksort( $messages, 'version_compare' );
×
88

89
                return $messages;
×
90
        }
91
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc