Skip to content

Instantly share code, notes, and snippets.

View matstani's full-sized avatar

matstani matstani

View GitHub Profile
@matstani
matstani / session_cleaner.clj
Created December 1, 2015 09:50
session cleaner component for jdbc-ring-session.
(ns myapp.component.session-cleaner
(:require [com.stuartsierra.component :as component]
[jdbc-ring-session.cleaner :refer [start-cleaner stop-cleaner]]))
(defrecord SessionCleaner [db]
component/Lifecycle
(start [component]
(if-not (:cleaner component)
(assoc component :cleaner (start-cleaner (:spec db)))
component))
@matstani
matstani / handler.clj
Created December 1, 2015 09:48
handler component using jdbc-ring-session as session store.
(ns myapp.component.handler
(:require [com.stuartsierra.component :as component]
[compojure.core :as compojure]
[jdbc-ring-session.core :refer [jdbc-store]]))
(defn- find-routes [component]
(keep :routes (vals component)))
(defn- middleware-fn [component middleware]
(if (vector? middleware)
@matstani
matstani / already_running.rb
Created April 2, 2015 08:46
Rubyスクリプト二重起動チェック
def already_running?
p_name = `cat /proc/#{$$}/cmdline | xargs --null`.strip()
pid = `pgrep -oxf "#{p_name}"`.strip()
pid != $$.to_s
end
@matstani
matstani / handler.clj
Created August 17, 2014 22:01
ringハンドラ内でDatabaseコンポーネントを利用
(ns example-component-ring.handler
(:require [clojure.string :as str]
[compojure.core :refer :all]
[compojure.handler :as handler]
[compojure.route :as route]
[monger.collection :as mc]
[monger.core :as mg]))
(defn get-entries [{:keys [connection]}]
(let [db (mg/get-db connection "mydb")]
@matstani
matstani / component.clj
Last active August 29, 2015 14:05
ringハンドラにDatabaseコンポーネントを渡す
(ns example-component-ring.component
(:require [com.stuartsierra.component :as component]
[monger.core :as mg]
[example-component-ring.handler :refer [app]]
[ring.adapter.jetty :refer [run-jetty]]))
;; データベースコンポーネント
(defrecord Database [connection]
component/Lifecycle
(start [this]
@matstani
matstani / component.clj
Last active August 29, 2015 14:05
HttpServerコンポーネントはDatabaseコンポーネントを利用する
(ns example-component-ring.component
(:require [com.stuartsierra.component :as component]
[monger.core :as mg]
[example-component-ring.handler :refer [app]]
[ring.adapter.jetty :refer [run-jetty]]))
;; データベースコンポーネント
(defrecord Database [connection]
component/Lifecycle
(start [this]
@matstani
matstani / user.clj
Created August 17, 2014 20:25
componentフレームワークを利用したシステムの起動・停止・リロード関数
(ns user
(:require [com.stuartsierra.component :as component]
[clojure.tools.namespace.repl :refer (refresh)]
[example-component-ring.component :as app]))
(def system nil)
;; システム初期化
(defn init []
(alter-var-root #'system
@matstani
matstani / component.clj
Created August 17, 2014 19:40
ringアプリケーションをcomponent化
(ns example-component-ring.component
(:require [com.stuartsierra.component :as component]
[example-component-ring.handler :refer [app]]
[ring.adapter.jetty :refer [run-jetty]]))
;; HTTPサーバコンポーネント
(defrecord HttpServer [port server]
component/Lifecycle
(start [this]
(if server
@matstani
matstani / component.clj
Last active August 29, 2015 14:05
stuartsierra.component & ring & c3p0 pooled db connection.
(ns picture-gallery.component
(:require [com.stuartsierra.component :as component]
[picture-gallery.handler :refer [app]]
[ring.adapter.jetty :refer [run-jetty]])
(:import [com.mchange.v2.c3p0 ComboPooledDataSource DataSources]))
(defn pool
[spec]
(let [cpds (doto (ComboPooledDataSource.)
(.setDriverClass (:classname spec))
@matstani
matstani / zf2-subquery-where.php
Created March 9, 2014 10:45
ZF2 WHRE句に副問い合わせ
<?php
$sm = $this->getServiceLocator();
$adapter = $sm->get('Zend\Db\Adapter\Adapter');
$sql = new \Zend\Db\Sql\Sql($adapter);
$select = $sql->select();
$select->from('album');
//副問い合わせ用selectオブジェクト
$subselect = $sql->select();
$subselect->from('album');