2006-01-01から1年間の記事一覧

Modifierもどきを実装

DHHのアドバイスに従い、Smartyの修正子(Modifier)もどきを実装してみた。ついでに、動的要素を示す属性の既定値をidからamrita:srcに変更。 t = TemplateText.new %[<x amrita:src='time|DateFormat["%Y-%m-%d %H:%M"]' />] t.expand(out="", :time=>Time.local(2006,6,19,22,30)) assert_equal("<x>2006-06-19 22:30</x></x>…

production環境だけ発生するロードエラー

それで、実は本番環境に移行する時に、謎のエラーが出て、ちょっとハマりました。 現象 前に一度、試しにproduction環境で動かしたことはあってその時は問題なく動いていたはずなのですが、今日やってみたら、本番環境ではほとんど全てがエラーになりました…

本番開始

今日から「カウンセリング予約システム」の本番をスタートしました。本番環境は、apache1.3 + mod_proxy + Mongrelにしました。Mongrelのインストールはgem一発。 $ sudo gem install mongrelAPPROOTで、"mongrel_rails start"というコマンドを打てば、scrip…

Write Less Software!!

素晴しい仕事にふさわしい勲章ですね。ちょっとうらやましいけど、私が同じサインをもらっても、角谷さんの感じている嬉しさは得られないと思う。仕事の報酬とはそういうもので、本当の価値はやったことの中にある。角谷さん、スタッフの皆さん、おめでとう…

DHHのツッコミ

なお、DHHのツッコミは、以下の二点。とりあえず、自分用に、ツッコミの内容をメモっておいて、対応は後で考えます。 ビューロジックを別ファイルに分離できないか? Amrita2はコンテンツの動的な部分をハッシュやPlain Ruby Objectのデータとして作成するの…

Amrita2は演繹的ソフトウエア?

私のプレゼンの資料はココ。XUL Apps > Tiny Applications > 高橋メソッドなプレゼンツール in XUL リターンズ で書いたので、firefoxオンリーです。プレゼンとしてはボロボロだったけど、言いたいことは伝わったみたい。というのは、発表の後の雑談の中で、…

gem戦記スタート

ということで、無事Rubyカンファレンスの発表も終わったので「Amrita2強化月間」は終了して、このブログは「gem戦記」として再スタートすることにした。本当は、永遠に「Amrita2強化月間」を継続するつもりだったのだけど、二日目に会場に行く途中のゆりかも…

Rubyカンファレンス2006

いやあ、面白かったの一言。多士済々という言葉がピッタリだと思う。プレゼンの内容も人もどちらも面白かったです。ざっと見た所では、まちゅダイアリーさんのまとめがよくまとまってて、2日目の方にリンク集もある(来てたのなら、ぜひお話ししたかったです)…

[coreserve][Amrita2] Amrita2化

Rubyカンファレンスのネタにする為に、できあがった画面をひとつAmrita2化してみました。やったのは、こちらの一覧表示画面。この画面は、ゲスト/クライアント/カウンセラーで、それぞれ少しづつ違う画面になるので、ビューは次のような感じで、case文がたく…

[coreserve] とりあえず完成

実況中継の時間が無くて端折り気味になってしまいましたが、「カウンセリング予約システム」が一応完成しました。一週間ほど、下記アドレスで起動しておきます。好きにいじってみてください。http://www.brain-tokyo.net:3000/クライアントとして、aaa/aaaaa…

[coreserve] 管理画面

管理画面、つまりセッションの作成、修正、削除は、jascaffoldベースで作りました。追加した機能としては以下の通りです。 カウンセラー以外にはアクセスできないようにした 新規作成だけは常時使用するので、初期値の表示等、使いやすくする工夫をした 一覧…

[coreserve]予約とキャンセル

一番重要な予約とキャンセルの処理を実装しました。実際の作業は、(いろいろな割り込みもあったので)もうちょっと行きつ戻りつしていますが、基本的にはテストを書いて実装して、Webrickサーバで動かして調整しての繰り返しでやりました。まず、ログインして…

初期画面(クライアント向けとカウンセラー向け)、ClientController一応完成

初期画面は、ゲスト、クライアント、カウンセラー、それぞれに違う画面が出るようにしました。それから、ClientControllerがほぼ完成しました。テストファーストでリズムの乗ってきた感じですが、疲れたので詳しい報告はサボリ。効率が上がるとそのぶん疲れ…

初期画面(ゲスト向け)一応完成

初期画面のゲスト用のテストは、このようになりました。 def test_index_for_guest get :index assert_response :success # ログインと新規登録へのリンクを表示しているか assert_tag 'a', :attributes => { :href => '/client/login' } assert_tag 'a', :a…

URLの設計

昨日は、jascaffoldで作成したresevationコントローラをいろいろいじりながら Rails の勉強をしました。断片的な作業は進んでいるのですが、確認をしてないので、ここからテストを作って確認しながら、コントローラとビューを開発していきたいと思います。ま…

jascaffoldの調整

その後、jascaffoldを調整して、一覧表示は以下のようになりました。 まだ、ビュー(テンプレート)には手を入れていません。変更したのは、まず、jascaffoldの設定ファイルで、生成されたものに日本語の名前を入れていきました。 # (config/localize.yml) # M…

jascaffoldの導入

では、CounselingSessionの一覧、登録、修正、削除の機能を作りますので、jascaffoldを導入します。参考サイトは以下の通り。 ヽ( ・∀・)ノくまくまー(2005-12-20):Scaffold の日本語化 ヽ( ・∀・)ノくまくまー(2005-12-28):jascaffold クエスト jascaffold…

ユーザオブジェクトの管理方法

ここで、このシステムの基本的なアーキテクチャをまとめると次のようになります。 LoginEngineの機能で、認証されたユーザに相当するオブジェクトがセッションに格納される LoginEngine標準のUserオブジェクトを継承して、それぞれの役割に相当するオブジェ…

日本語化

次に、テスト用の画面を日本語化してみます。 RailsによるアジャイルWebアプリケーション開発これの付録Fに「日本語を扱うための注意事項」という項目があるので、これを参考に。(言い忘れたというか言うまでもないけど、この本は目茶苦茶参考になってます) …

カウンセリングセッションのモデル

さて、ここから、業務要件に従って、予約用の時間枠をCounselingSessionというモデルクラスとして作成します。ちょっとネタバラシをすると、ここに書いているのは、完全に作業経過そのままではなくて、若干、予習して問題点をクリアしてから戻ってやり直しな…

業務要件整理

現時点でわかっている(決まっている)業務上の要件をまとめてみました。 セッション(予約用時間枠)として必要な項目は、開始時刻、終了時刻、場所、メモ、ステータス、カウンセラーID、クライアントID 開始時刻、終了時刻、カウンセラーIDは作成時に確定し変…

モデルの構築とテスト

さてここからは、テストファースト風味でモデルを構築していきます。まず、クライアントとカウンセラーをどうモデル化するか。クライアントはユーザで、カウンセラーは予約するリソースです。だから、厳密にモデリングすると、両者は無関係な別個のエンティ…

ユーザ情報のメンテナンス

次にユーザ登録情報の修正を行なえるようにします。LoginEngineには、登録ユーザが自分の情報を対話的に修正する機能があるので、これを使用します。まず、environment.rbの設定情報で、修正可能な項目にメールアドレスを追加します。 module LoginEngine # …

Login Engineのインストールとテスト

さて、ここから本格的な開発に入りますが、まず、このシステムはユーザごとに違う情報を表示することになるので、まずユーザ管理が必要になります。RailsにはLogin Engineという高機能かつ柔軟なプラグインがありますので、これを使うことにしました。また、…

開発準備

まずは、railsコマンドでアプリケーションの雛形作成。 $ rails coreservescript/server で実行して、動作確認します。 $ cd coreserve $ script/server http://localhost:3000/ にアクセスして、RailsのWelcomeページが表示されるのを確認。次に、データベ…

カウンセリング予約システム開発環境

開発環境は以下の通りです。 debian sarge on coLinux on WindowsXP ruby 1.8.2 (sarge標準) mysql-server 4.0.24 (sarge標準) Rails 1.1.2 ruby 1.8.2でよいのかちょっと不安ですが、行ける所までやってみて、問題が起きたらその時考えます。本番環境は、後…

カウンセリング予約システム

私は、これから業務でごく小規模のWebアプリケーションを作成する予定です。せっかくですから、Ruby on Railsで作成し、その模様をここでレポートして行きたいと思います。 業務の背景、概略 私の勤務先では、最近、産業カウンセラーの資格を取得した者がい…

このブログについて

このブログは、id:essaのサブアカウントで作成されています。Amrita2の開発を中心に、主として技術的な話題を扱う予定です。日本Rubyカンファレンス2006のスピーカーとしてお招きいただいているので、当面は、「カウンセリング予約システム」というシステム(…