Преглед изворни кода

Changes package from buggo to issho, from Bug to Issue

arianagiroux пре 3 недеља
родитељ
комит
bd37bcc3c3
9 измењених фајлова са 69 додато и 69 уклоњено
  1. 4 4
      Readme.md
  2. 3 3
      cmd/main.go
  3. 1 1
      go.mod
  4. 5 5
      io.go
  5. 1 1
      io_test.go
  6. 10 10
      issue.go
  7. 22 22
      issue_test.go
  8. 13 13
      tui.go
  9. 10 10
      tui_test.go

+ 4 - 4
Readme.md

@@ -1,4 +1,4 @@
-# buggo - a queer little tui for the poor mans bug tracker spec
+# buggo - a queer little tui for the poor mans issue tracker spec
 
 ## Usage
 
@@ -6,10 +6,10 @@
 
 ## TODO
 
-- `bug.go:func (b Bug) New(title string, status Field, tags VariadicField, blockedby VariadicField, path string) (bug Bug, err error) { // TODO Implement`
 - `cmd/main.go:// TODO implement interface for browse bugs in folder`
-- `io.go:func WriteBug(bug Bug) (success bool, err error) { return false, nil } // TODO: implement`
-- `io.go:func DeleteBug(bug Bug) (success bool, err error) { return false, nil } // TODO: implement`
+- `io.go:func WriteIssue(issue Issue) (success bool, err error) { return false, nil } // TODO: implement`
+- `io.go:func DeleteIssue(issue Issue) (success bool, err error) { return false, nil } // TODO: implement`
+- `issue.go:func (i Issue) New(title string, status Field, tags VariadicField, blockedby VariadicField, path string) (issue Issue, err error) { // TODO Implement`
 
 ## See also
 

+ 3 - 3
cmd/main.go

