2011-01-01から1年間の記事一覧

Rack::Access で IP アドレス制限

Rails アプリケーションで IP アドレス制限が必要になった際には、基本的に上位のリバースプロキシ(Apache とか Nginx とか)で行うことが多いと思いますが、一方で Rails 本体で制限をかけなければならないこともあります(Heroku だとか)でもそれを Rail…

shoulda-mathcers での validate_uniquness_of の注意点

class User < ActiveRecord::Base validate :name, :unique => true end ActiveRecord の↑のようなモデルの spec として、shoulda-matchers の validate_uniquness_of を使うことがある。このときこんな風に書くと、場合によって通ったり通らなかったりする…

FactoryGirl の新しいインタフェースに移行したときのメモ

えいっと新しい FactoryGirl に移行して、新しいインタフェースに対応してみた。どう移行したかは GETTEING_STARTED.md を読んでその通りに定義部分と利用部分を修正した。詳細は省く。……が、こんな感じのエラーに悩む。 ....../ruby-1.9.2-p290/gems/factor…

packed_field gem

Rails の ActiveRecord::Base.serialize を(仕方なく)使う機会があったが、使い方が気に食わなかったんでさくっと Wrapper を書いたりした。 https://github.com/holysugar/packed_fields https://rubygems.org/gems/packed_fields 名前をやっつけすぎたと…

Capistrano で GitHub の CA Cert 関連のエラーが出てしまうとき

対象: capistano で Rails をデプロイして bundle install の際に GitHub で証明書のエラーになっちゃう人 require 'bundle/capistrano'*** [err :: user@xxx.xxx.xxx.xxx] error: SSL certificate problem, verify that the CA cert is OK. Details:*** [e…

今更ながらシリーズ(2) StringInquirer

Rails.env == 'production' という式は、 Rails.env.production? と書ける。これは Rails.env が単なる文字列ではなく、ActiveSupport::StringInquirer という String を継承したクラスに変換されているから。 https://github.com/rails/rails/blob/master/a…

今更ながら CaptureHelper

本当に今更だけど CaptureHelper なる存在を知った。maiha 氏が説明してる程度に昔からある。なんてこった。view: <% div_wrapper do %> <p>ほげほげ</p> <% end %>helper: def div_wrapper(&block) render :inline => "<div>#{capture(&block)}</div>" end 結果 <div><p>ほげほげ</p></div>

Rails3 で routes.rb を分割・追加する

故あって routes.rb を routes/frontend.rb と routes/backend.rb に分割したいとする。とりあえず、 routes.rb の中で require なり load なりしてもよいが、これだと開発中に routes/frontend.rb を編集しても、再起動しない限り反映されない。 SampleApp:…

Pound で Proxy させるとデフォルトではバックエンドよりタイムアウトの設定が短い件

[UserAgent] - Pound - Varnish - AppServer 例えば↑のような HTTP Proxy が連なった構成のとき、AppServer がうっかり固まってると(ここでは Read timeout を想定)、プロキシがそれぞれタイムアウトするわけだけど、 Pound はデフォルト設定では 15 秒後…

escape_utils

escape_utils を以前紹介したけど、その時のバージョンはバグがあったので、0.2.1 以上にした方がよいです。特に日本語のリクエストがあった場合に、情報の欠落が発生する可能性があります。 gem "escape_utils", ">= 0.2.1"あとは実は厳密には Rack の unes…

Model.scoped

ActiveRecord で Model の空のリレーションを作成するには、scoped メソッドを使うらしい。(WEB-DB PRESSに載ってたらしいけど引っ張り出せない。)https://github.com/rails/rails/blob/master/activerecord/lib/active_record/named_scope.rbri scoped す…

Vim から Evernote にポスト

とりあえず今開いてるバッファの内容を Evernote に送り付けるスクリプト。 _vimrc で設定しておけば一発で Evernote 行きだ。 nmap ,n :call WinVimToEver()<CR>Mac だと全然違うアプローチが必要そうなので Win って接頭辞つけた。winvimtoever.vim: " winvimt</cr>…

warning: regexp match /.../n against to UTF-8 string

Ruby 1.9.2-p0 + Rails3.0.0 で rake spec や rake cucumber したときに大量に Warning が出る。 /path/to/gems/rack-1.2.1/lib/rack/utils.rb:16: warning: regexp match /.../n against to UTF-8 string$VERBOSE=nil とすることでも抑止できるけど、ここで…