Rails

ActiveRecord::Errors の Representation

リファクタリングに際して、REST のリソースプロバイダーを実装している部分にある程度の規約を設けたいなー、と思って設計中。

Rails 2.3 にはいかない。

http://webtama.jp/series/railstips/articles/31。オレンジニュースで気がついた。最近、RailsもCouchDBもそれほどちゃんと追いかけられていないなぁ。ざっと読んだ感じ、2.3にいく明確な理由はなさそう。 Rack についてはまだメリットが分からない。が、ル…

似たようなのが企業からでてきたみたい。: Galera

http://www.isp21.co.jp/news/090130.html。全然関係はないのですが、ほとんど同じコンセプトのもの*1をオープンソースで開発するものとして雑言を。WebJourney もWidgetプラットフォームという点でほとんど同じです。Gadget / Widget という単位でアプリケ…

ERBテンプレートの javascript_include_tag に従ってYUI Compressorでキャッシュファイルを生成する。

何かと便利なのでで作った。rake misc:[css|js]:cache:[generate|clear] とか rake misc:cache:[generate|clear] とかで実行できる。事前にYUI Compressor を RAILS_ROOT/vendor/tools/yuicompressor-2.4.2 当たりに入れておくのとJavaを用意する(YUI Compre…

passenger (a.k.a mod_rails) + javascript_include_tag :cache => true の組み合わせがよろしくない。

たまに、大本のJavaScriptファイルに対して、No such file or directory というエラーを出している場合がある。ところで思ったんだけれど、Railsのjavascript_include_tag とか stylesheet_link_tag のキャッシュ生成機能、rake タスクに外出しして、コンプ…

ActiveRecord::Errors がリソースとして全く機能しないので変更する。

具体的には to_xml が不完全な情報を返すこと、to_json が実装されていないこと、など。以下に書いておいた。メッセージの出力が少しおかしいのは明日直すとして、どの属性がおかしいかを返してくれないと、クライアントは困っちゃいます((railsの場合は err…

高速化のためにRDBをやめてみるテスト。

http://blog.masuidrive.jp/index.php/2008/09/23/concurrency-on-the-web/わかります。 これでは、写真をアップすることに100人分のXMLを生成する事になります。 この手の問題は悩まされます。ちょっと話がずれるかもしれませんが、ある程度の解決の方向性…

assert したい。

Test::Unit 以外の部分でもassertがほしかった。before_destroy などで、致命的なエラーにならないようにフィルタをしているんだけれど、フィルタに引っかかるようなコードはバグ以外の何者でもないのでassertで検出したい。とおもって、assert_* を一気にAc…

CouchDBの使いどころが難しい。

やっと仕事の方が一段落ついたので、開発再開。といっても、すでに何やっていたか忘れた気がしないでもないので0.6.0のデータモデルを再構築中。そう、どこをCouchDBにして、どこをRDB(MySQL)にするかを考えているんだった、、、現時点でできることが限られ…

一通り完了

datetime 型の定義をできるようにして(JSONには存在しないデータ型なのでstringに対するimplicit conversionで実装)完了。一通りできるはずなので、WebJourneyの実装に入る。

alias_method_chain と define_callbacks

まだまだActiveRecordの便利さには遠いのでコールバック機能追加。ActiveRecord とほぼ互換なコールバック関数を定義できるようにした。Rails 2.1 のソースを参考に、ActiveSupport::Callbacks を活用。alias_method_chain と define_callbacks の組み合わせ…

IE7Pro でサーバー側のテストをするのは辞めよう。

FireBug Lite++ などの関係でIE7Proにしていたんだけれど。なんか respond_to がおかしいと思って、Controller で次のようにSTDOUTに出してみる puts "=---------------------------" puts "request.format" puts request.format puts "=-------------------…

素朴な疑問。

例えば、MongrelなどでNプロセス立ち上げるとして、Nプロセス間でクラス変数を共有するのはどうしたらいいかな。。。さっと、管理系のページをRESTfulに書き直しているんだけれど、放置していたActionMailer::Base.smtp_settings の同期の問題がもう一回放置…

controller => view の間のイベント。

昔、ASP.NETをやっていたからでしょうか。Controllerでの一覧の処理が終わって、Viewにわたる間に処理をかましたくなります。そう、ASP.NET の OnRender ってやつです。あーでも、これ、Helper使えってことかなぁ。

コントローラーを探すパスを変更する

Widgetの実装が、RailsのComponentなわけですが、このComponent機能はRails 2.0でなくなる、という話で、対策中。 ぶっちゃけた話、Componentで実装した理由は、単純にファイルをアーカイブする単位として適切だった、というだけです。で、Widgetのレンダリ…

Fixtureファイルをtest以外でも利用する。

初期データの投入で、craete文をかくより、こっちの方が分かりやすいのではないか、と思ったので。 require 'active_record/fixtures' fixtures = Fixture.create_fixtures(fixturedir, ["tablename1", "tablename2", ...] , {"tablename1" => Tablename1, "…