oph.common.util.util

Yleisiä apufunktioita.

->vector

(->vector item)

deep-merge

deep-merge-with

(deep-merge-with f & maps)
Like merge-with, but merges maps recursively, applying the given fn
only when there's a non-map at a particular level.

(deepmerge + {:a {:b {:c 1 :d {:x 1 :y 2}} :e 3} :f 4}
             {:a {:b {:c 2 :d {:z 9} :z 3} :e 100}})
-> {:a {:b {:z 3, :c 3, :d {:z 9, :x 1, :y 2}}, :e 103}, :f 4}

deep-update-vals

(deep-update-vals f c)

diff-maps

(diff-maps new-map old-map)
Palauttaa kahden mapin erot muodossa {avain [uusi-arvo vanha-arvo]} tai avaimen arvona nil jos muutoksia ei ole.

erottele-lista

(erottele-lista avain kentat coll)
Ottaa denormalisoidun listan, subentitylle halutun avaimen ja listan subentityn kentistä.
Erottelee subentityt pääentityistä ja liittää ne pääentityyn listaksi.

get-in-list

(get-in-list m ks)(get-in-list m ks not-found)
Like get-in, but also inspects each item of a list

get-json-from-url

(get-json-from-url url)(get-json-from-url url options)

keyword-syntax?

(keyword-syntax? s)
Keywordit muutetaan samalla syntaksilla kun wrap-keyword-params:
https://github.com/ring-clojure/ring/blob/1.3.1/ring-core/src/ring/middleware/keyword_params.clj

last-arg

(last-arg & args)

map-by

(map-by f coll)
Kuten group-by, mutta jättää vain viimeisen täsmäävän alkion

map-values

(map-values f m)
Applies f to each value in m and returns the resulting map

max-date

(max-date a)(max-date a b)(max-date a b & more)

merkitse-voimassaolevat

(merkitse-voimassaolevat entity avain f)

min-date

(min-date a)(min-date a b)(min-date a b & more)

muunna-avainsanoiksi

(muunna-avainsanoiksi m)
Päivitetty versio clojure.walk/keywordize-keys funktiosta, koska alkuperäinen muuntaa myös numerolla alkavan symbolin avainsanaksi.

muutos

(muutos old-map new-map)
Palauttaa kahden mapin eroavaisuudet

paivita-arvot

(paivita-arvot m avaimet f)

parse-ymd

(parse-ymd ymd)

paths

(paths m)(paths m ks)
palauttaa joukon jossa on kaikki polut mapin sisään. Ts. rekursiivinen mapin rakenteen kuvaus

pisteavaimet->puu

(pisteavaimet->puu m)

poista-tyhjat

(poista-tyhjat m)

pvm-menneisyydessa?

(pvm-menneisyydessa? pvm)

pvm-mennyt-tai-tanaan?

pvm-tuleva-tai-tanaan?

pvm-tulevaisuudessa?

(pvm-tulevaisuudessa? pvm)

remove-nil-vals

(remove-nil-vals m)

retrying

macro

(retrying expected-throwable attempts & body)

retrying*

(retrying* expected-throwable attempts f)

select-and-rename-keys

(select-and-rename-keys map keys)
Poimii mapista annetut avaimet. Jos avain on muotoa [:a :b], vaihtaa samalla avaimen nimen :a -> :b.

sisaltaako-kentat?

(sisaltaako-kentat? entity kentat termi)
Predikaatti joka palauttaa true, jos annettujen kenttien sisältö sisältää annetun termin. Kirjainkoolla ei ole väliä.
Kenttien sisältö konkatenoidaan yhteen välilyönnillä erotettuna.

some-value

(some-value pred coll)

some-value-with

(some-value-with f expected coll)

time-forever

update-in-if-exists

(update-in-if-exists m [k & ks] f & args)

update-vals

(update-vals f c)

uusin-muokkausaika

(uusin-muokkausaika arvot & polut)
Palauttaa uusimman muokkausajan annetuista arvoista.
Polut ovat get-in-tyylisiä avainpolkuja, jotka kertovat mistä muokkausajat haetaan.

uusin-muokkausaika-tai-nykyhetki

(uusin-muokkausaika-tai-nykyhetki arvot & polut)