@@ -10,9 +10,9 @@
 package main
 
 import (
-	"buggo"
 	"flag"
 	"fmt"
+	"issho"
 	"os"
 
 	tea "github.com/charmbracelet/bubbletea"
@@ -22,9 +22,9 @@ func main() {
 	flag.Parse()
 	arg := flag.Args()
 
-	bug, _ := buggo.Bug.NewFromPath(buggo.Bug{}, arg[0])
+	bug, _ := issho.Issue.NewFromPath(issho.Issue{}, arg[0])
 	p := tea.NewProgram(
-		buggo.Model{Bug: bug},
+		issho.Model{Issue: bug},
 		tea.WithAltScreen(), // use the full size of the terminal in its "alternate screen buffer"
 		// tea.WithMouseCellMotion(), // turn on mouse support so we can track the mouse wheel
 	)

+ 1 - 1
go.mod

@@ -1,4 +1,4 @@
-module buggo
+module issho
 
 go 1.25.6
 

+ 5 - 5
io.go

@@ -1,4 +1,4 @@
-package buggo
+package issho
 
 import (
 	"os"
@@ -18,8 +18,8 @@ func readPath(path string) (output string, err error) {
 	return output, nil
 }
 
-// Writes a bug to disk
-func WriteBug(bug Bug) (success bool, err error) { return false, nil } // TODO: implement
+// Writes a issue to disk
+func WriteIssue(issue Issue) (success bool, err error) { return false, nil } // TODO: implement
 
-// Removes a bug from disk
-func DeleteBug(bug Bug) (success bool, err error) { return false, nil } // TODO: implement
+// Removes a issue from disk
+func DeleteIssue(issue Issue) (success bool, err error) { return false, nil } // TODO: implement

+ 1 - 1
io_test.go

@@ -1,4 +1,4 @@
-package buggo
+package issho
 
 import (
 	"testing"

+ 10 - 10
bug.go → issue.go

@@ -1,5 +1,5 @@
 // Data and interface definitions for bugs
-package buggo
+package issho
 
 import (
 	"os"
@@ -7,10 +7,10 @@ import (
 	"strings"
 )
 
-// Bug Definitions ------------------------------------------------------------
+// Issue Definitions ------------------------------------------------------------
 // ----------------------------------------------------------------------------
 
-type Bug struct {
+type Issue struct {
 	Title       string        // The title of the bug in human readable format
 	Description Field         // The description of the bug
 	Status      Field         // The status of the bug
@@ -21,9 +21,9 @@ type Bug struct {
 	// machineTitle string        // The machine parseable bug title
 }
 
-// Constrcutor for Bugs
-func (b Bug) New(title string, status Field, tags VariadicField, blockedby VariadicField, path string) (bug Bug, err error) { // TODO Implement
-	return Bug{
+// Constrcutor for Issues
+func (i Issue) New(title string, status Field, tags VariadicField, blockedby VariadicField, path string) (issue Issue, err error) { // TODO Implement
+	return Issue{
 		Title:     title,
 		Status:    status,
 		Tags:      tags,
@@ -32,8 +32,8 @@ func (b Bug) New(title string, status Field, tags VariadicField, blockedby Varia
 	}, err
 }
 
-// Constrcutor for Bugs that loads relevant data from disk
-func (b Bug) NewFromPath(path string) (bug Bug, err error) {
+// Constrcutor for Issues that loads relevant data from disk
+func (i Issue) NewFromPath(path string) (bug Issue, err error) {
 	// Required Fields
 	description := &Field{Path: "/description"}
 	status := &Field{Path: "/status"}
@@ -42,7 +42,7 @@ func (b Bug) NewFromPath(path string) (bug Bug, err error) {
 	for _, field := range requiredFields {
 		data, err := readPath(path + field.Path)
 		if err != nil {
-			return Bug{}, err
+			return Issue{}, err
 		}
 
 		field.Data = data
@@ -60,7 +60,7 @@ func (b Bug) NewFromPath(path string) (bug Bug, err error) {
 	// title from path
 	title := parsePathToHuman(path)
 
-	return Bug{
+	return Issue{
 		Title:       title,
 		Description: *description,
 		Status:      *status,

+ 22 - 22
bug_test.go → issue_test.go

@@ -1,4 +1,4 @@
-package buggo
+package issho
 
 import (
 	"testing"
@@ -6,8 +6,8 @@ import (
 	"github.com/stretchr/testify/assert"
 )
 
-func Test_Bug_New(t *testing.T) {
-	testBug := Bug{
+func Test_Issue_New(t *testing.T) {
+	testIssue := Issue{
 		Title:       "test 1",
 		Description: Field{Data: "test description\n", Path: "/description"},
 		Status:      Field{Data: "open:test\n", Path: "/status"},
@@ -27,24 +27,24 @@ func Test_Bug_New(t *testing.T) {
 		},
 	}
 
-	bug, _ := Bug.New(Bug{}, testBug.Title, testBug.Status, testBug.Tags, testBug.Blockedby, testBug.Path)
+	issue, _ := Issue.New(Issue{}, testIssue.Title, testIssue.Status, testIssue.Tags, testIssue.Blockedby, testIssue.Path)
 
-	assert.Equal(t, testBug.Title, bug.Title)
-	assert.Equal(t, testBug.Status, bug.Status)
-	assert.Equal(t, testBug.Tags, bug.Tags)
-	assert.Equal(t, testBug.Blockedby, bug.Blockedby)
-	assert.Equal(t, testBug.Path, bug.Path)
+	assert.Equal(t, testIssue.Title, issue.Title)
+	assert.Equal(t, testIssue.Status, issue.Status)
+	assert.Equal(t, testIssue.Tags, issue.Tags)
+	assert.Equal(t, testIssue.Blockedby, issue.Blockedby)
+	assert.Equal(t, testIssue.Path, issue.Path)
 }
-func Test_Bug_NewFromPath_err_bad_path(t *testing.T) {
-	testBug := Bug{}
-	bug, err := Bug.NewFromPath(testBug, "doesntexist")
+func Test_Issue_NewFromPath_err_bad_path(t *testing.T) {
+	testIssue := Issue{}
+	issue, err := Issue.NewFromPath(testIssue, "doesntexist")
 
 	assert.Error(t, err)
-	assert.Equal(t, testBug, bug)
+	assert.Equal(t, testIssue, issue)
 }
 
-func Test_Bug_NewFromPath_success(t *testing.T) {
-	testBug := Bug{
+func Test_Issue_NewFromPath_success(t *testing.T) {
+	testIssue := Issue{
 		Title:       "test 1",
 		Description: Field{Data: "test description\n", Path: "/description"},
 		Status:      Field{Data: "open:test\n", Path: "/status"},
@@ -64,17 +64,17 @@ func Test_Bug_NewFromPath_success(t *testing.T) {
 		},
 	}
 
-	bug, err := Bug.NewFromPath(Bug{}, "tests/bugs/test-1")
+	issue, err := Issue.NewFromPath(Issue{}, "tests/bugs/test-1")
 	if err != nil {
 		assert.Fail(t, "should not err")
 	}
 
-	assert.Equal(t, testBug.Title, bug.Title)
-	assert.Equal(t, testBug.Description, bug.Description)
-	assert.Equal(t, testBug.Status, bug.Status)
-	assert.Equal(t, testBug.Tags, bug.Tags)
-	assert.Equal(t, testBug.Blockedby, bug.Blockedby)
-	assert.Equal(t, testBug.Path, bug.Path)
+	assert.Equal(t, testIssue.Title, issue.Title)
+	assert.Equal(t, testIssue.Description, issue.Description)
+	assert.Equal(t, testIssue.Status, issue.Status)
+	assert.Equal(t, testIssue.Tags, issue.Tags)
+	assert.Equal(t, testIssue.Blockedby, issue.Blockedby)
+	assert.Equal(t, testIssue.Path, issue.Path)
 }
 
 func Test_Field_New(t *testing.T) {

+ 13 - 13
tui.go

@@ -1,4 +1,4 @@
-package buggo
+package issho
 
 import (
 	"fmt"
@@ -10,7 +10,7 @@ import (
 
 // The main bubbletea Model
 type Model struct {
-	Bug      Bug
+	Issue    Issue
 	Path     string
 	viewport viewport.Model
 }
@@ -51,31 +51,31 @@ var (
 			BorderStyle(lipgloss.NormalBorder())
 )
 
-// Handles all view logic for [buggo.Bug]
-func (m Model) renderBug() string {
+// Handles all view logic for [issue.Issue]
+func (m Model) renderIssue() string {
 	var output string
 	// title
-	output = output + titleStyle.Render(m.Bug.Title)
+	output = output + titleStyle.Render(m.Issue.Title)
 
 	// status
-	output = output + fmt.Sprintf("\n%s", statusStyle.Render(m.Bug.Status.Data))
+	output = output + fmt.Sprintf("\n%s", statusStyle.Render(m.Issue.Status.Data))
 
 	// variadics
 	var tags string
-	for _, field := range m.Bug.Tags.Fields {
+	for _, field := range m.Issue.Tags.Fields {
 		tags = tags + field.Path + ", "
 	}
 	var blockedby string
-	for _, field := range m.Bug.Blockedby.Fields {
+	for _, field := range m.Issue.Blockedby.Fields {
 		blockedby = blockedby + field.Path + ", "
 	}
 
-	if len(m.Bug.Tags.Fields) > 0 {
+	if len(m.Issue.Tags.Fields) > 0 {
 		output = output + variadicTitleStyle.Render("\nTags:")
 		output = output + fmt.Sprintf("\n%s", variadicDataStyle.Render(tags))
 	}
 
-	if len(m.Bug.Blockedby.Fields) > 0 {
+	if len(m.Issue.Blockedby.Fields) > 0 {
 		output = output + variadicTitleStyle.Render("\n\nBlockedby:")
 		output = output + fmt.Sprintf("\n%s", variadicDataStyle.Render(blockedby))
 	}
@@ -83,12 +83,12 @@ func (m Model) renderBug() string {
 	// description
 	output = output + "\n---"
 	output = output + titleStyle.Render("\nDescription:")
-	output = output + fmt.Sprintf("\n%s", m.Bug.Description.Data)
+	output = output + fmt.Sprintf("\n%s", m.Issue.Description.Data)
 
 	return borderStyle.Render(output)
 }
 
-// Wraps [buggo.Model.renderBug] in a viewport
+// Wraps [issue.Model.renderIssue] in a viewport
 func (m Model) View() string {
-	return m.renderBug()
+	return m.renderIssue()
 }

+ 10 - 10
tui_test.go

@@ -1,4 +1,4 @@
-package buggo
+package issho
 
 import (
 	"strings"
@@ -13,8 +13,8 @@ func Test_Model_Init(t *testing.T) {
 }
 
 func Test_Model_Update_quit_on_keymsg(t *testing.T) {
-	testBug, _ := Bug.NewFromPath(Bug{}, "tests/bugs/test-1")
-	testModel := Model{Bug: testBug}
+	testIssue, _ := Issue.NewFromPath(Issue{}, "tests/bugs/test-1")
+	testModel := Model{Issue: testIssue}
 	testMsg := tea.KeyMsg{}
 
 	model, cmd := testModel.Update(testMsg)
@@ -24,8 +24,8 @@ func Test_Model_Update_quit_on_keymsg(t *testing.T) {
 	assert.IsType(t, tea.QuitMsg{}, cmdValue)
 }
 func Test_Model_Update_do_nothing(t *testing.T) {
-	testBug, _ := Bug.NewFromPath(Bug{}, "tests/bugs/test-1")
-	testModel := Model{Bug: testBug}
+	testIssue, _ := Issue.NewFromPath(Issue{}, "tests/bugs/test-1")
+	testModel := Model{Issue: testIssue}
 	var testMsg int
 
 	model, cmd := testModel.Update(testMsg)
@@ -34,16 +34,16 @@ func Test_Model_Update_do_nothing(t *testing.T) {
 	assert.Nil(t, cmd)
 }
 
-func Test_Model_renderBug(t *testing.T) {
-	testBug, _ := Bug.NewFromPath(Bug{}, "tests/bugs/test-1")
-	testRender := Model{Bug: testBug}.renderBug()
+func Test_Model_renderIssue(t *testing.T) {
+	testIssue, _ := Issue.NewFromPath(Issue{}, "tests/bugs/test-1")
+	testRender := Model{Issue: testIssue}.renderIssue()
 
 	assert.True(t, strings.Contains(testRender, "test description"))
 }
 
 func Test_Model_View(t *testing.T) {
-	testBug, _ := Bug.NewFromPath(Bug{}, "tests/bugs/test-1")
-	testRender := Model{Bug: testBug}.View()
+	testIssue, _ := Issue.NewFromPath(Issue{}, "tests/bugs/test-1")
+	testRender := Model{Issue: testIssue}.View()
 
 	assert.True(t, strings.Contains(testRender, "test description"))
 }