Light TableでClojure入門#2
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Light TableでClojure入門#2

on

  • 654 views

ClojureでLight Tableを使い、ウェブアプリケーションを作ります。Tokyo.clj#20で使用した資料です。

ClojureでLight Tableを使い、ウェブアプリケーションを作ります。Tokyo.clj#20で使用した資料です。

Statistics

Views

Total Views
654
Views on SlideShare
613
Embed Views
41

Actions

Likes
2
Downloads
1
Comments
0

1 Embed 41

https://twitter.com 41

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Light TableでClojure入門#2 Presentation Transcript

  • 1. Light Tableで Clojure入門 ニャンパス 登尾(@tnoborio) http://bit.ly/hello-clojure2
  • 2. やること 前回まで: http://bit.ly/hello-clojure1 Light Tableの使い方のおさらい Ring ウェブアプリケーション
  • 3. Light Tableの使い方 Workspace Commands
  • 4. Workspaceの表示 ● Control + SpaceでCommands ● Commandsを出して、“Toggle workspace tree”を選択 →Workspaceが左ペインに表示 Macで、Control+Spaceが動かない場合、システム環境設 定>Spotlight “Spotlightメニューのキーボードショートカットチェッ ク”を外す
  • 5. Light TableでREPL Commandsから”Instarepl: Open a clojure instarepl” ● (+ 1 2 3) ● (println “Hello”) 標準出力は、 Commands→“Console: Toggle console”
  • 6. Leiningen $ lein -version Leiningen 2.3.4 (入ってなければ)Leiningenのインストール 前回を参考に http://bit.ly/hello-clojure1
  • 7. ウェブアプリケーション テンプレートを使ったプロジェクト作成 lein new compojure webapp
  • 8. Light Tableから 1. Viewメニュー→Workspaceを表示 2. Commands→”Add folder”で Workspaceにwebappを追加
  • 9. ディレクトリ構造 ● project.clj ● src/webapp/handler.clj ● resouces/public/ ● test/
  • 10. 起動 $ cd webapp $ lein ring server ブラウザが立ち上がり、“Hello World”と表示 されればOK
  • 11. project.clj (defproject webapp "0.1.0-SNAPSHOT" :description "FIXME: write description" :url "http://example.com/FIXME" :dependencies [[org.clojure/clojure "1.5.1"] [compojure "1.1.6"]] :plugins [[lein-ring "0.8.10"]] ← LeiningenのRingプラグイン :ring {:handler webapp.handler/app} :profiles {:dev {:dependencies [[javax.servlet/servlet-api "2.5"] [ring-mock "0.1.5"]]}})
  • 12. src/webapp/handler.clj (ns webapp.handler (:use compojure.core) (:require [compojure.handler :as handler] [compojure.route :as route])) (defroutes app-routes (GET "/" [] "Hello World. hogehoge") ← 書き換えて保存しブラウザから確認 (route/resources "/") (route/not-found "Not Found")) (def app (handler/site app-routes))
  • 13. 例) HTMLページを追加 (defroutes app-routes (GET "/" [] "Hello World. hogehoge") (GET "/hoge.html" [] "<html><body>hoge</body></html>") (route/resources "/") (route/not-found "Not Found"))
  • 14. 例) 画像やcssファイルを置く ・resouces/publicディレクトリのファイルを置くとその まま表示。 resouces/public/nyampass.jpg → http://localhost:3000/nyampass.jpg handler.cljのここのおかげ (route/resources "/")
  • 15. 例) GET、POSTの値 (defroutes app-routes ... (GET "/params" {params :params} (str params)) …) http://localhost:3000/params?a=hoge&b=1234 → {:b "1234", :a "hoge"}
  • 16. 例) Redirect マップとして返す (GET "/redirect" [] {:status 302 :headers {"Location" "http://www.yahoo.com/"} :body ""})