Skip to content

Commit

Permalink
BasePath is not longer an exported field, but a method instead
Browse files Browse the repository at this point in the history
  • Loading branch information
manucorporat committed Jul 8, 2015
1 parent 0873992 commit fc5e355
Show file tree
Hide file tree
Showing 4 changed files with 13 additions and 9 deletions.
2 changes: 1 addition & 1 deletion gin.go
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ func New() *Engine {
engine := &Engine{
RouterGroup: RouterGroup{
Handlers: nil,
BasePath: "/",
basePath: "/",
root: true,
},
RedirectTrailingSlash: true,
Expand Down
2 changes: 1 addition & 1 deletion gin_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ func init() {

func TestCreateEngine(t *testing.T) {
router := New()
assert.Equal(t, "/", router.BasePath)
assert.Equal(t, "/", router.basePath)
assert.Equal(t, router.engine, router)
assert.Empty(t, router.Handlers)
}
Expand Down
10 changes: 7 additions & 3 deletions routergroup.go
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ type (
// and an array of handlers (middlewares)
RouterGroup struct {
Handlers HandlersChain
BasePath string
basePath string
engine *Engine
root bool
}
Expand All @@ -58,11 +58,15 @@ func (group *RouterGroup) Use(middlewares ...HandlerFunc) IRoutes {
func (group *RouterGroup) Group(relativePath string, handlers ...HandlerFunc) *RouterGroup {
return &RouterGroup{
Handlers: group.combineHandlers(handlers),
BasePath: group.calculateAbsolutePath(relativePath),
basePath: group.calculateAbsolutePath(relativePath),
engine: group.engine,
}
}

func (group *RouterGroup) BasePath() string {
return group.basePath
}

func (group *RouterGroup) handle(httpMethod, relativePath string, handlers HandlersChain) IRoutes {
absolutePath := group.calculateAbsolutePath(relativePath)
handlers = group.combineHandlers(handlers)
Expand Down Expand Up @@ -200,7 +204,7 @@ func (group *RouterGroup) combineHandlers(handlers HandlersChain) HandlersChain
}

func (group *RouterGroup) calculateAbsolutePath(relativePath string) string {
return joinPaths(group.BasePath, relativePath)
return joinPaths(group.basePath, relativePath)
}

func (group *RouterGroup) returnObj() IRoutes {
Expand Down
8 changes: 4 additions & 4 deletions routergroup_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,14 +20,14 @@ func TestRouterGroupBasic(t *testing.T) {
group.Use(func(c *Context) {})

assert.Len(t, group.Handlers, 2)
assert.Equal(t, group.BasePath, "/hola")
assert.Equal(t, group.BasePath(), "/hola")
assert.Equal(t, group.engine, router)

group2 := group.Group("manu")
group2.Use(func(c *Context) {}, func(c *Context) {})

assert.Len(t, group2.Handlers, 4)
assert.Equal(t, group2.BasePath, "/hola/manu")
assert.Equal(t, group2.BasePath(), "/hola/manu")
assert.Equal(t, group2.engine, router)
}

Expand All @@ -44,10 +44,10 @@ func TestRouterGroupBasicHandle(t *testing.T) {
func performRequestInGroup(t *testing.T, method string) {
router := New()
v1 := router.Group("v1", func(c *Context) {})
assert.Equal(t, v1.BasePath, "/v1")
assert.Equal(t, v1.BasePath(), "/v1")

login := v1.Group("/login/", func(c *Context) {}, func(c *Context) {})
assert.Equal(t, login.BasePath, "/v1/login/")
assert.Equal(t, login.BasePath(), "/v1/login/")

handler := func(c *Context) {
c.String(400, "the method was %s and index %d", c.Request.Method, c.index)
Expand Down

0 comments on commit fc5e355

Please sign in to comment.