Kanasan.JS prototype.js CodeReading#6
行ってきました。
午前中は、通院のため行けなかったので午後から参加。
前回と違ってサイ本を読破していたのでそこそこちゃんと読めた。 以前の部分も復習しておかないとぁ。
1.6.0.2 が終わってからは差分を見ながら変更点の確認。
CHANGELOG を見ながら追っかけてました。 そのときやってた方法は以下のような感じ。
- 読んでる部分の特定のキーワードで CHANGELOG で検索。
その後途中から Yuya さんのアドバイスで読み方変更。
prototype.js は git 上では複数のファイルに分かれているので読んでいる部分に対応するファイルを 見つけてそのファイルのログを見る必要があります。 配布ファイルの差分が追加/変更の場合は git blame で追加/変更部分が blame でも表示されるので 該当するチェンジセットのコミット内容を git show します。
ほぼすべてこれで変更内容を把握することができました。 ただし、 blame は削除部分に関しては何も教えてくれないのでそこは工夫しないといけない。
Posted in Programming | コメントはありません |
jQuery UI Tabs でハマった件
動的にタブのセットを入れ子にしていくときにハマったので書いておく。
HTML の仕様的に考えれば当然なんだけど、入れ子になっている部分の要素の id が一切重複してはいけないようだ。 重複していると予想外の動作をする上に、証拠を残さずに DOM を変更してくれるので調査しづらい。
id が重複した瞬間に通知してくれるようなツールがあるといいのだけどそんな都合のいいものはないですよね。
Posted in Programming | コメントはありません |
Hash#default_proc をあとでセットする方法
Hash#default_proc= がなかったのであるハッシュにあとで default_proc をセットする方法を考えてみました。
以下のようにするとうまく行きます。
Posted in Programming, Ruby | コメントはありません |
develock の制限がきついので
ruby-mode での develock の桁数制限がきついので緩くしてみた。
うちの Let’s Note CF-Y4 で画面を縦に割ったときにちょうどいい感じになりました。
Posted in Programming | コメントはありません |
RSpec で transaction のテスト
Yuya さんのヒントをもとにしてこんな風にしてみました。
sqlite3? は spec_helper に定義した。ヘルパーメソッド。 SQLite3 だとトランザクションの入れ子が出来なかった(例外が発生する)のでこうしてます。
一応 shouldnotreceive で特定の処理から先には進んでないことは確認しているし、 エラーメッセージも確認しているのでこれでテストとしては良さそう。
あとは、実装コードの最初の方で呼んでる処理をモック化すればいいと思う。
これをモック化すると、通しのテストはどうすればいいのだろう、というのが今の疑問。
Posted in Programming, Ruby | コメントはありません |
アンケートのデータ修正しました
http://q.okkez.net/ の第 28 回 Ruby/Rails 勉強会のアンケートで選択肢が英語になっていたデータを修正しました。
簡単なスクリプトを書いて script/console にコピペして実行した。 ちょっと複雑な修正なら SQL 書くより早いしわかりやすいね。
一部のデータがおかしくなってしまったのは SQL 書いて修正しましたけど。。。
多分、原因は私が使ってる Iceweasel に日本語言語パックをインストールしていなかったためだと思います。 次に同じようなミスがあった場合はすぐに修正できそうです。 r
Posted in Programming, Ruby | コメントはありません |
Rack 使ってみた
諸事情で web アプリを Rails を不使用で書く必要があったので cgi.rb の代わりに Rack を使ってみた。
主に上記を参考にして書いた。
ソースコードは整理して色々名前とか変えたら公開できるかもしれない。
感想
意外と短い行数で書けてびっくりした。 Rails の劣化版くらいなら一日くらいででっちあげられそうな感じ。
Posted in Programming, Ruby | コメントはありません |
prototype.js code reading #5
行ってきた。
javascript のメタプログラミングが段々分かってきた気がする。
だけど、自分でまったくコードを書いてないので、気がするだけなんだろうな。
ぼちぼち、自分のペースで勉強していきたい。
Posted in Programming | コメントはありません |
Ruby1.8.7 で Ruby on Rails が
動かない。
Ruby1.8.7/Rails2.0.2 で動かない。
[ruby-dev:34939] で解決したと思ったけど、やっぱり動かない部分がある。
ActiveScaffold で動的に作成した Controller が動かない。ちゃんと調べてないけど どうやら色々なものが Enumerable::Enumerator を返すようになったのが問題らしい。
ActiveScaffold にパッチあてるしかないのかな。
Posted in Programming, Ruby | コメントはありません |
RSpec で rollback のテストを行う方法
色々と調べたり試したりした結果、以下の方法で妥協することにした。
RAILS_ROOT/spec/spec_helper.rb をコピーして RAILS_ROOT/spec/rollback_spec_helper.rb を作成して、 use_transactional_fixtures = false にする。
これで、ファイルごとに実行するテストはうまくいくようになる。
この方法は簡単なんだけど、 rake spec や rake spec:rcov でテストを実行すると rollback 関連のテストが必ず失敗する。
もっとうまい方法はないのだろうか。
Posted in Programming, Ruby | 2 comments |