< Summary - go-semantic-release Coverage

Line coverage
100%
Covered lines: 3
Uncovered lines: 0
Coverable lines: 3
Total lines: 33
Line coverage: 100%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
NewGoTemplateRenderer0%00100%

File(s)

/home/runner/work/go-semantic-release/go-semantic-release/internal/adapters/template/renderer.go

#LineLine coverage
 1package tmpl
 2
 3import (
 4  "bytes"
 5  "fmt"
 6  "text/template"
 7
 8  "github.com/jedi-knights/go-semantic-release/internal/ports"
 9)
 10
 11// Compile-time interface compliance check.
 12var _ ports.TemplateRenderer = (*GoTemplateRenderer)(nil)
 13
 14// GoTemplateRenderer implements ports.TemplateRenderer using Go's text/template.
 15type GoTemplateRenderer struct{}
 16
 17// NewGoTemplateRenderer creates a new Go template renderer.
 518func NewGoTemplateRenderer() *GoTemplateRenderer {
 519  return &GoTemplateRenderer{}
 520}
 21
 22func (r *GoTemplateRenderer) Render(templateStr string, data any) (string, error) {
 23  tmpl, err := template.New("render").Parse(templateStr)
 24  if err != nil {
 25    return "", fmt.Errorf("parsing template: %w", err)
 26  }
 27
 28  var buf bytes.Buffer
 29  if err := tmpl.Execute(&buf, data); err != nil {
 30    return "", fmt.Errorf("executing template: %w", err)
 31  }
 32  return buf.String(), nil
 33}

Methods/Properties

NewGoTemplateRenderer