• 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
 
 

This article was migrated from http://rails.office.drecom.jp/takiuchi/archive/134

本日より、MONO+Listのクリスマスキャンペーンが始まりました。

キャンペーン期間中にMONO+Listに登録されたモノを、抽選で10名様にプレゼントする企画です。キャンペーン期間は12月20日(水)23:59までとなっています。

それから、トラックバックキャンペーンも行っています。こちらはキャンペーンサイトにトラックバックを頂いた方の中から、抽選で1名様にWii(TM)をプレゼントいたします。

詳しくはこちらのキャンペーンサイトをご覧ください。

みなさま、奮ってご参加ください。

This article was migrated from http://rails.office.drecom.jp/takiuchi/archive/134

posted by Png genki on Wed 6 Dec 2006 at 13:53

This article was migrated from http://rails.office.drecom.jp/takiuchi/archive/133

botreeのアルファバージョンをリリースしました。

http://botree.drecom.jp/

botreeはオンラインで使えるアウトラインプロセッサーです。

開発した安藤さん、ひとまずお疲れ様です。

This article was migrated from http://rails.office.drecom.jp/takiuchi/archive/133

posted by Png genki on Tue 5 Dec 2006 at 00:19

This article was migrated from http://rails.office.drecom.jp/hibi/archive/37

よく、デスクトップの表示ショートカットを削除してしまいます。
下記の内容を*.scfファイルに保存したらいいです。


[Shell]
Command=2
IconFile=explorer.exe,3

[Taskbar]
Command=ToggleDesktop


http://homepage2.nifty.com/winfaq/c/trouble.html#95 http://rails.office.drecom.jp/hibi/archive/37

This article was migrated from http://rails.office.drecom.jp/hibi/archive/37

posted by Png satoko on Wed 29 Nov 2006 at 06:29

This article was migrated from http://rails.office.drecom.jp/hibi/archive/35

備忘録。しょぼネタ。
こういうの苦手なんだなー。

ActiveRecord, ActionController, ActionMailerにそれぞれloggerがあって、
さらにRAILS_DEFAULT_LOGGERというのもある。
なので、下記のようにしたりすればいい。



ActionController::Base.logger.debug "ログ"
RAILS_DEFAULT_LOGGER.debug "ログ"



参考:
http://wiki.rails2u.com/Logger http://rails.office.drecom.jp/hibi/archive/35

This article was migrated from http://rails.office.drecom.jp/hibi/archive/35

posted by Png satoko on Wed 22 Nov 2006 at 10:55

This article was migrated from http://rails.office.drecom.jp/hibi/archive/34

備忘録。
ファイルの内容をbase64にしてどうやって渡していいか悩んだ。
Base64オブジェクトを渡すのねん。
わかったら、はぁ、ちゃんと読んでって感じ。

file = File.open(file_path).readlines.join('')
base64 = XMLRPC::Base64.new(file)
file_hash = {:name => file_name, :bits => base64}

image = client2.call2('metaWeblog.newMediaObject',blog_id, blog_user, blog_password, file_hash)
p image[1]["url"]

http://rails.office.drecom.jp/hibi/archive/34

This article was migrated from http://rails.office.drecom.jp/hibi/archive/34

posted by Png satoko on Wed 22 Nov 2006 at 04:17

This article was migrated from http://rails.office.drecom.jp/hibi/archive/33

最近、瀧内さんに教えてもらってやってみたのですが、いいです!
あまりに開発が楽しいのでエントリ書きたくなった。
ただそれだけ。

テストっていっつも最後で面倒だなーって思ってたんだけど、これだと楽チン!
私もテストファースト派候補になります。

大きなプロジェクトでもテストファーストなれるといいなぁ。 http://rails.office.drecom.jp/hibi/archive/33

This article was migrated from http://rails.office.drecom.jp/hibi/archive/33

posted by Png satoko on Wed 22 Nov 2006 at 04:08

This article was migrated from http://rails.office.drecom.jp/takiuchi/archive/132

Railsじゃない場合のやり方はsecondlifeさんのこちらの記事に書かれていますが、Railsでlibディレクトリ以下のファイルをautotestする場合には、さらにもう一ひねりしないといけないので、その方法を紹介します。

先に結論だけ書いておくと、RAILS_ROOT/.autotestに以下のように記述すればOK.

