Skip to content

liuzhe0223/go-turbolinks

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 

Repository files navigation

##go-turbolinks

###Martini middleware example

https://gist.github.com/liuzhe0223/5dca0531f5a07bf5cb32

package turbolinks

import (
  "net/http"

  "github.com/go-martini/martini"
  "github.com/liuzhe0223/go-turbolinks/turbolinks"
  "github.com/martini-contrib/sessions"
)

type Session struct {
  session sessions.Session
}

func (s *Session) Get(key string) string {
  val := s.session.Get(key)
  if val == nil {
    return ""
  }

  return val.(string)
}

func (s *Session) Set(key, val string) {
  s.session.Set(key, val)
}

func (s *Session) Del(key string) {
  s.session.Delete(key)
}

func Trubolinks() martini.Handler {
  return func(s sessions.Session, c martini.Context, r *http.Request, w http.ResponseWriter) {
    session := &Session{s}
    rw := w.(martini.ResponseWriter)

    turbolinks.Before(r)

    rw.Before(func(martini.ResponseWriter) {
      turbolinks.After(r, w, session)
    })

    c.Next()
  }
}

About

Golang turbolinks backend

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages