ubuntuにcouchdbをソースから入れる手順をメモしておきます。

posted by Png genki on Fri 3 Apr 2009 at 03:46

データベースのメンテナンスのために、明日(2009/4/3)の早朝04:30ごろから30分程度、弊社のサービスに繋がりにくくなる時間が発生する見込みです。

ご迷惑をおかけいたしますが、よろしくお願いいたします。

Update

メンテナンスは無事に終了いたしました。

posted by Png genki on Thu 2 Apr 2009 at 13:58

いろいろあって、いまはこんな感じになってます。

   1  [alias]
   2    co = checkout
   3    ci = commit -a
   4    st = status
   5    up = pull --rebase
   6    a  = add
   7    b  = branch
   8    c  = commit
   9    d  = diff

posted by Png genki on Thu 2 Apr 2009 at 12:43 with 2 comments

Formula は、数式を簡単にブログに貼付けて共有できるサービスです。 このたび、FormulaをRails-2.3.2に対応させました。

また、対応作業の過程で、Rails用のpaginationライブラリである、 pagination_scopeのバージョン0.1.2をリリースいたしました。

:groupオプションを含むnamed scopeのpaginationに対応いたしました。

posted by Png genki on Thu 2 Apr 2009 at 01:35

Rails-2.3からRackに対応した事と関連が深いと思うのですが、 ruby-openidを使っていると、logger関係のエラーが出るようです。 ruby-openidでは、デフォルトでは以下のように

   1      @@logger = Logger.new(STDERR)

STDERRを使うようになっているのですが、これがRackと相性が悪いようです。 以下のように、config/initializers/*.rbあたりで別途loggerを設定すると良いようです。

   1  OpenID::Util::logger = Logger.new(File.join(Rails.root, %w(log openid.log)))

posted by Png genki on Wed 1 Apr 2009 at 21:18

polymorphic_urlの中身で使われている build_named_route_callのソースを貼付けておきます。

   1        def build_named_route_call(records, namespace, inflection, options = {})
   2          unless records.is_a?(Array)
   3            record = extract_record(records)
   4            route  = ''
   5          else
   6            record = records.pop
   7            route = records.inject("") do |string, parent|
   8              if parent.is_a?(Symbol) || parent.is_a?(String)
   9                string << "#{parent}_"
  10              else
  11                string << "#{RecordIdentifier.__send__("plural_class_name", parent
  12  )}".singularize
  13                string << "_"
  14              end
  15            end
  16          end
  17  
  18          if record.is_a?(Symbol) || record.is_a?(String)
  19            route << "#{record}_"
  20          else
  21            route << "#{RecordIdentifier.__send__("plural_class_name", record)}"
  22            route = route.singularize if inflection == :singular
  23            route << "_"
  24          end
  25  
  26          action_prefix(options) + namespace + route + routing_type(options).to_s
  27        end

posted by Png genki on Wed 1 Apr 2009 at 13:18

Railsでモデルのバージョン管理を行うというと、 acts_as_versionedを使うのが一般的でしたが、 しばらくメンテナンスされていないのと、githubでforkがカオス状態になっていて、公式ドキュメントと実装が一致しなくなっているなど、ちょっと使いにくい状況になっているようなので、それ以外の選択肢を調べてみました。

  • version_fu かなりシンプルな作り。ソースは100行程度。そのぶん、Versionedテーブルの作成などは自動でやってくれない。
  • SimplyVersioned こちらもシンプル路線。Versionedテーブルを使わずに、1つのテーブルでhas_manyアソシエーションを使って管理するタイプ。validates_uniqueness_ofとかを使っていないならこれでも良いかな。
  • acts_as_versioned_association aavでassociationを含むモデルのバージョニングが出来なかった問題を解決したものらしい。
posted by Png genki on Wed 1 Apr 2009 at 11:51

あのAsakusa.rbから、dm-paginationバージョン0.3.2がリリースされました。

dm-pagination-0.3.2 is out from Asakusa.rb

最近の改善が取り込まれています。 dm-paginationはMerb with DataMapper用のpaginationを提供するプラグインです。 Rails用の pagination_scope の姉妹プラグインです。

See Also

posted by Png genki on Tue 31 Mar 2009 at 10:45

何回か忘れたので、記憶を定着させるためにメモしておきます。 rubyでLOAD_PATHに特定のディレクトリを追加したい場合、以下のように RUBYLIB環境変数が利用できます。

   1  export RUBYLIB=/usr/lib/site_ruby:$RUBYLIB

posted by Png genki on Sun 29 Mar 2009 at 00:30

s21gブログをRails-2.2.2からRails-2.3.2に対応させました。 主に以下のようなところで作業が発生しました。

  • session :off が不要になったので削除
  • application.rb ⇒ application_controller.rb
  • Test::Unit::TestCase から ActiveSupport::TestCaseに
    • test_helper.rbの中の定義もActiveSupport::TestCaseにする
  • formatted_xxx_url(:foo)をxxx_url(:format => :foo)に
posted by Png genki on Sat 28 Mar 2009 at 23:55