Autotest.add_hook :run do |autotest|
  class RailsAutotest < Autotest
    alias __tests_for_file tests_for_file
    def tests_for_file(filename)
      case filename
      when /^lib\/.*\.rb$/ then
        impl = File.basename(filename).gsub '_', '_?'
        impl.sub!(/\.rb$/, '_test.rb')
        @files.keys.select do |k|
          k =~ %r%^test/lib/#{ impl }$%
        end
      when /^test\/.*_test\.rb$/ then
        [filename]
      else
        __tests_for_file(filename)
      end
    end
  end
end
使い方は、lib/foo_bar.rb のテストをtest/lib/foo_bar_test.rbに書けばOK。 あとは普通にRailsでautotestを使うときとおんなじです。

autotestは、config/environment.rbの有無によって自動的にRailsアプリケーション であるかどうかを判別します。その場合、通常のAutotestクラスではなく、Autotestクラスから派生したRailsAutotestクラスが使われるので、こちらのクラスのtests_for_fileに手を加える必要があります。

また、わけありでconfig/environment.rbを削除しているような場合は、autotestの起動時に

$ autotest -rails
と、-railsオプションを指定することで明示的にRailsモードで起動できます。
関連記事
RailsのテストでRed Green Yellow
ZenTestのautotestがとても快適
Railsでデバッグをする7つの方法

<追記>

lib以下のファイルをテストするためのRakeタスク:

require 'rake'
require 'rake/testtask'

namespace :test do
  desc 'Test libs.'
  Rake::TestTask.new(:libs) do |t|
    t.pattern = File.join(RAILS_ROOT, 'test/lib/**/*_test.rb')
    t.verbose = true
  end
end

This article was migrated from http://rails.office.drecom.jp/takiuchi/archive/132

posted by Png genki on Tue 21 Nov 2006 at 14:29

This article was migrated from http://rails.office.drecom.jp/takiuchi/archive/131

時々忘れるので備忘録として書いておきます。

100系: 情報伝達のためのステータスコード
100 Continue: リクエストを受け付けたが処理が完了していない状態。
101 Switching Protocols: プロトコルを変更したことを通知。
102 Processing:
200系: 成功を表すステータスコード
200 OK: リクエストが成功した。
201 Created: リクエストが実行されてリソースが作成された。
202 Accepted: リクエストは受け入れられたが、処理は完了されていない。 処理の完了は保障されない。
203 Non-Authoritative Information:
204 No Content: 処理は成功したが、返す結果(body)は無い。
205 Reset Content:
206 Partial Content:
300系: リダイレクトに関するステータスコード
300 Multiple Choices:
301 Moved Permanently: 恒久的なリソースの移動。
302 Found:
303 See Other:
304 Not Modified:
305 Use Proxy: Locationで指定したProxyを通してアクセスすることを指示。
306 (Unused): 使われていない。将来のために予約されている。
307 Temporary Redirect: 一時的なリソースの移動。
400系: クライアント側のエラーに関するステータスコード
400 Bad Request: リクエストを理解できなかった。
401 Unauthorized: リソースにアクセスする権限が無い。
402 Payment Required: まだ使われていない。将来のために予約されている。
403 Forbidden: リクエストを理解したが、実行を拒否した。
404 Not Found: リソースが存在しない。
405 Method Not Allowed: 指定されたメソッドは許可されていない。
406 Not Acceptable:
407 Proxy Authentication Required:
408 Request Timeout:
409 Conflict:
410 Gone: 指定されたりソースは削除された。
411 Length Required: レスポンスの長さ(content-length)を指定する必要がある。
412 Precondition Failed:
413 Request Entity Too Large: リクエストが大きすぎる。
414 Request-URI Too Long: URIが長すぎる。
415 Unsupported Media Type:
416 Requested Range Not Satisfiable:
417 Expectation Failed:
500系: サーバ側のエラーに関するステータスコード
500 Internal Server Error: 内部エラーが発生した。
501 Not Implemented: 要求された機能は実装されていない。
502 Bad Gateway:
503 Service Unavailable: サーバは一時的に稼動していない状態である。
504 Gateway Timeout:
505 HTTP Version Not Supported: リクエストのHTTPバージョンをサポートしていない。
虫食いの部分を埋めました。サマリの抜けはもうちょっと時間ができたら後で書くかも。

This article was migrated from http://rails.office.drecom.jp/takiuchi/archive/131

posted by Png genki on Tue 21 Nov 2006 at 02:59

This article was migrated from http://rails.office.drecom.jp/takiuchi/archive/130

Clipboxのアルファバージョンをリリースしました。

http://clipbox.drecom.jp/

