Commit c44a9ff

mo khan <mo.khan@gmail.com>
2020-11-15 02:20:05
refactor: extract Not method for Predicate
1 parent d30c968
Changed files (2)
domain/movie_library.go
@@ -52,9 +52,7 @@ func (self *MovieLibrary) FindAllMoviesByPixarOrDisney() []Movie {
 }
 
 func (self *MovieLibrary) FindAllMoviesNotByPixar() []Movie {
-	return self.FindAll(func(x Movie) bool {
-		return x.Studio.Name != "Pixar"
-	})
+	return self.FindAll(MovieProducedBy("Pixar").Not())
 }
 
 func (self *MovieLibrary) FindAllMoviesPublishedAfter2004() []Movie {
domain/predicate.go
@@ -7,3 +7,9 @@ func (self Predicate) Or(other Predicate) Predicate {
 		return self(m) || other(m)
 	}
 }
+
+func (self Predicate) Not() Predicate {
+	return func(m Movie) bool {
+		return !self(m)
+	}
+}