Skip to content

Instantly share code, notes, and snippets.

View ikitommi's full-sized avatar
💭

Tommi Reiman ikitommi

💭
View GitHub Profile
@Deraen
Deraen / components.clj
Last active December 15, 2019 08:03
Compojure-api with Component
(ns foobar.components
(:require [com.stuartsierra.component :as component]
[compojure.api.sweet :refer :all]))
(defmethod compojure.api.meta/restructure-param :components
[_ components acc]
(update-in acc [:letks] into [components `(::components ~'+compojure-api-request+)]))
(defn wrap-components [handler components]
(fn [req]
(require '[schema.core :as s])
(require '[schema.coerce :as coerce])
(require '[schema.utils :as utils])
(defn filter-schema-keys
[m schema-keys extra-keys-walker]
(reduce-kv (fn [m k v]
(if (or (contains? schema-keys k)
(and extra-keys-walker
(not (utils/error? (extra-keys-walker k)))))
@Deraen
Deraen / knockout-selectize.js
Last active August 29, 2015 13:57
Knockout + Selectize.js
// Use
// ko.bindingHandlers.fooSearch = createAutocomplete({load: ...});
// viewModel.idHere = "123";
// viewModel.objHere = {_id: "123", name: "foo"};
// viewModel.objHere.subscribe(function(val) { ... selected obj! ... });
//
// <input type="text" data-bind="value: idHere, fooSearch: objHere"/>
function createAutocomplete(override) {
return {
@lokori
lokori / ring-request-wrapper
Created November 27, 2013 11:29
Example of logging a Ring request with Ring. (I'm aware there are some existing alternatives for doing this.)
(ns aitu.infra.print-wrapper
(:require [clojure.tools.logging :as log]))
(def ^:private requestid (atom 1))
(defn http-method->str [keyword-or-str]
(clojure.string/upper-case (name keyword-or-str)))
(defn log-request-wrapper [ring-handler]
"Logging wrapper. Basic info + duration and additional unique id per request to enable performance analysis"