Rubyrackを読む#1 - I am Cruby!rackを読む #2 - I am Cruby!rackを読む #3 - I am Cruby!Rackを読む #4 - I am Cruby!rackを読む #5 - I am Cruby!エゴまとめ
http://rack.rubyforge.org/ 先日登場した Rack というライブラリを使うと、Web サーバごとに同一のインターフェイスを利用できるようになります。通常、Ruby で Web アプリケーション を動作させるとき、cgi なのか、fcgi なのか、もしくは mongrel や webrick を使うのか、ということを考えなければなりません。cgi のみで動作決めうち、など良いのですが、ガワである Web アプリケーションフレームワークや一般に配布するアプリケーションなど、既存のフレームワークを用いずに作るときは、さまざまな動作環境でも動くように考慮しなくてはなりません。 たとえば既存のフレームワークである Rails や Camping はそれぞれ個別に cgi/fcgi/mongrel/webrick などの対応を行っています。しかし Rack で定義されているイ
Rack ってなに? Rack は Web サーバと Ruby プログラムや Ruby で書かれた Web アプリケーションフレームワークとの間に、最小限のインターフェースを提供します。 http://rack.rubyforge.org/ Rack のインストール gem install rack Rack の簡単な始め方 Rack を使うには、まず call されるアプリケーションを書きます。call メソッドを定義し、引数に env を取ります。 # app.rb require 'rack' class TinyCaller def call(env) [200, {'Content-Type' => 'text/html'}, ["Hello, World."]] end end 続いて、Rack を使うための DSL ファイルとなる .ru ファイルを作成します。 # tiny
最近は仕事でSinatraアプリを書いたりしているので、Sinatraアプリを動かすためにはどのHTTPサーバを使うのがベストなのかが気になっている。(先に結論を書いておくけれど、どれがベスト、という唯一の選択肢は今のところありません。適材適所です。) SinatraはRackの上に構築されているので、Rackに対応したHTTPサーバーを使って動かす事になるのだが、この数がやたらと多く、どれを使えばいいのか迷う。代表的なものを挙げただけでも、WebRick, Mongrel, Thin, Unicorn, Passenger(Apacheとかに組み込んで使うやつ), FastCGI, (普通の)CGI、これぐらいは選択肢がある(いくつかHTTPサーバじゃない物も混ざっているが、Rackが対応してるという点は共通している)。 WebRickはそもそもパフォーマンスに重点を置いていないし、Mo
はじめに SinatraやRamazeといったRubyのWebアプケーションフレームワークに興味をお持ちの方であれば、Rackという名前をしばしば目にしているかもしれません。どうやら様々なフレームワークに使われているらしいのだけど、そいつが一体なんなのかよくわからない、そんなあなたのために今日はそのRackをご紹介したいと思います。 様々なフレームワーク、様々なアプリケーションサーバ しばらく前なら、Ruby on Railsブームの真っ只中、Rubyと言えばRails、Webアプリケーションを作るならRails、といったイメージを持たれていた方も多かったと思います。実際にWebアプリケーションを作ったり、Rubyに触れたりしたきっかけがRailsだったという方も多いでしょう。 しかし最近は、RubyのWebアプケーションフレームワークと一口に言っても、非常に簡単にアプリケーションが書けて
「Sinatraでshotgunの代わりにRack::Reloaderを使う方法 - Hello, world! - s21g」をすこし修正してみたよ。 上記の方法では、routes が書いているファイル以外を変更した場合にも強制的に ::Sinatra::Application.reset! が呼ばれてしまうため、修正変更したファイルによってはルートが全部無くなってしまう。 こんな感じ。 これを修正するには routes が書かれているファイルが修正された場合だけ、 ::Sinatra::Application.reset! を呼び出してやれば良い。 という訳で、configure :development 以下を config.ru からではなく、 アプリケーションが記述されているファイルに移動する。 こんな感じ。 # application.rb require 'rubygems'
rack-logo posted by (C)komagata komagataです。 仕事でも使う必要が出てきたのでRubyの勉強をしています。WebアプリケーションでRubyを使おうとしていきなり躓いたのがApache、WEBrick、Mongrel等、実行環境毎の設定やAPIの違いです。 Rubyを普段使っている人には常識過ぎるのか情報が少なく、FastCGIで単に「Hello, World」を表示させるのにも一苦労でした。(Railsでは簡単に動くのが悔しい) そんな実行環境毎のAPIの差を吸収してくれるRackというライブラリを知ったので試してみました。 RackはRuby版WSGIと呼ばれているそうです。WSGIとはWeb Server Gateway Interfaceの略でWeb ServerとWeb Applicationの間のInterfaceを定めたPython界の仕
もともとSinatraではRack::Reloaderが上手く機能しないのでshotgunを使おうという流れだったのですが、諸般の事情でshotgunを使えない状況になったため、本腰を入れてRack::Reloaderを使えるようにする方法を調べました。 結論として、以下のようにすれば使えました。 config.ru 1 configure :development do 2 class Sinatra::Reloader < Rack::Reloader 3 def safe_load(file, mtime, stderr = $stderr) 4 ::Sinatra::Application.reset! 5 use_in_file_templates! file 6 stderr.puts "#{self.class}: reseting routes" 7 supe
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く