Code Duplication    Length = 40-43 lines in 2 locations

projects/packages/blocks/src/class-blocks.php 1 location

@@ 130-172 (lines=43) @@
127
	 *
128
	 * @return boolean True if the version of Gutenberg required by the block or plugin is available.
129
	 */
130
	public static function is_gutenberg_version_available( $version_requirements, $slug ) {
131
		global $wp_version;
132
133
		// Bail if we don't at least have the Gutenberg version requirement, the WP version is optional.
134
		if ( empty( $version_requirements['gutenberg'] ) ) {
135
			return false;
136
		}
137
138
		// If running a local dev build of Gutenberg plugin GUTENBERG_DEVELOPMENT_MODE is set so assume correct version.
139
		if ( defined( 'GUTENBERG_DEVELOPMENT_MODE' ) && GUTENBERG_DEVELOPMENT_MODE ) {
140
			return true;
141
		}
142
143
		$version_available = false;
144
145
		// If running a production build of the Gutenberg plugin then GUTENBERG_VERSION is set, otherwise if WP version
146
		// with required version of Gutenberg is known check that.
147
		if ( defined( 'GUTENBERG_VERSION' ) ) {
148
			$version_available = version_compare( GUTENBERG_VERSION, $version_requirements['gutenberg'], '>=' );
149
		} elseif ( ! empty( $version_requirements['wp'] ) ) {
150
			$version_available = version_compare( $wp_version, $version_requirements['wp'], '>=' );
151
		}
152
153
		if (
154
			! $version_available
155
			&& class_exists( Jetpack_Gutenberg::class ) // This is only useful in Jetpack.
156
		) {
157
			Jetpack_Gutenberg::set_extension_unavailable(
158
				$slug,
159
				'incorrect_gutenberg_version',
160
				array(
161
					'required_feature' => $slug,
162
					'required_version' => $version_requirements,
163
					'current_version'  => array(
164
						'wp'        => $wp_version,
165
						'gutenberg' => defined( 'GUTENBERG_VERSION' ) ? GUTENBERG_VERSION : null,
166
					),
167
				)
168
			);
169
		}
170
171
		return $version_available;
172
	}
173
174
	/**
175
	 * Get CSS classes for a block.

projects/plugins/jetpack/class.jetpack-gutenberg.php 1 location

@@ 106-145 (lines=40) @@
103
	 *
104
	 * @return boolean True if the version of gutenberg required by the block or plugin is available.
105
	 */
106
	public static function is_gutenberg_version_available( $version_requirements, $slug ) {
107
		global $wp_version;
108
109
		// Bail if we don't at least have the gutenberg version requirement, the WP version is optional.
110
		if ( empty( $version_requirements['gutenberg'] ) ) {
111
			return false;
112
		}
113
114
		// If running a local dev build of gutenberg plugin GUTENBERG_DEVELOPMENT_MODE is set so assume correct version.
115
		if ( defined( 'GUTENBERG_DEVELOPMENT_MODE' ) && GUTENBERG_DEVELOPMENT_MODE ) {
116
			return true;
117
		}
118
119
		$version_available = false;
120
121
		// If running a production build of the gutenberg plugin then GUTENBERG_VERSION is set, otherwise if WP version
122
		// with required version of Gutenberg is known check that.
123
		if ( defined( 'GUTENBERG_VERSION' ) ) {
124
			$version_available = version_compare( GUTENBERG_VERSION, $version_requirements['gutenberg'], '>=' );
125
		} elseif ( ! empty( $version_requirements['wp'] ) ) {
126
			$version_available = version_compare( $wp_version, $version_requirements['wp'], '>=' );
127
		}
128
129
		if ( ! $version_available ) {
130
			self::set_extension_unavailable(
131
				$slug,
132
				'incorrect_gutenberg_version',
133
				array(
134
					'required_feature' => $slug,
135
					'required_version' => $version_requirements,
136
					'current_version'  => array(
137
						'wp'        => $wp_version,
138
						'gutenberg' => defined( 'GUTENBERG_VERSION' ) ? GUTENBERG_VERSION : null,
139
					),
140
				)
141
			);
142
		}
143
144
		return $version_available;
145
	}
146
147
	/**
148
	 * Prepend the 'jetpack/' prefix to a block name