An open API service indexing awesome lists of open source software.

https://github.com/akmittal/turbo-go

Build hotwire apps using go
https://github.com/akmittal/turbo-go

go-template golang hotwire hotwire-turbo

Last synced: 6 months ago
JSON representation

Build hotwire apps using go

Awesome Lists containing this project

README

          

## Turbo-go

Build hotwire applications using Go

## Example
Examples are in [examples](http://github.com/akmittal/turbo-go/tree/master/examples) directory

## Install turbo-go
``` text
go get github.com/akmittal/turbo-go
```

## API
```github.com/akmittal/turbo-go/pkg/turbo```

Send single template update
``` go
messageTemp, err := template.New("message").parse(`

{{.}}
`)
data := time.Now()
turbo := turbo.Turbo{
Action: turbo.APPEND, // Action can be UPDATE, APPEND, PREPEND, REPLACE, REMOVE
Template: messageTemp,
Target: "messages",
Data: data,
}
```

Send stream of templates

``` go
func main(){
// Create hub
hub := turbo.NewHub()
go hub.Run()
mux.Get("/socket", func(rw http.ResponseWriter, req *http.Request) {
getSocket(msgChan, hub, rw, req)
})
}

func getSocket(msgChan chan interface{}, hub *turbo.Hub, rw http.ResponseWriter, req *http.Request) {
temp, _ := template.ParseFiles("templates/messages.temp.html")
messageTemp := temp.Lookup("message")

appendMessage := turbo.Stream{
Action: turbo.APPEND,
Template: messageTemp,
Target: "messages",
Data: msgChan,
}

appendMessage.Stream(hub, rw, req)
}

```