ソーシャルデータベースの試作品です。カードという形でデータを作成し、作成したカードを「Box」に入れる事で流通するシステムになっています。 ほかのユーザの「Box」を自分の「Box」に入れることもできて、BoxからBoxにカードが伝播していくようになっています。

まだまだ発展途上ですが、よろしくお願いします。

This article was migrated from http://rails.office.drecom.jp/takiuchi/archive/130

posted by Png genki on Mon 20 Nov 2006 at 20:02

This article was migrated from http://rails.office.drecom.jp/takiuchi/archive/129

Rails勉強会は、第0回も含めると今回でちょうど一周年になるみたいです。 井上さん、お疲れ様です。今後ともよろしくお願いします。

さて今回は、参加したセッションの記録をこちら に記録してみました。

参加したセッションは、前半が「いまRSpec on Rails が熱い」、後半が「いまこそ ARと外部キーについて考える」でした。

■前半「いまRSpec on Rails が熱い」

前半の人気セッション。もろはしさんがセッションオーナーで、16人参加しました。 ポジションペーパーの自己紹介だけで40分ぐらいかかっていました。 個人的には、t-wadaさんにお会いできたのが嬉しかったです。

まずはRSpecのはじめ方。

# gem install rspec
# gem install ZenTest -v 3.4.1
例えばRSpecでモデル用のspecを生成するときはこんな感じに書く。
$ ./script/generate rspec_model person
specのfixturesをtest/fixturesにシンボリックリンクで持ってくると便利らしい。 中身が違う事はあまりなさそうだから、確かにそうですね。 むしろデフォルトでそういう動作をしても良いんじゃないかな。 そして、specファイルには以下のような感じで仕様を記述していく。
context "○○について" do
  fixture :people

  setup do
    @person = ...
  end

  def specify "○○のこと" do
    @person.should.have.at_least(1).parties
  end
end
それから、RSpecを使うと、コントローラの単体テストを書くことができる。 コントローラのspecを書くときは、アクションをcontextに対応させて、 specifyでactionに対するいろいろなケースの仕様を書いていく。 ひとつのコントローラが複数のコンテクストを持つ感じですね。
response.should_be_success
とか、
Person.should_receive(:find).with(1).and_return Person.new
のように記述することができる。should_receiveは、sendに対応するメソッドで、 あるオブジェクトのメソッドが呼び出されることを表す。 should_receiveはsendされるより前にあらかじめ呼んでおかないといけない。

最後に、GetTextを使って国際化している場合にSpecを書くにはどうしたら良いか、 などという話題が出ましたが、時間切れ。setupでGetText.locale = 'en'とかしてみたら良いのかな。

■後半「いまこそ ARと外部キーについて考える」

maihaさんがオーナー。ActiveRecordの習熟レベルの話で盛り上がる。

  1. CRUDをやったことがある
  2. Validationが書ける
  3. has_one, has_manyが使える
  4. has_and_belongs_to_manyが使える
  5. has_many :throughが使える
  6. with_scopeを使える
  7. シリアライズを使える
  8. 複数のDBをまたがってARを利用したことがある
  9. acts_as_XXXXを作れる
  10. ARのアソシエーションを自作できる
大体こんな感じでしたね。シリアライズは使ったことがなかった。 舞波さん曰く、STIを使うのは素人。

そしてようやく本題に。都道府県や男女を外部キーで持つか、データで持つか。 舞波さんの目論見に反して、みんな外部キー派。話が終わってしまいそうになるところを なんとか頑張ってbelongs_to :association_foreign_keyをライブ実装。

class User < ActiveRecord::Base
  belongs_to :zipcode, :foreign_key => :zip, :association_foreign_key => :zip7
こんな感じで使用すると、主キー以外でアソシエイションを定義できる。

そして、これをどうやってRails本体に入れてもらうかという話題に。 DHHは「積極的なNO」という態度らしく、Dave Thomasさんに頼んでみたらどうかという感じに。 なかなか茨の道のようですね。

■懇親会

今回は雨だったこともあり、会場の近くのZESTというところでやりました。 Roleごとにサーバを分割した場合のRailsのキャッシュの話、アカデミックな話、高橋さんが持参してきたディスプレイの話などに花が咲きました。

そしてなんだかわからないですが、突然ロデオマシーンが登場し、2名ほどロデオに興じました。 この文章意味不明だな…。でも詳しく描写する気力がないのでこれまたブレて良くわからない写真でご勘弁を。値段も手ごろだったし、これはこれでなかなか楽しかったです。

This article was migrated from http://rails.office.drecom.jp/takiuchi/archive/129

posted by Png genki on Mon 20 Nov 2006 at 18:02