GitHub や GHE を使って多人数で開発していると,プルリクエストを横断して試す必要が頻繁に発生すると思います. プルリクエストを次々に試したり,#30 と #31 をマージした結果を試したい!なんてケースもあるのではないでしょうか.GitHub では git ls-re…
http://blog.eiel.info/blog/2012/11/16/rails-329-default-scope/ 読んで,「前からそうじゃなかったっけ?」と思ったので確認した.そもそも default_scope の挙動が変わったのではなく,代入時のキャストの挙動が変わったようだ.(ここでは default_scope…
https://github.com/defunkt/hub/issues/212 あるいは man hub とかに書いてある
GoogleSpreadsheet で定時ログ出力みたいのできないかなーと思って gimite/google-spreadsheet-ruby 試してみたけどなかなかヨサゲ。てきとーなサンプルはこれ。 https://gist.github.com/3775235とりあえずカラム名と値与えてあげれば追記していける Worksh…
端的に言うと以下のコードは想定通りに動かない。(Node のコンソールで) var Backbone = require('backbone') var Sinon = require('sinon') var m = new Backbone.Model({ 'foo': 'bar' }) var f = function(){ console.log("===> Callback called") } m.on…
responders で書き換えられた scaffold で RSpec が通らなくなる件。Post の内容がエラーかどうかを判定するのに、 scaffold では AR::Base#save の戻り値で判定しているため、Spec は次のようになっている。(ここでは ItemsController の Spec と仮定する…
ほんとにメモだけ。チェックしておくと便利そう https://www.ruby-toolbox.com/categories/Active_Record_Enumerations https://www.ruby-toolbox.com/categories/Active_Record_Value_Cleanup https://www.ruby-toolbox.com/categories/API_Builders https:…
leehambley/rack-google-analyticsこの Rack Middleware は、 production 環境のすべての HTML を返す URL に Google Analytics を組み込みたいというニーズがあったときに便利。以下サンプル。Gemfile: gem 'rack-google-analytics', :require => 'rack/goo…
この日記は今年も Rails 中心に淡々と気づいたメモを残していきたいと思います。だいぶ不定期ですがよろしくお願いいたします。
Rails アプリケーションで IP アドレス制限が必要になった際には、基本的に上位のリバースプロキシ(Apache とか Nginx とか)で行うことが多いと思いますが、一方で Rails 本体で制限をかけなければならないこともあります(Heroku だとか)でもそれを Rail…
class User < ActiveRecord::Base validate :name, :unique => true end ActiveRecord の↑のようなモデルの spec として、shoulda-matchers の validate_uniquness_of を使うことがある。このときこんな風に書くと、場合によって通ったり通らなかったりする…
えいっと新しい FactoryGirl に移行して、新しいインタフェースに対応してみた。どう移行したかは GETTEING_STARTED.md を読んでその通りに定義部分と利用部分を修正した。詳細は省く。……が、こんな感じのエラーに悩む。 ....../ruby-1.9.2-p290/gems/factor…
Rails の ActiveRecord::Base.serialize を(仕方なく)使う機会があったが、使い方が気に食わなかったんでさくっと Wrapper を書いたりした。 https://github.com/holysugar/packed_fields https://rubygems.org/gems/packed_fields 名前をやっつけすぎたと…
対象: 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…
Rails.env == 'production' という式は、 Rails.env.production? と書ける。これは Rails.env が単なる文字列ではなく、ActiveSupport::StringInquirer という String を継承したクラスに変換されているから。 https://github.com/rails/rails/blob/master/a…
本当に今更だけど 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>
故あって routes.rb を routes/frontend.rb と routes/backend.rb に分割したいとする。とりあえず、 routes.rb の中で require なり load なりしてもよいが、これだと開発中に routes/frontend.rb を編集しても、再起動しない限り反映されない。 SampleApp:…
[UserAgent] - Pound - Varnish - AppServer 例えば↑のような HTTP Proxy が連なった構成のとき、AppServer がうっかり固まってると(ここでは Read timeout を想定)、プロキシがそれぞれタイムアウトするわけだけど、 Pound はデフォルト設定では 15 秒後…
escape_utils を以前紹介したけど、その時のバージョンはバグがあったので、0.2.1 以上にした方がよいです。特に日本語のリクエストがあった場合に、情報の欠落が発生する可能性があります。 gem "escape_utils", ">= 0.2.1"あとは実は厳密には Rack の unes…
ActiveRecord で Model の空のリレーションを作成するには、scoped メソッドを使うらしい。(WEB-DB PRESSに載ってたらしいけど引っ張り出せない。)https://github.com/rails/rails/blob/master/activerecord/lib/active_record/named_scope.rbri scoped す…
とりあえず今開いてるバッファの内容を Evernote に送り付けるスクリプト。 _vimrc で設定しておけば一発で Evernote 行きだ。 nmap ,n :call WinVimToEver()<CR>Mac だと全然違うアプローチが必要そうなので Win って接頭辞つけた。winvimtoever.vim: " winvimt</cr>…
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 とすることでも抑止できるけど、ここで…
シェルのヒストリでうっかり cap production deploy と実行してしまう時があるので、 production 環境だけプロンプト出すことにした。 config/deploy/production.rb の先頭にこれを挿入。 require 'thor' exit unless Thor::Shell::Basic.new.yes? "This is …
x86_64 な CentOS 5.5 rpm -ivh http://download.fedora.redhat.com/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm rpm -ivh http://rpms.famillecollet.com/enterprise/5/remi/x86_64/remi-release-5-8.el5.remi.noarch.rpm yum --enablerepo=remi,epel i…
いつも忘れるのでメモ。 tail -f messages | sed "s/.*Error.*/i`echo -e '\e[1;31m&\e[0m'`/" | sed "s/^[^ ]*$/`echo -e '\e[1;32m&\e[0m'`/"
jquery-ujs は、jQuery で Rails の JavaScript の機能を使うモノ。Rails では二重クリック防止のために、クリックしたら disabled になるようにこんなオプションがある。 <%= submit_tag '送信', :disable_with => '送信中…' %>だが jquery-ujs を利用した…
devise の挙動追ってたらこれアレがソレだよなー、ってんで github の方あたったらちょうど commit されてたのでそこだけ当てた。https://github.com/plataformatec/devise/commit/71450998c54c9258db3fa89e212c0ad0c2f6e32a1.1.4 まだかなー。でも正直 devi…
Rails3 は基本 UTF-8 縛り。だけど、外部との通信が絡むページとかだと cp932 とかで出力しないといけなかったりする。そこで ApplicationController あたりに対応コードを追加する。 def render_with_encoding(*options) if options[-1].is_a?(Hash) && (en…
Ruby Whois Gem ドメイン調査をバッチ化するのに便利だなあ。 require 'whois' tlds = %w(com net jp) ARGV.product(tlds).each do |*names| domain = names.join(".") result = Whois.whois(domain).available? puts "#{domain} : #{result}" end みたいな。
いろいろ間違えてた。rvm 1.9.2 --passenger をやってできなくておかしいなーと思ってたのが最初で、しかもそれも勘違いだったっていう……。まあ wrapper についてはそういうのがあります。RVM 環境下では、いつのまにか passenger-install-apache2-module コ…