This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(ns user | |
(:require [clojure.spec.alpha :as s] | |
[reitit.ring :as ring] | |
[reitit.coercion.spec] | |
[muuntaja.core] | |
[reitit.ring.middleware.exception] | |
[reitit.ring.middleware.parameters] | |
[reitit.ring.middleware.muuntaja] | |
[reitit.ring.coercion] | |
[spec-tools.core :as st])) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
;; [metosin/spec-tools "0.8.2"] | |
;; from https://github.com/metosin/reitit/blob/master/modules/reitit-spec/src/reitit/coercion/spec.cljc | |
(require '[clojure.spec.alpha :as s]) | |
(require '[spec-tools.core :as st]) | |
;; | |
;; define some specs | |
;; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
;; | |
;; Model Name: MacBook Pro | |
;; Model Identifier: MacBookPro11,3 | |
;; Processor Name: Intel Core i7 | |
;; Processor Speed: 2,5 GHz | |
;; Number of Processors: 1 | |
;; Total Number of Cores: 4 | |
;; L2 Cache (per Core): 256 KB | |
;; L3 Cache: 6 MB | |
;; Memory: 16 GB |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(require '[clojure.spec.alpha :as s]) | |
(require '[spec-tools.core :as st]) | |
(require '[clojure.test :refer [deftest testing is are]]) | |
(s/def ::my-spec | |
(st/spec | |
{:spec #(and (simple-keyword? %) (-> % name str/lower-case keyword (= %))) | |
:description "a lowercase simple keyword, encoded in uppercase in string-mode" | |
:decode/string #(-> %2 name str/lower-case keyword) | |
:encode/string #(-> %2 name str/upper-case)})) |
The original code looks like this:
(ns hello.handler
(:require
[byte-streams :as bs]
[clojure.tools.cli :as cli]
[aleph.http :as http]
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
;; start repl in perf mode (e.g. -server) | |
(require '[ring.middleware.defaults]) ; [ring/ring-defaults "0.3.1"] | |
(require '[criterium.core :as cc]) ; [criterium "0.4.4"] | |
(defn handler [request] | |
{:status 200 | |
:body "Hello World" | |
:headers {"Content-Type" "text/html"}}) | |
(def app |
lein try metosin/compojure-api "2.0.0-alpha17" org.immutant/immutant
(require '[muuntaja.core :as m])
(require '[compojure.api.sweet :refer :all])
(require '[ring.util.http-response :refer :all])
(require '[immutant.web])
(import '(java.io InputStreamReader ByteArrayInputStream InputStream))
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
;; lein try cheshire metosin/jsonista | |
(def m (for [n (range 3000000)] {:name (str "kikka_" n), :age n})) | |
(require '[cheshire.core :as c]) | |
(time (c/generate-stream m (clojure.java.io/writer "test.json"))) | |
; "Elapsed time: 3801.018049 msecs" | |
(require '[jsonista.core :as j]) |