Skip to content

Commit

Permalink
Cleanup some codes
Browse files Browse the repository at this point in the history
  • Loading branch information
jinzhu committed Nov 11, 2013
1 parent 1c49c4e commit 0327dee
Show file tree
Hide file tree
Showing 4 changed files with 25 additions and 30 deletions.
1 change: 1 addition & 0 deletions chain.go
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ type Chain struct {
func (s *Chain) driver() string {
return s.d.driver
}

func (s *Chain) err(err error) error {
if err != nil {
s.Errors = append(s.Errors, err)
Expand Down
28 changes: 11 additions & 17 deletions do.go
Original file line number Diff line number Diff line change
Expand Up @@ -37,9 +37,7 @@ type Do struct {

func (s *Do) tableName() string {
if len(s.specifiedTableName) == 0 {
var err error
s.guessedTableName, err = s.model.tableName()
s.err(err)
s.guessedTableName = s.model.tableName()
return s.guessedTableName
} else {
return s.specifiedTableName
Expand Down Expand Up @@ -172,8 +170,8 @@ func (s *Do) saveAfterAssociations() {
}

func (s *Do) create() (i interface{}) {
s.err(s.model.callMethod("BeforeCreate"))
s.err(s.model.callMethod("BeforeSave"))
s.model.callMethod("BeforeCreate")
s.model.callMethod("BeforeSave")

s.saveBeforeAssociations()
s.prepareCreateSql()
Expand All @@ -197,8 +195,8 @@ func (s *Do) create() (i interface{}) {
}
s.saveAfterAssociations()

s.err(s.model.callMethod("AfterCreate"))
s.err(s.model.callMethod("AfterSave"))
s.model.callMethod("AfterCreate")
s.model.callMethod("AfterSave")
}
return id
}
Expand Down Expand Up @@ -265,8 +263,8 @@ func (s *Do) update() (i int64) {
}
}

s.err(s.model.callMethod("BeforeUpdate"))
s.err(s.model.callMethod("BeforeSave"))
s.model.callMethod("BeforeUpdate")
s.model.callMethod("BeforeSave")

s.saveBeforeAssociations()
s.prepareUpdateSql(update_attrs)
Expand All @@ -275,10 +273,8 @@ func (s *Do) update() (i int64) {
s.exec()
s.saveAfterAssociations()

if !s.hasError() {
s.err(s.model.callMethod("AfterUpdate"))
s.err(s.model.callMethod("AfterSave"))
}
s.model.callMethod("AfterUpdate")
s.model.callMethod("AfterSave")
}

return s.model.primaryKeyValue()
Expand All @@ -290,7 +286,7 @@ func (s *Do) prepareDeleteSql() {
}

func (s *Do) delete() {
s.err(s.model.callMethod("BeforeDelete"))
s.model.callMethod("BeforeDelete")

if !s.hasError() {
if !s.unscoped && s.model.hasColumn("DeletedAt") {
Expand All @@ -301,9 +297,7 @@ func (s *Do) delete() {
s.prepareDeleteSql()
s.exec()
}
if !s.hasError() {
s.err(s.model.callMethod("AfterDelete"))
}
s.model.callMethod("AfterDelete")
}
return
}
Expand Down
8 changes: 4 additions & 4 deletions gorm_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -1218,25 +1218,25 @@ func TestTableName(t *testing.T) {
var table string

model := &Model{data: Order{}}
table, _ = model.tableName()
table = model.tableName()
if table != "orders" {
t.Errorf("Order table name should be orders")
}

db.SingularTable(true)
table, _ = model.tableName()
table = model.tableName()
if table != "order" {
t.Errorf("Order's singular table name should be order")
}

model2 := &Model{data: Cart{}}
table, _ = model2.tableName()
table = model2.tableName()
if table != "shopping_cart" {
t.Errorf("Cart's singular table name should be shopping_cart")
}

model3 := &Model{data: &Cart{}}
table, _ = model3.tableName()
table = model3.tableName()
if table != "shopping_cart" {
t.Errorf("Cart's singular table name should be shopping_cart")
}
Expand Down
18 changes: 9 additions & 9 deletions model.go
Original file line number Diff line number Diff line change
Expand Up @@ -277,9 +277,9 @@ func (m *Model) typeName() string {
return typ.Name()
}

func (m *Model) tableName() (str string, err error) {
func (m *Model) tableName() (str string) {
if m.data == nil {
err = errors.New("Model haven't been set")
m.do.err(errors.New("Model haven't been set"))
return
}

Expand All @@ -288,7 +288,7 @@ func (m *Model) tableName() (str string, err error) {
v := fm.Call([]reflect.Value{})
if len(v) > 0 {
if result, ok := v[0].Interface().(string); ok {
return result, nil
return result
}
}
}
Expand All @@ -300,29 +300,29 @@ func (m *Model) tableName() (str string, err error) {
for key, value := range pluralMap {
reg := regexp.MustCompile(key + "$")
if reg.MatchString(str) {
return reg.ReplaceAllString(str, value), err
return reg.ReplaceAllString(str, value)
}
}
}

return
}

func (m *Model) callMethod(method string) error {
if m.data == nil {
return nil
func (m *Model) callMethod(method string) {
if m.data == nil || m.do.hasError() {
return
}

fm := reflect.ValueOf(m.data).MethodByName(method)
if fm.IsValid() {
v := fm.Call([]reflect.Value{})
if len(v) > 0 {
if verr, ok := v[0].Interface().(error); ok {
return verr
m.do.err(verr)
}
}
}
return nil
return
}

func (m *Model) returningStr() (str string) {
Expand Down

0 comments on commit 0327dee

Please sign in to comment.