Skip to content

Commit 46363d9

Browse files
committed
revel#1056 review and improvements
2 parents abaefa9 + 20d059a commit 46363d9

35 files changed

+253
-159
lines changed

binder.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -329,7 +329,7 @@ func unbindSlice(output map[string]string, name string, val interface{}) {
329329
func bindStruct(params *Params, name string, typ reflect.Type) reflect.Value {
330330
result := reflect.New(typ).Elem()
331331
fieldValues := make(map[string]reflect.Value)
332-
for key, _ := range params.Values {
332+
for key := range params.Values {
333333
if !strings.HasPrefix(key, name+".") {
334334
continue
335335
}

binder_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,7 @@ func TestBinder(t *testing.T) {
180180

181181
// Get the keys in sorted order to make the expectation right.
182182
keys := []string{}
183-
for k, _ := range expectedFiles {
183+
for k := range expectedFiles {
184184
keys = append(keys, k)
185185
}
186186
sort.Strings(keys)
@@ -217,7 +217,7 @@ func TestBinder(t *testing.T) {
217217
t.Fatalf("%s (%s) - Number of files: (expected) %d != %d (actual)",
218218
k, typ, len(fhs), actual.Len())
219219
}
220-
for i, _ := range fhs {
220+
for i := range fhs {
221221
returns := reflect.ValueOf(binding.f).Call([]reflect.Value{actual.Index(i)})
222222
if !returns[0].IsValid() {
223223
t.Errorf("%s (%s) - Returned nil.", k, typ)

cache/cache.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -117,8 +117,8 @@ type Cache interface {
117117
var (
118118
Instance Cache
119119

120-
ErrCacheMiss = errors.New("revel/cache: key not found.")
121-
ErrNotStored = errors.New("revel/cache: not stored.")
120+
ErrCacheMiss = errors.New("revel/cache: key not found")
121+
ErrNotStored = errors.New("revel/cache: not stored")
122122
)
123123

124124
// The package implements the Cache interface (as sugar).

cache/cache_test.go

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -79,34 +79,38 @@ func expiration(t *testing.T, newCache cacheFactory) {
7979
cache := newCache(t, time.Second)
8080
// Test Set w/ DEFAULT
8181
value := 10
82-
cache.Set("int", value, DEFAULT)
82+
if err = cache.Set("int", value, DEFAULT); err != nil {
83+
t.Errorf("Set failed: %s", err)
84+
}
8385
time.Sleep(2 * time.Second)
84-
err = cache.Get("int", &value)
85-
if err != ErrCacheMiss {
86+
if err = cache.Get("int", &value); err != ErrCacheMiss {
8687
t.Errorf("Expected CacheMiss, but got: %s", err)
8788
}
8889

8990
// Test Set w/ short time
90-
cache.Set("int", value, time.Second)
91+
if err = cache.Set("int", value, time.Second); err != nil {
92+
t.Errorf("Set failed: %s", err)
93+
}
9194
time.Sleep(2 * time.Second)
92-
err = cache.Get("int", &value)
93-
if err != ErrCacheMiss {
95+
if err = cache.Get("int", &value); err != ErrCacheMiss {
9496
t.Errorf("Expected CacheMiss, but got: %s", err)
9597
}
9698

9799
// Test Set w/ longer time.
98-
cache.Set("int", value, time.Hour)
100+
if err = cache.Set("int", value, time.Hour); err != nil {
101+
t.Errorf("Set failed: %s", err)
102+
}
99103
time.Sleep(2 * time.Second)
100-
err = cache.Get("int", &value)
101-
if err != nil {
104+
if err = cache.Get("int", &value); err != nil {
102105
t.Errorf("Expected to get the value, but got: %s", err)
103106
}
104107

105108
// Test Set w/ forever.
106-
cache.Set("int", value, FOREVER)
109+
if err = cache.Set("int", value, FOREVER); err != nil {
110+
t.Errorf("Set failed: %s", err)
111+
}
107112
time.Sleep(2 * time.Second)
108-
err = cache.Get("int", &value)
109-
if err != nil {
113+
if err = cache.Get("int", &value); err != nil {
110114
t.Errorf("Expected to get the value, but got: %s", err)
111115
}
112116
}

cache/init.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
package cache
22

33
import (
4-
"github.com/revel/revel"
54
"strings"
65
"time"
6+
7+
"github.com/revel/revel"
78
)
89

910
func init() {

cache/inmemory.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,11 @@ package cache
22

33
import (
44
"fmt"
5-
"github.com/revel/revel"
6-
"github.com/robfig/go-cache"
75
"reflect"
86
"time"
7+
8+
"github.com/revel/revel"
9+
"github.com/robfig/go-cache"
910
)
1011

1112
type InMemoryCache struct {

cache/memcached.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,10 @@ package cache
22

33
import (
44
"errors"
5+
"time"
6+
57
"github.com/bradfitz/gomemcache/memcache"
68
"github.com/revel/revel"
7-
"time"
89
)
910

1011
// Wraps the Memcached client to meet the Cache interface.
@@ -60,7 +61,7 @@ func (c MemcachedCache) Decrement(key string, delta uint64) (newValue uint64, er
6061
}
6162

6263
func (c MemcachedCache) Flush() error {
63-
err := errors.New("revel/cache: can not flush memcached.")
64+
err := errors.New("revel/cache: can not flush memcached")
6465
revel.ERROR.Println(err)
6566
return err
6667
}

cache/memcached_test.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,10 @@ const testServer = "localhost:11211"
1212
var newMemcachedCache = func(t *testing.T, defaultExpiration time.Duration) Cache {
1313
c, err := net.Dial("tcp", testServer)
1414
if err == nil {
15-
c.Write([]byte("flush_all\r\n"))
16-
c.Close()
15+
if _, err = c.Write([]byte("flush_all\r\n")); err != nil {
16+
t.Errorf("Write failed: %s", err)
17+
}
18+
_ = c.Close()
1719
return NewMemcachedCache([]string{testServer}, defaultExpiration)
1820
}
1921
t.Errorf("couldn't connect to memcached on %s", testServer)

cache/redis.go

Lines changed: 48 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -29,39 +29,42 @@ func NewRedisCache(host string, password string, defaultExpiration time.Duration
2929
return nil, err
3030
}
3131
if len(password) > 0 {
32-
if _, err := c.Do("AUTH", password); err != nil {
33-
c.Close()
32+
if _, err = c.Do("AUTH", password); err != nil {
33+
_ = c.Close()
3434
return nil, err
3535
}
3636
} else {
3737
// check with PING
38-
if _, err := c.Do("PING"); err != nil {
39-
c.Close()
38+
if _, err = c.Do("PING"); err != nil {
39+
_ = c.Close()
4040
return nil, err
4141
}
4242
}
4343
return c, err
4444
},
4545
// custom connection test method
4646
TestOnBorrow: func(c redis.Conn, t time.Time) error {
47-
if _, err := c.Do("PING"); err != nil {
48-
return err
49-
}
50-
return nil
47+
_, err := c.Do("PING")
48+
return err
5149
},
5250
}
5351
return RedisCache{pool, defaultExpiration}
5452
}
5553

5654
func (c RedisCache) Set(key string, value interface{}, expires time.Duration) error {
5755
conn := c.pool.Get()
58-
defer conn.Close()
56+
defer func() {
57+
_ = conn.Close()
58+
}()
5959
return c.invoke(conn.Do, key, value, expires)
6060
}
6161

6262
func (c RedisCache) Add(key string, value interface{}, expires time.Duration) error {
6363
conn := c.pool.Get()
64-
defer conn.Close()
64+
defer func() {
65+
_ = conn.Close()
66+
}()
67+
6568
existed, err := exists(conn, key)
6669
if err != nil {
6770
return err
@@ -73,24 +76,29 @@ func (c RedisCache) Add(key string, value interface{}, expires time.Duration) er
7376

7477
func (c RedisCache) Replace(key string, value interface{}, expires time.Duration) error {
7578
conn := c.pool.Get()
76-
defer conn.Close()
79+
defer func() {
80+
_ = conn.Close()
81+
}()
82+
7783
existed, err := exists(conn, key)
7884
if err != nil {
7985
return err
8086
} else if !existed {
8187
return ErrNotStored
8288
}
89+
8390
err = c.invoke(conn.Do, key, value, expires)
8491
if value == nil {
8592
return ErrNotStored
86-
} else {
87-
return err
8893
}
94+
return err
8995
}
9096

9197
func (c RedisCache) Get(key string, ptrValue interface{}) error {
9298
conn := c.pool.Get()
93-
defer conn.Close()
99+
defer func() {
100+
_ = conn.Close()
101+
}()
94102
raw, err := conn.Do("GET", key)
95103
if err != nil {
96104
return err
@@ -114,7 +122,9 @@ func generalizeStringSlice(strs []string) []interface{} {
114122

115123
func (c RedisCache) GetMulti(keys ...string) (Getter, error) {
116124
conn := c.pool.Get()
117-
defer conn.Close()
125+
defer func() {
126+
_ = conn.Close()
127+
}()
118128

119129
items, err := redis.Values(conn.Do("MGET", generalizeStringSlice(keys)...))
120130
if err != nil {
@@ -142,7 +152,9 @@ func exists(conn redis.Conn, key string) (bool, error) {
142152

143153
func (c RedisCache) Delete(key string) error {
144154
conn := c.pool.Get()
145-
defer conn.Close()
155+
defer func() {
156+
_ = conn.Close()
157+
}()
146158
existed, err := redis.Bool(conn.Do("DEL", key))
147159
if err == nil && !existed {
148160
err = ErrCacheMiss
@@ -152,8 +164,10 @@ func (c RedisCache) Delete(key string) error {
152164

153165
func (c RedisCache) Increment(key string, delta uint64) (uint64, error) {
154166
conn := c.pool.Get()
155-
defer conn.Close()
156-
// Check for existence *before* increment as per the cache contract.
167+
defer func() {
168+
_ = conn.Close()
169+
}()
170+
// Check for existance *before* increment as per the cache contract.
157171
// redis will auto create the key, and we don't want that. Since we need to do increment
158172
// ourselves instead of natively via INCRBY (redis doesn't support wrapping), we get the value
159173
// and do the exists check this way to minimize calls to Redis
@@ -167,7 +181,7 @@ func (c RedisCache) Increment(key string, delta uint64) (uint64, error) {
167181
if err != nil {
168182
return 0, err
169183
}
170-
var sum int64 = currentVal + int64(delta)
184+
sum := currentVal + int64(delta)
171185
_, err = conn.Do("SET", key, sum)
172186
if err != nil {
173187
return 0, err
@@ -177,8 +191,10 @@ func (c RedisCache) Increment(key string, delta uint64) (uint64, error) {
177191

178192
func (c RedisCache) Decrement(key string, delta uint64) (newValue uint64, err error) {
179193
conn := c.pool.Get()
180-
defer conn.Close()
181-
// Check for existence *before* increment as per the cache contract.
194+
defer func() {
195+
_ = conn.Close()
196+
}()
197+
// Check for existance *before* increment as per the cache contract.
182198
// redis will auto create the key, and we don't want that, hence the exists call
183199
existed, err := exists(conn, key)
184200
if err != nil {
@@ -194,7 +210,8 @@ func (c RedisCache) Decrement(key string, delta uint64) (newValue uint64, err er
194210
return 0, err
195211
}
196212
if delta > uint64(currentVal) {
197-
tempint, err := redis.Int64(conn.Do("DECRBY", key, currentVal))
213+
var tempint int64
214+
tempint, err = redis.Int64(conn.Do("DECRBY", key, currentVal))
198215
return uint64(tempint), err
199216
}
200217
tempint, err := redis.Int64(conn.Do("DECRBY", key, delta))
@@ -203,7 +220,9 @@ func (c RedisCache) Decrement(key string, delta uint64) (newValue uint64, err er
203220

204221
func (c RedisCache) Flush() error {
205222
conn := c.pool.Get()
206-
defer conn.Close()
223+
defer func() {
224+
_ = conn.Close()
225+
}()
207226
_, err := conn.Do("FLUSHALL")
208227
return err
209228
}
@@ -223,14 +242,15 @@ func (c RedisCache) invoke(f func(string, ...interface{}) (interface{}, error),
223242
return err
224243
}
225244
conn := c.pool.Get()
226-
defer conn.Close()
245+
defer func() {
246+
_ = conn.Close()
247+
}()
227248
if expires > 0 {
228-
_, err := f("SETEX", key, int32(expires/time.Second), b)
229-
return err
230-
} else {
231-
_, err := f("SET", key, b)
249+
_, err = f("SETEX", key, int32(expires/time.Second), b)
232250
return err
233251
}
252+
_, err = f("SET", key, b)
253+
return err
234254
}
235255

236256
// Implement a Getter on top of the returned item map.

cache/redis_test.go

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,15 @@ var newRedisCache = func(t *testing.T, defaultExpiration time.Duration) Cache {
1717

1818
c, err := net.Dial("tcp", redisTestServer)
1919
if err == nil {
20-
c.Write([]byte("flush_all\r\n"))
21-
c.Close()
20+
if _, err = c.Write([]byte("flush_all\r\n")); err != nil {
21+
t.Errorf("Write failed: %s", err)
22+
}
23+
_ = c.Close()
24+
2225
redisCache := NewRedisCache(redisTestServer, "", defaultExpiration)
23-
redisCache.Flush()
26+
if err = redisCache.Flush(); err != nil {
27+
t.Errorf("Flush failed: %s", err)
28+
}
2429
return redisCache
2530
}
2631
t.Errorf("couldn't connect to redis on %s", redisTestServer)

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy