Merb/DataMapper/CouchDBの環境で rspec を使う場合には、 spec_helper.rb で以下のように設定すると良いようです。

   1    config.before(:all) do
   2      DataMapper::AutoMigrator.auto_migrate(nil,
   3        *(DataMapper::Resource.descendants - [Merb::DataMapperSessionStore]))
   4    end

セッションストアを使っている場合は、 Merb::DataMapperSessionStore用のrepositoryを 別途指定すると良いと思います。

posted by Png genki on Sat 4 Apr 2009 at 22:11

DataMapper#auto_migrate!を実行すると、以下のようなコードが実行される。

   1  self.auto_migrate!(repository_name = nil)
   2    AutoMigrator.auto_migrate(repository_name)
   3  end

AutoMigrator#auto_migrateは以下のようになっている。

   1  def self.auto_migrate(repository_name = nil, *descendants)
   2    auto_migrate_down(repository_name, *descendants)
   3    auto_migrate_up(repository_name, *descendants)
   4  end

第二引数以降でDMのクラスリストを指定できる。 省略すると、DataMapper::Resource.decendantsが指定されたものとして動作する。 特定のリソースだけまとめてauto_migrateするには便利そうだ。

posted by Png genki on Sat 4 Apr 2009 at 21:58

[追記] その2を書きました:
http://blog.s21g.com/articles/1411


長くなりそうなので続きはその2で!

railsを使っているとpluginなどは外部repoをそのまま使いたくなります。そこで前から聞いていたsubmoduleを使ってみたくなりました。しかしこのsubmodule、わりと最近導入されたようなのでgitのバージョンによって動作に違いがあるようです。

というわけで、まず私の環境を書いておきます:

   1  % git --version
   2  git version 1.6.0.2

git submodule add

rspecを例に:

   1  % git submodule add  git://github.com/dchelimsky/rspec.git vendor/plugins/rspec

追加したらcommit and push

   1  % git commit -am "add submodule: plugins/rspec" 
   2  % git push origin master

これでサーバにsubmoduleが追加されました。他の人がpullなどすれば、submoduleを確認することができます(詳しくはその2を参照)
で、次にsubmoduleのstatusを確認してみます。

git submodule status

git statusと同じようなコマンドでsubmoduleの状態が確認できます:

   1  % git submodule status 
   2  9dc19a3a593f4ce1b4e221889091cebd773ea5c4 vendor/plugins/cache_fu (heads/master)
   3  -e110f2056783465b8d719bdb1ab5fd14e7650f56 vendor/plugins/rspec 651611999df3e57de6f36486b51abd3bf5d66cea vendor/rails (v2.2.0-1085-g6516119)

commit hashに-、+がついている時がある(上だとrspecに-がついてます)。
ざっくり説明:

  • -がついているとまだ初期化されていない状態
    => git submodule update --initでok
  • +がついているとサーバでindexしているcommit hasと異なるcommit hashだよというお知らせ
    => git submodule updateでok
posted by Png satoko on Fri 3 Apr 2009 at 17:26

今週末の4/5(日)にMerbJogを開催いたします。 Merb/Rubyなど、プログラミングに関する会話をしながら皇居の周りを走ります。 詳細・参加登録は以下のページをご覧ください。

http://atnd.org/events/510

開催時刻は多少変動する可能性があります。 雨天、悪天候の場合は延期となります。 ご了承ください。

posted by Png genki on Fri 3 Apr 2009 at 16:34

急遽大門駅付近で開催されることになったCouchDB勉強会のレポートです。

参加者: @maiha, @yugui, @yamaz, @takiuchi

そもそもCouchDBは何かというと、 Apacheのプロジェクト で、分散、耐障害性、スキーマフリー、ドキュメント指向なデータベスで、 RESTfulなAPIを使って制御します。

結構前から存在していたのですが、取りかかるきっかけがなくてスルーしていました。 しかし、dm-couchdb-adapterを使ってMerb/DataMapperで利用可能という事が分かり、にわかに盛り上がってきました。

早速、couchdbをインストールします。 いまのところ、ソースからcouchdb-0.9.0をインストールするのが一番良いようです。 macportsのcouchdb-0.9.0aでは動作が微妙に異なっているようでうまく動きませんでした。

dm-couchdb-adapterは、dm-moreにバンドルされているのですが、 そのままでは一部機能が利用できなかったので、 問題の分析を行いながら、 @maihaさんが改良を加えていきました。 改良版はこちらにあります。 使ってみたい場合は、maiha/dm-moreをcloneしてきて、

   1  % cd adapters/dm-couchdb-adapter
   2  % sudo rake install

すればOKです。 基本的な使い方は上記GitHubリポジトリのREADMEを読めば分かります。

結論として、普通にMerbアプリを作れるようになりました。 試しに作りかけの社内ツール的なものをMerb/DM/CouchDBの構成にしてみました。

http://watch.s21g.com

Future Worksとしては、

  • read_manyでのorderの指定。emitの第一引数を使う。逆順をどうするか。
  • count以外のaggregate (max, min, sum, avg) のサポート

などがありますね。

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

Office 2007 になって「リボン」と言われるUIになりましたが、そのおかげで、どこに何があるのか全くわからなくなりました。

Word やExcel は個人的には仕事に支障はでないのですが、Access だけはどうしても馴染めません。

そこでいろいろ調べていると、

というのがMicrosoftから出されていました。

このページの下のほうに、 2003と2007の違いをExcelファイルに羅列した、Access リボン マッピング ブックというものがあります。

見る気も失せるくらい多いです・・・

posted by Png y_tsuda on Fri 3 Apr 2009 at 14:19

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