タグ

ブックマーク / blog.udzura.jp (6)

  • PHP のテストを Ruby で書く « blog.udzura.jp

    皆さん、楽しくテスト書いてますか~~~ 今日は、 rack-legacy を使うことで、 PHP のアプリケーションなのになぜか Ruby のコードでテストできて(受け入れテストのあたりですけど)、そうすると物の RSpec とかが使えて楽ですよ、と言う話をします。 rack-legacy とは。 まず、 Rack とは、 Ruby 製のウェブアプリケーション(Ruby on Rails、Sinatraなどをご存知かもしれません)とサーバ(Apache/Passenger、NginX、Lighttpdなどなど…)をつなぐ一種の規格です。 PerlPython にも似たような仕組みがあります。 ここで、 Rack::Legacy というミドルウェアを使うと、他の言語の CGI や、 PHP のアプリケーションが Rack の上で動かせます。 そして、 Rack の上で動くということは

    Hash
    Hash 2013/04/17
    PHPUnit覚えるのだるいなーと思ってたのでこれ使ってみるか
  • Capistrano力を上げよう « ディスコ探偵冬景色

    標記の力を高められるかもしれないいくつかのTipsを。 なお、あまりRailsと関係ないデプロイでも使えるTips多めです。CapstranoはRailsとの連携以外でも強力なデプロイツール。もっともっと評価されてもいいですね。 Capistrano::CLI.ui.ask でデフォルト値を設定する

  • mocksmtpd を使ったメール送信のテスト « blog.udzura.jp

    mocksmtpd という便利ルビージェムがある。詳細な使い方は 作者さんの日記 にもあるが、今日はより簡単にメール配信のテストが出来るようなおまじないのやり方を紹介する(主に、未来の自分が見返すために)。 インストール rubygems.org には謎のフォークされた gemホストされていて胡散臭い。さいわい、githubホストされているため、今日びのフレームワークなら bundler とかを使って楽にインストールできる。 Gemfile:

  • Rack Middleware たちがどのように呼ばれるかを見てみよう(e.g. Sinatra) « blog.udzura.jp

    Sinatra::Base.middleware そもそも、 Sinatra::Base を継承したクラスには、クラスメソッドとして Sinatra::Base.middleware が用意されており、明示的に Sinatra::Base.use で利用を宣言したミドルウェアはそこから一覧を取得できる。 + (Object) middleware ところが、 Sinatra アプリケーションが実際に Rack でホストされ、アクセスされる際には、 use で宣言していないミドルウェアもたくさん呼ばれるわけで。その全貌が知りたい場合。むろん、 Rails、Ramaze、Camping といった Rack に対応したフレームワークならば同じような方法で「中を覗く」ことが可能なはず。 set_trace_func を使ってみる Kernel#set_trace_func は profile.rb

    Hash
    Hash 2012/11/12
    set_trace_func, こう使うのかなるほど
  • OmniAuth、Warden、Sinatraを連携しよう « blog.udzura.jp

    セットアップ 今回は最終成果物がSinatraの1-filerなので、bundlerを使わずにRubyGemsを管理する。なので、素直にインストール。今回使うものを全部入れておく(というか、OmnuAuthの依存関係で色々入ってくる)。

    Hash
    Hash 2012/11/12
    非常に役立った. 最新omniauthではproviderごとにgemが切り出された点に注意
  • RackとSinatra、Padrinoに関する雑感 « blog.udzura.jp

    Warden はかなり好き(PadrinoというかSinatraでも使えるし)。でも、僕もDeviseはやり過ぎだと思う派だなあ 認証関連の画面遷移やURLが Devise の規約にぴったりハマるケースっていくらなんでも稀だと思うし、カスタマイズするとなると結構ソース追わないといけなくなって結局だるい… env['warden'] に一通り入ってるのは、少しかっこ悪いかもしれないけど便利。 認証とかリダイレクト処理とかガラケー対応とか、はアプリケーション体ではなくRack Middleware で実現したいな~と言う facebook でこんなことをつぶやいた。 僕は Rack とその関連技術が凄く好きで、もっと勉強する人が増えてほしいと思っているのだが、何で好きなのかとかを整理してみた。 Good Stuff 結合度が低くなる。なので: Rackでとある機能(認証など)を実現すれば、そ

    Hash
    Hash 2012/11/11
    まさにこれ > "Warden はかなり好き(PadrinoというかSinatraでも使えるし)。でも、僕もDeviseはやり過ぎだと思う"
  • 1