From f12d0cc66b7e18df912531ff88e7eb5fe9b047dc Mon Sep 17 00:00:00 2001 From: "Gustavo L de Mello (Guz)" Date: Wed, 22 Jan 2025 19:20:21 -0300 Subject: [PATCH] refactor(blogo,plugin): move plugin definitions to their own file --- .../group.go} | 12 ++++++++--- blogo/{plugins.go => plugin/plugin.go} | 20 ++++++++----------- 2 files changed, 17 insertions(+), 15 deletions(-) rename blogo/{plugin_plugingroup.go => plugin/group.go} (85%) rename blogo/{plugins.go => plugin/plugin.go} (75%) diff --git a/blogo/plugin_plugingroup.go b/blogo/plugin/group.go similarity index 85% rename from blogo/plugin_plugingroup.go rename to blogo/plugin/group.go index dc86867..1a565d6 100644 --- a/blogo/plugin_plugingroup.go +++ b/blogo/plugin/group.go @@ -13,9 +13,15 @@ // See the License for the specific language governing permissions and // limitations under the License. -package blogo +package plugin -const pluginGroupPluginName = "blogo-plugingroup-group" +const pluginGroupName = "blogo-plugingroup-group" + +type PluginGroup interface { + Plugin + WithPlugins + Plugins() []Plugin +} type pluginGroup struct { plugins []Plugin @@ -26,7 +32,7 @@ func NewPluginGroup(plugins ...Plugin) PluginGroup { } func (p *pluginGroup) Name() string { - return pluginGroupPluginName + return pluginGroupName } func (p *pluginGroup) Use(plugin Plugin) { diff --git a/blogo/plugins.go b/blogo/plugin/plugin.go similarity index 75% rename from blogo/plugins.go rename to blogo/plugin/plugin.go index 90dc259..f813020 100644 --- a/blogo/plugins.go +++ b/blogo/plugin/plugin.go @@ -13,33 +13,29 @@ // See the License for the specific language governing permissions and // limitations under the License. -package blogo +package plugin import ( "io" + + "forge.capytal.company/loreddev/x/blogo/fs" ) type Plugin interface { Name() string } -type PluginWithPlugins interface { +type WithPlugins interface { Plugin Use(Plugin) } -type PluginGroup interface { +type Renderer interface { Plugin - PluginWithPlugins - Plugins() []Plugin + Render(src fs.File, out io.Writer) error } -type RendererPlugin interface { +type Sourcer interface { Plugin - Render(src File, out io.Writer) error -} - -type SourcerPlugin interface { - Plugin - Source() (FS, error) + Source() (fs.FS, error) }