diff --git a/context.go b/context.go index 3771a8b..f4f1834 100644 --- a/context.go +++ b/context.go @@ -17,4 +17,5 @@ type Context interface { Set(key string, value interface{}) Render(status int, rr render.Renderer) error Redirect(status int, url string) error + Env() string } diff --git a/default_context.go b/default_context.go index 2de86ca..6a827ce 100644 --- a/default_context.go +++ b/default_context.go @@ -11,7 +11,7 @@ import ( "github.com/gorilla/mux" ) -func NewContext(r Route, res http.ResponseWriter, req *http.Request) *DefaultContext { +func NewContext(r Route, res http.ResponseWriter, req *http.Request, env string) *DefaultContext { data := make(map[string]interface{}) data["path"] = r.Path @@ -26,6 +26,7 @@ func NewContext(r Route, res http.ResponseWriter, req *http.Request) *DefaultCon request: req, params: params, data: data, + env: env, } } @@ -36,6 +37,7 @@ type DefaultContext struct { params url.Values contentType string data map[string]interface{} + env string } // Response returns the original Response for the request. @@ -111,3 +113,7 @@ func (d *DefaultContext) Redirect(status int, url string) error { http.Redirect(d.Response(), d.Request(), url, status) return nil } + +func (d *DefaultContext) Env() string { + return d.env +} diff --git a/default_router.go b/default_router.go index 4c47def..cd63100 100644 --- a/default_router.go +++ b/default_router.go @@ -15,12 +15,17 @@ type DefaultRouter struct { StaticRoutes []*StaticRoute prefix string + env string } func (r *DefaultRouter) Prefix(path string) { r.prefix = path } +func (r *DefaultRouter) SetEnv(env string) { + r.env = env +} + func (r *DefaultRouter) GET(path string, h Handler) { r.addRoute(http.MethodGet, path, h) } diff --git a/examples/default_router.go b/examples/default_router.go index 5c0f96e..10919c3 100644 --- a/examples/default_router.go +++ b/examples/default_router.go @@ -9,7 +9,7 @@ import ( func main() { router := tuu.NewRouter() - + router.SetEnv("dev") router.GET("/home", func(ctx tuu.Context) error { ctx.Set("template_data", "some value") @@ -26,7 +26,11 @@ func main() { }) app := tuu.New(router) - if err := app.Serve(); err != nil { + if err := app.Serve(tuu.Config{ + IPAddr: "127.0.0.1", + Port: "8080", + Env: "dev", + }); err != nil { panic(err) } } diff --git a/readme.md b/readme.md index 5265548..dc7f8a0 100644 --- a/readme.md +++ b/readme.md @@ -1,6 +1,5 @@ # Tuu A minimal framework for rapid web development in golang. -### Things to do before alpha -- [ ] Write some tests -- [ ] Create an example +Documentation coming soon. + diff --git a/router.go b/router.go index 4c7fd31..145ca79 100644 --- a/router.go +++ b/router.go @@ -6,6 +6,8 @@ type Handler func(Context) error type Router interface { Prefix(path string) + SetEnv(env string) + GET(path string, h Handler) POST(path string, h Handler) Static(path string, root http.FileSystem) diff --git a/tuu.go b/tuu.go index 7aa41f2..23fa183 100644 --- a/tuu.go +++ b/tuu.go @@ -14,6 +14,7 @@ import ( type Config struct { IPAddr string Port string + Env string } func New(r Router) *App { @@ -25,7 +26,7 @@ type App struct { } func (a *App) Serve(cfg Config) error { - log.Printf("http server running @ %s:%s", cfg.IPAddr, cfg.Port) + log.Printf("http server running @ http://%s:%s", cfg.IPAddr, cfg.Port) r := mux.NewRouter() @@ -60,8 +61,5 @@ func (a *App) Serve(cfg Config) error { }() // start the web server - if err := server.ListenAndServe(); err != nil { - return err - } - return nil + return server.ListenAndServe() }