Code Duplication    Length = 40-43 lines in 2 locations

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

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

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

@@ 151-193 (lines=43) @@
148
	 *
149
	 * @return boolean True if the version of Gutenberg required by the block or plugin is available.
150
	 */
151
	public static function is_gutenberg_version_available( $version_requirements, $slug ) {
152
		global $wp_version;
153
154
		// Bail if we don't at least have the Gutenberg version requirement, the WP version is optional.
155
		if ( empty( $version_requirements['gutenberg'] ) ) {
156
			return false;
157
		}
158
159
		// If running a local dev build of Gutenberg plugin GUTENBERG_DEVELOPMENT_MODE is set so assume correct version.
160
		if ( defined( 'GUTENBERG_DEVELOPMENT_MODE' ) && GUTENBERG_DEVELOPMENT_MODE ) {
161
			return true;
162
		}
163
164
		$version_available = false;
165
166
		// If running a production build of the Gutenberg plugin then GUTENBERG_VERSION is set, otherwise if WP version
167
		// with required version of Gutenberg is known check that.
168
		if ( defined( 'GUTENBERG_VERSION' ) ) {
169
			$version_available = version_compare( GUTENBERG_VERSION, $version_requirements['gutenberg'], '>=' );
170
		} elseif ( ! empty( $version_requirements['wp'] ) ) {
171
			$version_available = version_compare( $wp_version, $version_requirements['wp'], '>=' );
172
		}
173
174
		if (
175
			! $version_available
176
			&& ! self::is_standalone_block() // This is only useful in Jetpack.
177
		) {
178
			Jetpack_Gutenberg::set_extension_unavailable(
179
				$slug,
180
				'incorrect_gutenberg_version',
181
				array(
182
					'required_feature' => $slug,
183
					'required_version' => $version_requirements,
184
					'current_version'  => array(
185
						'wp'        => $wp_version,
186
						'gutenberg' => defined( 'GUTENBERG_VERSION' ) ? GUTENBERG_VERSION : null,
187
					),
188
				)
189
			);
190
		}
191
192
		return $version_available;
193
	}
194
195
	/**
196
	 * Get CSS classes for a block.