+
+> ایریس از پروژه ی [muxie](https://github.com/kataras/muxie) که موثرترین و سریع ترین پروژه مسیریابی در GO می باشد استفاده می کند.
+
+
+
+
+
+آیریس داری **[wiki](https://github.com/kataras/iris/wiki)** بسیار کامل و گسترده ای میباشد که یادگیری ان را ساده می کند.
+
+
+شما برای مشاهده و خواندن داکیومنت های فنی میتوانید به [godocs](https://godoc.org/github.com/kataras/iris) مراجعه کنید و همچنین برای مشاهده مثال ها و کد های قابل اجرا همیشه میتوانید از [مثال ها](_examples/) استفاده کنید .
+
+
+### آیا شما مطالعه کردن در طول سفر را دوست دارید ؟
+
+
+
+
+
+
+
+
+
+شما میتوانید در خواست یک نسخه PDF داکیومنت ر ا به صورت رایگان از اینجا بدهید [درخواست](https://bit.ly/iris-req-book)
+
+## مشارکت کردن
+
+ما دوست داریم که شما در فریمورک آیریس مشارکت کنید و کد ها را توسعه و بهبود ببخشید ! برای اطلاع بیشتر در مورد نحوه ی مشارکت کردن در این پروژه لطفا اینجا را بررسی کنید [CONTRIBUTING.md](CONTRIBUTING.md)
+
+[مشاهده ی همه ی مشارکت کننده ها](https://github.com/kataras/iris/graphs/contributors)
+
+## باگ های امنیتی
+
+اگر شما باگ های امنیتی در آیریس پیدا کردید لطفا یک ایمیل به [iris-go@outlook.com](mailto:iris-go@outlook.com) ارسال کنید. همه ی باگ های امنیتی بلافاصله برطرف میشود.
+
+## مجوز
+
+نام پروژه آیریس ریشه ای یونانی دارد.
+
+فریمورک آیریس رایگان و سورس باز و تحت مجوز [3-Clause BSD License](LICENSE) می باشد.
+
+
\ No newline at end of file
diff --git a/mvc/controller_method_parser.go b/mvc/controller_method_parser.go
index 650a880a..aef3062f 100644
--- a/mvc/controller_method_parser.go
+++ b/mvc/controller_method_parser.go
@@ -51,7 +51,7 @@ func (l *methodLexer) reset(s string) {
}
if end > 0 && len(s) >= end {
- words = append(words, s[start:end])
+ words = append(words, s[start:])
}
}
diff --git a/mvc/controller_test.go b/mvc/controller_test.go
index 5575f421..db9acfa8 100644
--- a/mvc/controller_test.go
+++ b/mvc/controller_test.go
@@ -409,6 +409,10 @@ func (c *testControllerRelPathFromFunc) GetSomethingByBy(string, int) {}
func (c *testControllerRelPathFromFunc) GetSomethingNewBy(string, int) {} // two input arguments, one By which is the latest word.
func (c *testControllerRelPathFromFunc) GetSomethingByElseThisBy(bool, int) {} // two input arguments
+func (c *testControllerRelPathFromFunc) GetLocationX() {}
+func (c *testControllerRelPathFromFunc) GetLocationXY() {}
+func (c *testControllerRelPathFromFunc) GetLocationZBy(int) {}
+
func TestControllerRelPathFromFunc(t *testing.T) {
app := iris.New()
New(app).Handle(new(testControllerRelPathFromFunc))
@@ -449,6 +453,13 @@ func TestControllerRelPathFromFunc(t *testing.T) {
Body().Equal("GET:/42")
e.GET("/anything/here").Expect().Status(iris.StatusOK).
Body().Equal("GET:/anything/here")
+
+ e.GET("/location/x").Expect().Status(iris.StatusOK).
+ Body().Equal("GET:/location/x")
+ e.GET("/location/x/y").Expect().Status(iris.StatusOK).
+ Body().Equal("GET:/location/x/y")
+ e.GET("/location/z/42").Expect().Status(iris.StatusOK).
+ Body().Equal("GET:/location/z/42")
}
type testControllerActivateListener struct {