◆ [Ruby][Sinatra] SinatraでRack::Csrfの例外をハンドリングする SinatraでのCSRF対策にはRack::Csrfが使えますが、普通に use Rack::Csrf, :raise => true とか書いただけでは、errorハンドラで例外を捕捉・処理できません。production環境ではCSRFチェックに引っかかると403応答+真っ白な画面になるのですが、false negativeの可能性が0ではないので、何らかの処理はしておきたいところです。 というわけで、試行錯誤の結果行き着いたのが以下のようなコード。もっと良い方法があったらコメントください。 require 'rubygems' require 'sinatra' require 'rack/csrf' require 'haml' use Rack::Session::Pool use
なんか twitter でそういう声があったのでざっくり試したよ。 Rack::URLMap を使う なんと! Rack::URLMap は、 env["PATH_INFO"] をよしなにしてはくれません。/sub サブディレクトリにマウントしたアプリケ~ションにも、 /sub が付いたまま渡ります。なので、自分で削除する Rack Middleware 書いたった。 app1.rb: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 require 'rubygems' require 'bundler/setup' Bundler.require class SubApp < Sinatra::Base
研究室の後輩にSinatraとhamlとjQueryを教えるために作ったテンプレートについて、ここにも書いておく ソースコード https://github.com/shokai/sinatra-template 実際動いているもの http://masui.sfc.keio.ac.jp/sinatra-template/ git clone git://github.com/shokai/sinatra-template.git ■Sinatraを何に使うか Sinatra+haml+jQueryが便利。 Railsと似てるけど、ちょっと違う。 個人的には Rails → HTMLのページをいっぱい作るのに便利 Sinatra → 画面遷移あまりしなくて、同じURLのままjsonのAPIをjQueryのajaxで取得して動的に表示を変えるwebページを作るのには便利 に感じる。 でもSi
「NoSQL データベースファーストガイド」(著:佐々木達也) という本を読んでるよ 各種NoSQLのひと通りの説明と それぞれにRubyを使ったサンプルがあって 僕のようなNoSQL知識ゼロ(NoKnowledge) の人にとってはとてもためになるよ 特にサンプルは各NoSQLの利用状況を想定して作られているから 実用的でうれしいよね NoSQLデータベースファーストガイド 作者: 佐々木達也出版社/メーカー: 秀和システム発売日: 2011/04/26メディア: 大型本購入: 8人 クリック: 859回この商品を含むブログ (29件) を見る その中に音楽視聴ランキングサイトの楽しいサンプルがあるんだよ それはGyaoの音楽ランキングに基づいて YouTubeから対応動画を取ってきてリスト表示するというものだよ 一度アクセスしたデータは memcachedを使ってサイト側で保持すること
DotCloudというものを知ったので試してみた. Google App EngineやHerokuのようなWebアプリケーションホスティングサービスらしい. いろいろな言語が使えて,Common LispやSchemeに対応する可能性もあるとのこと. アカウントを作成できたので,Sinatraを動かしてみる. 環境を整える手順 1. アカウント作成 2. $ easy_install dotcloud 3. APIキーの登録 では,Sinatraを動かしてみる. 基本的にはドキュメント通り. $ dotcloud create bar $ dotcloud deploy -t ruby bar.foo $ mkdir -p ~/bar/foo $ cd ~/bar/foodeployに時間がかかることがあるようだがよくわからない…… ~/bar/foo の中はこんな感じ.publicとt
Merbの開発がなかなか進展しないのでSinatraをちょっと触ってみたところ、 DataMapper、Herokuとの組み合わせが非常に簡単でいい感じでした。 blog.rb 1 require "rubygems" 2 require "sinatra" 3 require "dm-core" 4 require "haml" 5 6 DataMapper::setup(:default, ENV['DATABASE_URL'] || 'sqlite3:db.sqlite3') 7 8 class Post 9 include DataMapper::Resource 10 property :id, Serial 11 property :content, Text 12 auto_upgrade! 13 end 14 15 get "/" do 16 @p
誇張表現でもなく、サービスの利用開始の手続から公開まで、本当に 5 分以内でできてしまう。。 Heroku Heroku は、“instant ruby platform” と言われるもので、ホスティングサービスではあるが、“準備不要なデプロイ環境” である。 ローカルで作成した Ruby アプリケーション(Rails、Sinatra、Merb etc)をコマンド一発で公開できるプラットフォームを提供する。 そのインターフェイスも素晴らしいが、サービスの公開にあたり、サーバ側のシステム管理作業を行う必要はなく、また、自動的にスケールしてくれる仕組みも提供している点が素晴らしい。 存在自体は以前小耳に挟んでいたのだが、 Hosting Radiant and Spree - Radiant CMS: Dev Google グループ で触れられていたの読み、試してみることにした。 Heroku
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く