Ruby

vim-ruby の syntax, indent を修正

github.com で vim-ruby を fork して修正してみた。 改行のエスケープ(行末バックスラッシュ)の次行に条件修飾子を記述した場合の fold と indent の判定を修正。 def foo(bar) print "foo: #{bar}" \ if bar # ここの条件が長い場合に改行したくなる end …

パイプかリダイレクトかファイル指定による入力が存在するかの判定

入力がなにも無ければヘルプ表示をしたいという場合に使える。 isinput.rb unless File.pipe?('/dev/stdin') || IO.select([ARGF], nil, nil, 0) puts 'no input' end 出力例 $ touch x $ cat x | ruby isinput.rb $ ruby isinput.rb < x $ ruby isinput.rb …

ActiveRecord@ActionController で scoped_access をいろいろな書式で

ActiveRecordを詳しく「優しいRailsの育て方」 より。 もっとシンプルにできるけど。 つい機能追加やら汎用化やらをしてしまう。 Rails 2.1.0 で動作確認。 コメントいただいたので scoped_access_filter.rb を修正しました。 使い方 基本。 class MailContr…

activescaffold のソートをIEで利用した場合に無限ページ遷移

IEで発生するactivescaffoldのソート不具合 - javakariの日記 より。getCurrentLocation() の修正でもよさそう。 --- vendor/plugins/active_scaffold/frontends/default/javascripts/dhtml_history.js +++ vendor/plugins/active_scaffold/frontends/defaul…

ActiveRecord で関連レコードの size をプリロードする

テーブルの一覧表示で関連レコードの数を表示したい場合、 View でそのまま records[i].subrecords.size などとして繰り返し参照すると SELECT count(*) ... というようなカウント SQL が大量に実行されてしまう。以下を利用するとカウント SQL の実行を1回…