Skip to content

Commit

Permalink
Merge pull request #395 from go-kivik/rd2
Browse files Browse the repository at this point in the history
Rename driver.DBReplicator to driver.RevsDiffer
  • Loading branch information
flimzy committed Jun 24, 2019
2 parents 3c1ef69 + 2f8e050 commit 015bb12
Show file tree
Hide file tree
Showing 4 changed files with 10 additions and 12 deletions.
4 changes: 2 additions & 2 deletions db.go
Original file line number Diff line number Diff line change
Expand Up @@ -666,8 +666,8 @@ type Diffs map[string]RevDiff
//
// See http://docs.couchdb.org/en/stable/api/database/misc.html#db-revs-diff
func (db *DB) RevsDiff(ctx context.Context, revMap RevLookup) (Diffs, error) {
if rep, ok := db.driverDB.(driver.DBReplicator); ok {
result, err := rep.RevsDiff(ctx, revMap)
if rd, ok := db.driverDB.(driver.RevsDiffer); ok {
result, err := rd.RevsDiff(ctx, revMap)
if err != nil {
return nil, err
}
Expand Down
4 changes: 2 additions & 2 deletions db_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -1976,7 +1976,7 @@ func TestRevsDiff(t *testing.T) {
err: "kivik: _revs_diff not supported by driver",
})
tests.Add("network error", tt{
db: &DB{driverDB: &mock.DBReplicator{
db: &DB{driverDB: &mock.RevsDiffer{
RevsDiffFunc: func(_ context.Context, revMap map[string][]string) (map[string]driver.RevDiff, error) {
return nil, errors.New("net error")
},
Expand All @@ -1985,7 +1985,7 @@ func TestRevsDiff(t *testing.T) {
err: "net error",
})
tests.Add("success", tt{
db: &DB{driverDB: &mock.DBReplicator{
db: &DB{driverDB: &mock.RevsDiffer{
RevsDiffFunc: func(_ context.Context, revMap map[string][]string) (map[string]driver.RevDiff, error) {
return map[string]driver.RevDiff{
"foo": {Missing: []string{"1", "2"}},
Expand Down
6 changes: 2 additions & 4 deletions driver/driver.go
Original file line number Diff line number Diff line change
Expand Up @@ -401,9 +401,7 @@ type RevDiff struct {
PossibleAncestors []string `json:"possible_ancestors,omitempty"`
}

// DBReplicator is an optional interface that may be implemented by a DB to
// allow kivik-controlled replications.
type DBReplicator interface {
BulkDocer
// RevsDiffer is an optional interface that may be implemented by a DB.
type RevsDiffer interface {
RevsDiff(ctx context.Context, revMap map[string][]string) (map[string]RevDiff, error)
}
8 changes: 4 additions & 4 deletions mock/db.go
Original file line number Diff line number Diff line change
Expand Up @@ -264,15 +264,15 @@ func (db *DBCloser) Close(ctx context.Context) error {
return db.CloseFunc(ctx)
}

// DBReplicator mocks a driver.BulkDocer and a driver.DBReplicator
type DBReplicator struct {
// RevsDiffer mocks a driver.DB and driver.RevsDiffer.
type RevsDiffer struct {
*BulkDocer
RevsDiffFunc func(context.Context, map[string][]string) (map[string]driver.RevDiff, error)
}

var _ driver.DBReplicator = &DBReplicator{}
var _ driver.RevsDiffer = &RevsDiffer{}

// RevsDiff calls db.RevsDiffFunc
func (db *DBReplicator) RevsDiff(ctx context.Context, revMap map[string][]string) (map[string]driver.RevDiff, error) {
func (db *RevsDiffer) RevsDiff(ctx context.Context, revMap map[string][]string) (map[string]driver.RevDiff, error) {
return db.RevsDiffFunc(ctx, revMap)
}

0 comments on commit 015bb12

Please sign in to comment.