-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.go
92 lines (81 loc) · 2.15 KB
/
main.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
package main
import (
. "hof"
"log"
"os"
"github.com/julienschmidt/httprouter"
"net/http"
)
func init() {
log.SetFlags(log.Lshortfile | log.Ldate)
log.SetOutput(os.Stdout)
}
func main() {
if os.Getenv("RUN_HTTP_SERVER") == "TRUE" {
router := httprouter.New()
router.GET("/cars", CarsIndexHandler)
router.GET("/cars/:id", CarHandler)
log.Println("Listening on port 8000")
log.Fatal(http.ListenAndServe(":8000", router))
} else {
cars := LoadCars()
//PrintCars("ByMake - Honda", cars.Filter(ByMake("Honda")))
//
//PrintCars("Numeric", cars.Filter(ByHasNumber()))
//
//PrintCars("Foreign, Numeric, Toyota",
// cars.Filter(ByForeign()).
// Filter(ByHasNumber()).
// Filter(ByMake("Toyota")))
//
//PrintCars("Domestic, Numeric, GM",
// cars.Filter(ByDomestic()).
// Filter(ByHasNumber()).
// Filter(ByMake("GM")))
//
//moreCars := LoadMoreCars()
//
//PrintCars("More Cars, Domestic, Numeric, GM",
// cars.AddCars(moreCars).
// Filter(ByDomestic()).
// Filter(ByHasNumber()).
// Filter(ByMake("GM")))
//
//PrintCars("More Cars, Domestic, Numeric, Ford",
// cars.AddCars(moreCars).
// Filter(ByDomestic()).
// Filter(ByHasNumber()).
// Filter(ByMake("Ford")))
//
//
//PrintCars("Numeric, Foreign, Map Upgraded",
// cars.Filter(ByHasNumber()).
// Filter(ByForeign()).
// Map(Upgrade()))
//
//PrintCars("Filter Honda, Reduce JSON",
// cars.Filter(ByMake("Honda")).
// Reduce(JsonReducer(cars), Collection{}))
//
//PrintCars("Reduce, Honda, JSON",
// cars.Reduce(MakeReducer("Honda", cars), Collection{}).
// Reduce(JsonReducer(cars), Collection{}))
//
//PrintCars2("Reduce - Lexus",
// cars.Filter(ByMake("Lexus")).
// Reduce2(CarTypeReducer(cars), []CarType{}))
//
//PrintCars("ByModel - Accord up/downgraded",
// cars.Filter(ByModel("Accord")).
// Map(Upgrade()).
// Map(Downgrade()))
PrintCars("GenerateCars(1, 3)",
cars.GenerateCars(1, 3))
PrintCars("GenerateCars(1, 14), Domestic, Numeric, JSON",
cars.GenerateCars(1, 14).
Filter(ByDomestic()).
Map(Upgrade()).
Filter(ByHasNumber()).
Reduce(JsonReducer(cars), Collection{}))
}
}