Implement `RenameHookRankingRector`
### Problem/Motivation Rename the deprecated OOP hook attribute #[Hook('ranking')] to #[Hook('node_search_ranking')] following the deprecation of hook_ranking() in drupal:11.3.0 (removed in drupal:12.0.0). This is a non-backward-compatible rewrite registered in the opt-in DRUPAL_113_BREAKING set, as the node_search_ranking hook does not exist on older Drupal minors. ### Proposed resolution Handled automatically by drupal-rector via the `RenameHookRankingRector` rule. ### How this rule was built This rule was produced with an AI-assisted workflow in which every step was verified manually by @bbrala. Its logic started from the matching drupal-digests entry, which was adapted to drupal-rector's conventions — a dedicated rule or an existing upstream rule configured into the Drupal 12 set — and covered with before/after test fixtures. Backward-compatibility was assessed and version-gated: safe rewrites are applied directly, while unsafe ones are wrapped via `DeprecationHelper` or moved to an opt-in breaking set. The rule was then live-tested against a set of contributed modules; where no contrib call site could be found, a static code sample was written in a test module to exercise it. A final automated QA pass covered type-guard, fixture coverage, BC-decision, registration and idempotency checks. Verified against contrib download_statistics 1.0.x. ### References - Change record(s): [CR-2690393](https://www.drupal.org/node/2690393) - Related issue(s): [#1019966](https://www.drupal.org/i/1019966), [#2690437](https://www.drupal.org/i/2690437), [#2719961](https://www.drupal.org/i/2719961) ### Work items - Commit(s): [f33644ef46](https://github.com/palantirnet/drupal-rector/commit/f33644ef46c4) - Pull request(s): [PR #352](https://github.com/palantirnet/drupal-rector/pull/352) ### Credit - Implemented by: @bbrala - Reviewed / helped by: @mglaman --- *Filed retroactively as part of the Drupal 12 rector coverage effort. Closed as fixed; credit to be applied to the contributors listed above.* *AI was used extensively to build this rule and to file this issue. See [Dries Buytaert: AI-generated Rector rules for Drupal](https://dri.es/ai-generated-rector-rules-for-drupal) and [Björn Brala: Drupal Rector rules are config, not code. Mostly.](https://www.linkedin.com/pulse/drupal-rector-rules-config-code-mostly-bj%C3%B6rn-brala-vfpwe/).*
issue