Skip to content

Instantly share code, notes, and snippets.

View matstani's full-sized avatar

matstani matstani

View GitHub Profile
@matstani
matstani / handler.clj
Last active December 14, 2015 06:49
Compojure、Friendを使って、フォーム認証を行うコード。
(ns helloworld.handler
(:require [ring.util.response :as response]
[compojure.core :refer :all]
[compojure.handler :as handler]
[compojure.route :as route]
[hiccup.page :refer [html5]]
[hiccup.element :refer [link-to]]
[hiccup.form :as form]
[cemerick.friend :as friend]
(cemerick.friend [workflows :as workflows]
@matstani
matstani / handler.clj
Last active December 14, 2015 07:09
Compojure、Kormaを使ってSQLiteデータベースから読み出した値を表示。
(ns helloworld.handler
(:require [compojure.core :refer :all]
[compojure.handler :as handler]
[compojure.route :as route]
[korma.db :refer [defdb sqlite3]]
[korma.core :as korma]
[hiccup.core :refer [html]]))
;;データベース定義
(defdb db (sqlite3
@matstani
matstani / handler.clj
Last active December 14, 2015 08:09
Compojure、lib-noirを使ってフォームバリデーション
(ns helloworld.handler
(:use compojure.core)
(:require [compojure.handler :as handler]
[compojure.route :as route]
[hiccup.form :as form]
[hiccup.core :refer [html]]
[noir.validation :as vali]))
;; レイアウト
(defn layout [& content]
@matstani
matstani / handler.clj
Last active December 14, 2015 09:19
Compojureでファイルアップロード
(ns helloworld.handler
(:use compojure.core)
(:require [clojure.java.io :as io]
[ring.util.response :as response]
[compojure.handler :as handler]
[compojure.route :as route]
[hiccup.form :as form]
[hiccup.core :refer [html]]))
;; ページレイアウト
@matstani
matstani / .gitignore
Created March 14, 2013 04:38
ECCUBEベースのプロジェクト用.gitignore
#*#
*~
*.swp
data/cache/*
data/Smarty/templates_c/*
data/logs/*
data/upload/*
html/upload/*
data/download/*
data/downloads/*
@matstani
matstani / .emacs
Last active December 16, 2015 10:19
Clojure開発用.emacs
(require 'package)
(add-to-list 'package-archives
'("melpa" . "http://melpa.milkbox.net/packages/") t)
(package-initialize)
(defvar clojure-packages '(clojure-mode
paredit
cider
rainbow-delimiters))
(dolist (p clojure-packages)
@matstani
matstani / gist:5553626
Last active December 17, 2015 04:49
Clojureのuseをrequireで置き換える
;; 以下は同じ意味
(use 'clojure.java.io)
(require '[clojure.java.io :refer :all])
;; 以下も同じ意味
(use '[clojure.java.io :only [file]])
(require '[clojure.java.io :refer [file]])
;; nsマクロ内では
(ns helloworld.core
@matstani
matstani / core.clj
Last active December 17, 2015 12:29
Clojure サンプルSwingアプリ+nREPLサーバ
(ns nrepl-test.core
(:require [seesaw.core :refer :all]
[clojure.tools.nrepl.server :refer [start-server]])
(:gen-class))
(defonce server (start-server :port 7888))
(def msg "Hello, Seesaw.")
(def lbl-msg
@matstani
matstani / gist:6027226
Created July 18, 2013 06:56
Clojureで引数のデフォルト値を指定する
;; 引数の個数(アリティ)でわける方法
(defn myfunc1
([arg] (myfunc1 arg "default"))
([arg opt] (format "arg=[%s] opt=[%s]" arg opt)))
(myfunc1 "argument")
; => "arg=[argument] opt=[default]"
(myfunc1 "argument" "option")
; => "arg=[argument] opt=[option]"
@matstani
matstani / core.clj
Created July 30, 2013 11:59
clojure/core.asyncで素数の篩(ふるい)
(ns async-test.core
(:require [clojure.core.async :as async :refer [<! >! <!! chan go]]))
(defn generate
[]
(let [ch (chan)]
(go
(doseq [e (iterate inc 2)]
(>! ch e)))
ch))