Skip to content

Instantly share code, notes, and snippets.

@mmzsource
mmzsource / soccer-bets-spec-test.clj
Last active April 20, 2017 07:54
Trying clojure.spec to check, document & generate a league-table datastructure
;; REPL session to play around with clojure.spec
;; ------------- START INITIAL SETUP -------------
;; assume these dependencies are specified in the repl environment:
;; [org.clojure/clojure "1.9.0-alpha15"]
;; [org.clojure/test.check "0.9.0"]
;; My leiningen setup:
;; cat ~/.lein/profiles.clj
@mmzsource
mmzsource / CalculateDurationInWeeks.clj
Last active February 18, 2017 15:39
Clojure Boot repl session - Calculate number of weeks between 2 dates
boot repl
(set-env! :dependencies '[[clojure.java-time "0.2.2"]])
(require '[java-time :as t])
(t/time-between (t/local-date 2014 9 27) (t/local-date 2017 2 18) :weeks)
@mmzsource
mmzsource / gist:84e3ad3e854420148348d71507fd6512
Last active February 6, 2017 19:16
League Tables with clojure boot
#!/usr/bin/env boot
(set-env! :dependencies '[[clj-http "2.3.0"] [cheshire "5.7.0"]])
(require '[clj-http.client :as client])
(require '[clojure.pprint :as pp])
;; Fifa country codes - https://en.wikipedia.org/wiki/List_of_FIFA_country_codes
(def countries [
{:id 426 :key :ENG :description "England"}
{:id 436 :key :ESP :description "Spain"}
;; Running this script in bash:
curl -s http://api.football-data.org/v1/competitions/436/leagueTable | jq '.' | tr -d , | grep teamName | awk -F":" 'BEGIN {print "{\n"} {print NR, $2} END {print "\n}"}'
;; Results in a clojure map:
{
1 "Real Madrid CF"
2 "FC Barcelona"
3 "Sevilla FC"