plugin struct

Fields:

  • file (string)

Methods:

Name


Returns:
  • string

Show/Hide Method Body
{ return "seo" }

Priority


Returns:
  • int

Show/Hide Method Body
{ return 0 }

PreBuild


Parameters:
  • raw json.RawMessage

Returns:
  • error

Show/Hide Method Body
{
	var b strings.Builder
	b.WriteString("// Code generated by seo plugin. DO NOT EDIT.\n")
	b.WriteString("package main\n\n")
	b.WriteString("import \"github.com/rfwlab/rfw/v1/plugins/seo\"\n\n")
	b.WriteString("func init() {\n")
	b.WriteString("\t_ = seo.New().Build([]byte(" + strconv.Quote(string(raw)) + "))\n")
	b.WriteString("}\n")
	p.file = "rfw_seo.go"
	return os.WriteFile(p.file, []byte(b.String()), 0o644)
}

PostBuild


Parameters:
  • json.RawMessage

Returns:
  • error

Show/Hide Method Body
{
	if p.file != "" {
		_ = os.Remove(p.file)
		p.file = ""
	}
	return nil
}

ShouldRebuild


Parameters:
  • string

Returns:
  • bool

Show/Hide Method Body
{ return false }

Build


Parameters:
  • json.RawMessage

Returns:
  • error

Show/Hide Method Body
{ return nil }

init function

Show/Hide Function Body
{ plugins.Register(&plugin{}) }

TestPreAndPostBuild function

TestPreAndPostBuild verifies the stub file is created and cleaned up.

Parameters:

  • t *testing.T
Show/Hide Function Body
{
	p := &plugin{}
	raw := json.RawMessage(`{"title":"x"}`)
	if err := p.PreBuild(raw); err != nil {
		t.Fatalf("PreBuild: %v", err)
	}
	if _, err := os.Stat("rfw_seo.go"); err != nil {
		t.Fatalf("stub not created: %v", err)
	}
	if err := p.PostBuild(nil); err != nil {
		t.Fatalf("PostBuild: %v", err)
	}
	if _, err := os.Stat("rfw_seo.go"); !os.IsNotExist(err) {
		t.Fatalf("stub not removed")
	}
}

encoding/json import

Import example:

import "encoding/json"

os import

Import example:

import "os"

strconv import

Import example:

import "strconv"

strings import

Import example:

import "strings"

github.com/rfwlab/rfw/cmd/rfw/plugins import

Import example:

import "github.com/rfwlab/rfw/cmd/rfw/plugins"

encoding/json import

Import example:

import "encoding/json"

os import

Import example:

import "os"

testing import

Import example:

import "testing"