Sam
795e6d72a4
FEATURE: modifier API for plugins ( #20887 )
...
Introduces a new API for plugin data modification without class-based extension overhead.
This commit introduces a new API that allows plugins to modify data in cases where they return different data rather than additional data, as is common with filtered_registers in DiscoursePluginRegistry. This API removes the need for defining class-based extension points.
When a plugin registers a modifier, it will automatically be called if the plugin is enabled. The core will then modify the parameter sent to it using the block registered by the plugin:
```ruby
DiscoursePluginRegistry.register_modifier(plugin_instance, :magic_sum_modifier) { |a, b| a + b }
sum = DiscoursePluginRegistry.apply_modifier(:magic_sum_filter, 1, 2)
expect(sum).to eq(3)
```
Key features of these modifiers:
- Operate in a stack (first registered, first called)
- Automatically disabled when the plugin is disabled
- Pass the cumulative result of all block invocations to the caller
2023-03-30 14:39:55 +11:00
..
2023-01-09 11:49:28 +00:00
2023-03-16 16:09:22 +01:00
2023-01-09 11:49:28 +00:00
2023-01-09 11:49:28 +00:00
2023-01-09 11:49:28 +00:00
2023-01-09 11:49:28 +00:00
2023-01-27 11:27:15 +10:00
2023-03-24 10:16:53 +10:00
2023-03-16 15:27:09 -06:00
2023-03-16 15:27:09 -06:00
2023-02-24 15:57:01 +08:00
2023-01-09 11:49:28 +00:00
2023-01-09 11:49:28 +00:00
2023-01-09 11:49:28 +00:00
2023-01-09 11:49:28 +00:00
2023-01-26 13:26:29 +00:00
2023-03-22 14:43:32 +00:00
2023-03-01 12:45:33 +01:00
2023-03-30 14:39:55 +11:00
2023-01-09 11:49:28 +00:00
2023-01-09 11:49:28 +00:00
2023-01-16 09:08:44 +11:00
2023-01-09 11:49:28 +00:00
2023-01-09 11:49:28 +00:00
2023-03-24 11:40:37 +05:30
2023-02-07 12:24:57 -03:00
2023-03-20 11:41:23 -05:00
2023-01-09 11:49:28 +00:00
2023-03-13 08:09:38 +08:00
2023-02-02 13:03:11 +00:00
2023-01-09 11:49:28 +00:00
2023-02-13 12:39:45 +08:00
2023-01-09 11:49:28 +00:00
2023-01-09 11:49:28 +00:00
2023-01-09 11:49:28 +00:00
2023-01-09 11:49:28 +00:00
2023-03-08 10:39:12 +10:00
2023-01-09 11:49:28 +00:00
2023-01-09 11:49:28 +00:00
2023-01-09 11:49:28 +00:00
2023-02-27 12:48:48 +11:00
2023-01-09 11:49:28 +00:00
2023-02-01 09:55:21 +00:00
2023-01-09 11:49:28 +00:00
2023-01-09 11:49:28 +00:00
2023-01-09 11:49:28 +00:00
2023-01-09 11:49:28 +00:00
2023-01-09 11:49:28 +00:00
2023-01-09 11:49:28 +00:00
2023-01-09 11:49:28 +00:00
2023-01-09 11:49:28 +00:00
2023-01-09 11:49:28 +00:00
2023-01-09 11:49:28 +00:00
2023-01-09 11:49:28 +00:00
2023-02-27 18:43:28 +01:00
2023-03-30 14:39:55 +11:00
2023-01-09 11:49:28 +00:00
2023-01-09 11:49:28 +00:00
2023-01-19 13:59:11 +00:00
2023-01-20 09:50:24 +08:00
2023-01-09 11:49:28 +00:00
2023-01-09 11:49:28 +00:00
2023-01-09 11:49:28 +00:00
2023-01-09 11:49:28 +00:00
2023-01-09 11:49:28 +00:00
2023-01-09 11:49:28 +00:00
2022-08-30 20:33:08 +01:00
2023-01-09 11:49:28 +00:00
2023-01-09 11:49:28 +00:00
2023-01-09 11:49:28 +00:00
2023-01-09 11:49:28 +00:00
2023-01-09 11:49:28 +00:00
2023-01-09 11:49:28 +00:00
2023-01-09 11:49:28 +00:00
2023-01-09 11:49:28 +00:00
2023-01-09 11:49:28 +00:00
2023-01-09 11:49:28 +00:00
2023-01-09 11:49:28 +00:00
2023-01-09 11:49:28 +00:00
2023-01-09 11:49:28 +00:00
2023-03-23 15:16:05 +11:00
2023-01-09 11:49:28 +00:00
2023-01-09 11:49:28 +00:00
2023-01-09 11:49:28 +00:00
2023-01-09 11:49:28 +00:00
2023-01-09 11:49:28 +00:00
2023-01-09 11:49:28 +00:00
2023-01-09 11:49:28 +00:00
2023-01-09 11:49:28 +00:00
2023-01-09 11:49:28 +00:00
2023-01-12 13:54:15 +10:00
2023-01-09 11:49:28 +00:00
2023-01-09 11:49:28 +00:00
2023-01-16 17:28:59 +00:00
2023-01-09 11:49:28 +00:00
2023-01-09 11:49:28 +00:00
2023-01-09 11:49:28 +00:00
2023-01-25 19:17:21 +02:00
2023-01-09 11:49:28 +00:00
2023-01-09 11:49:28 +00:00
2023-01-09 11:49:28 +00:00
2023-01-09 11:49:28 +00:00
2023-03-02 16:40:53 +01:00
2023-01-09 11:49:28 +00:00
2023-01-09 11:49:28 +00:00
2023-03-02 16:40:53 +01:00
2023-01-09 11:49:28 +00:00
2023-01-09 11:49:28 +00:00
2023-01-09 11:49:28 +00:00
2023-01-09 11:49:28 +00:00
2023-03-20 16:56:43 +01:00
2023-03-29 11:54:25 -04:00
2023-03-01 15:35:21 +11:00
2023-01-09 11:49:28 +00:00
2023-01-09 11:49:28 +00:00
2023-01-09 11:49:28 +00:00
2023-01-09 11:49:28 +00:00
2023-01-09 11:49:28 +00:00
2023-01-09 11:49:28 +00:00
2023-01-09 11:49:28 +00:00
2023-01-09 11:49:28 +00:00
2023-01-09 11:49:28 +00:00
2023-01-09 11:49:28 +00:00
2023-02-20 11:53:35 +11:00
2022-07-28 10:27:38 +08:00
2023-01-09 11:49:28 +00:00
2023-01-09 11:49:28 +00:00
2023-01-09 11:49:28 +00:00
2023-01-09 11:49:28 +00:00
2023-01-31 09:09:03 -07:00
2023-01-09 11:49:28 +00:00
2023-01-09 11:49:28 +00:00
2023-01-09 11:49:28 +00:00
2023-01-09 11:49:28 +00:00
2023-01-09 11:49:28 +00:00
2023-01-09 11:49:28 +00:00
2023-01-09 11:49:28 +00:00
2023-01-09 11:49:28 +00:00
2023-03-06 11:41:47 +03:00
2023-01-09 11:49:28 +00:00
2023-01-09 11:49:28 +00:00
2023-01-09 11:49:28 +00:00
2023-01-09 11:49:28 +00:00
2023-01-09 11:49:28 +00:00
2023-03-28 15:52:17 +11:00
2023-02-28 14:31:59 +02:00
2023-01-09 11:49:28 +00:00
2023-02-23 17:22:20 +01:00
2023-01-09 11:49:28 +00:00
2023-03-30 10:57:26 +08:00
2023-02-07 15:28:59 -03:00
2023-01-09 11:49:28 +00:00
2023-01-09 11:49:28 +00:00
2023-01-09 11:49:28 +00:00
2023-01-09 11:49:28 +00:00
2023-01-09 11:49:28 +00:00
2023-01-09 11:49:28 +00:00
2023-03-09 11:52:26 +10:00
2023-03-23 12:01:04 +00:00
2023-01-09 11:49:28 +00:00
2023-01-09 11:49:28 +00:00
2023-01-09 11:49:28 +00:00
2023-01-09 11:49:28 +00:00