export ledger.Likes.Any, .All
parent
68fba6b746
commit
9e613f3a1b
|
|
@ -29,7 +29,7 @@ func main() {
|
|||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
like := []ledger.Like{ledger.LikeName(*likeName)}
|
||||
like := ledger.Likes{ledger.LikeName(*likeName)}
|
||||
if *likeLedger {
|
||||
like = append(like, ledger.LikeBefore(*likeBefore))
|
||||
like = append(like, ledger.LikeAfter(*likeAfter))
|
||||
|
|
@ -47,11 +47,7 @@ func main() {
|
|||
})
|
||||
register := deltas.Register()
|
||||
for i := range deltas {
|
||||
all := true
|
||||
for _, like := range like {
|
||||
all = all && like(deltas[i])
|
||||
}
|
||||
if all {
|
||||
if like.All(deltas[i]) {
|
||||
fmt.Printf("%s (%+v)\n", deltas[i].Debug(), register[deltas[i].Date][deltas[i].Name].Debug())
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ type Deltas []Delta
|
|||
func (deltas Deltas) Like(like ...Like) Deltas {
|
||||
result := make(Deltas, 0, len(deltas))
|
||||
for i := range deltas {
|
||||
if likes(like).all(deltas[i]) {
|
||||
if Likes(like).All(deltas[i]) {
|
||||
result = append(result, deltas[i])
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ import (
|
|||
|
||||
type Like func(Delta) bool
|
||||
|
||||
type likes []Like
|
||||
type Likes []Like
|
||||
|
||||
func LikeBefore(date string) Like {
|
||||
return func(d Delta) bool {
|
||||
|
|
@ -30,7 +30,16 @@ func like(pattern string, other string) bool {
|
|||
return regexp.MustCompile(pattern).MatchString(other)
|
||||
}
|
||||
|
||||
func (likes likes) all(delta Delta) bool {
|
||||
func (likes Likes) Any(delta Delta) bool {
|
||||
for i := range likes {
|
||||
if likes[i](delta) {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func (likes Likes) All(delta Delta) bool {
|
||||
for i := range likes {
|
||||
if !likes[i](delta) {
|
||||
return false
|
||||
|
|
|
|||
|
|
@ -29,10 +29,10 @@ func TestLikeName(t *testing.T) {
|
|||
|
||||
func TestLikesAll(t *testing.T) {
|
||||
delta := Delta{Name: "x"}
|
||||
if likes := (likes{LikeName("^x$")}); !likes.all(delta) {
|
||||
t.Error(likes.all(delta))
|
||||
if likes := (Likes{LikeName("^x$")}); !likes.All(delta) {
|
||||
t.Error(likes.All(delta))
|
||||
}
|
||||
if likes := (likes{LikeName("^y$")}); likes.all(delta) {
|
||||
t.Error(likes.all(delta))
|
||||
if likes := (Likes{LikeName("^y$")}); likes.All(delta) {
|
||||
t.Error(likes.All(delta))
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue