タグ

ブックマーク / moro.hatenadiary.org (31)

  • ダミーWebサーバを作るライブラリ、wwをリリースしました - moroの日記

    近頃はWebAPIを使ったアプリケーションを作ることが増えていると思いますが、自動化テストからのWebAPIへのアクセスはどうやってますか? 私は、自分でstubしたりFakeWeb(レシピ先輩に教わった!!)を使ったりしてたんですが、イマイチしっくりこない部分がありました。で、Sinatraなぞで作ってたんですが、それをgemにまとめましたので、よろしければご利用ください。 http://github.com/moro/ww http://gemcutter.org/gems/ww 概要 ww(Double Web)はいわゆるDouble(mock, stub, spyなど)の機能を備えたダミーWebサーバを簡単に作るためのフレームワーク(笑)です。現状では、以下のようなことが出来ます。 他のAPIサーバを使う場合などに、簡単にダミーサーバを作る そのダミーサーバは自動化テストないから起

    ダミーWebサーバを作るライブラリ、wwをリリースしました - moroの日記
  • ネストしたリソースの扱いの話とか - moroの日記

    Rails勉強会@東京の月刊Merbで瀧内さんがサンプルを示しながらMerbの使い方を説明してくれました。 で、そのときにブログのようなものを実例に使っていまして、そのCRUDの設計についてプチ議論になっています。 まとめ なんかコードを書いてみたりしたらえらい長くなったので、私の考えを簡単に要約すると とりあえずこの前提に興味があるならDHHのプレゼンを見るといいと思います map.resource使うといいよ ビューの事情なんだからAjaxとテンプレート差し替えで何とかするのがいいかと それを簡単にするプラギンが欲しい という。あと読み返して思ったんですが、ネストしたリソースの扱いについての議論に対して、そのリソースはネストしていない、という主張が来てるのか。それはすれ違うなー、と思いました。 ここから意見いろいろ データ構造としてはよくあるブログを想起していただければいいんですが、P

    ネストしたリソースの扱いの話とか - moroの日記
    yugui
    yugui 2009/01/31
  • JRubyとPOIを使ってMS Officeのテキストを抜き出すライブラリを作りました - moroの日記

    仕事で必要になりそうな気配がしてきたので、夏休み中にMS Officeドキュメントに含まれるテキストを抽出するためのツールを作ってみました。 DeltaAttackという名前でGitHubで公開しています。 http://github.com/moro/delta_attack/tree/master 最初はxlhtmlでテキストを抽出しようとしたんですが、SI屋さんがよく見かけるような複雑な段組みのExcel帳票をうまく抜けませんでした。というかよりによって抜きたい部分のテキストだけ抜けないという。そこで、Apache POIを使ってみました。Javaを書くか、、と思ったのですが、まるごとRubyを見ながらJRubyで試してみたら簡単に書けたのでそちらで。WEBrickも使えるし。やらない夫大場さん++。 JRubyは使ってますが、CRubyRailsアプリから使いたかったので何とかな

    JRubyとPOIを使ってMS Officeのテキストを抜き出すライブラリを作りました - moroの日記
  • Chmer用のchmバンドルを生成するRuby Script - moroの日記

    id:cho45さんが作っているMac OS X用 CHTMLビューア Chmerがめちゃめちゃすばらしいです。 ただ、http://coderepos.org/share/browser/lang/ruby/misc/chm-generators/generate-local-gems-chm-bundle.rbの生成スクリプトがちょっと希望と違う感じでしたので、似たようなものを作ってみました。 引数にgemの名前を与えると、そのgemのRDocをchmバンドルにまとめます。-Vオプションで生成対象のgemのバージョンを指定することもできます。 $ gem2chemr_chm.rb rspec #=> generates latest ./rspec-1.0.8.chm $ gem2chemr_chm.rb rspec -v 1.0.5 #=> generates latest ./rs

    Chmer用のchmバンドルを生成するRuby Script - moroの日記
  • TDDとテストファースト => TDDのオレオレ定義と5回リロードルール - moroの日記

    自分でももやもやしてるのでツッコミ希望。 考えだした元記事 : http://techon.nikkeibp.co.jp/article/TOPCOL/20070806/137518/ TDDを紹介するときに、「TDDではプロダクトコードの前にテストを書く」という紹介のされかたが多いんですが、これはちょっと誤解を招く表現だなぁ、と思います。TDDを達成するための1つの(とても有効な)技法としてテストファーストがあるわけですが、その関係は"=="じゃなくて包含だよなぁ、と思うのです。 TDDは字義通りに解釈してもしなくても、テストが開発を駆動することが重要なわけです。駆動するというのはもちろん先にテストを書けば駆動してるんですけど、それは必要条件じゃない。 別にあとから作っても*1、 自分が作ってるモジュールを使ってみたら、APIが「ねーよwww」くらい使いづらいものであると気づいたり、とか

    TDDとテストファースト => TDDのオレオレ定義と5回リロードルール - moroの日記
    yugui
    yugui 2007/08/17
    Test FirstではないTDDの
  • RSpecを0.8.x から 1.0.x にあげる際のポイントメモ - moroの日記

    RSpecは長らく0.Xリリースが続いており、APIの変更がなされていました。 しかし、2007/5/19に正式りリースである1.0.0が公開され、現在ではそのバージョンが活発にメンテナンスされています。 機能の追加はもちろん、バグ修正も多く行われており、またRSpecの開発陣も、このバージョンのAPIは後方互換性を保っていくことを表明しています。これから使いはじめる分には「テスト基盤がころころ変わる」問題は多少は収まることと思います。このへんを懸念してRSpecを導入していない方がいらしたら、このバージョンは是非さわってみてください。 ということで、実際に0.8.xで書いていたspecを1.0.0互換にしてみました。完全に1.0.xスタイルの書き方というわけでは鳴く、あくまで既存資産分を動作させるための最小限の変更、ということに御注意ください。 注意点 contextとspecify 引

    RSpecを0.8.x から 1.0.x にあげる際のポイントメモ - moroの日記
  • RSpec 0.9.x の変更点私的メモ - moroの日記

    最近は主に 0.8.x を使っていた 変ったよ〜という話は聞きつつもとりあえず 0.8.x で不便を感じていなかったので(互換性あるし)で流してた Rails勉強会@東京のWikiでYuguiさんが「変わりすぎwwww」 どれどれ、と見てみて噴いた ← いまここ サンプル from 家 describe Account, " when first created" do before do @account = Account.new end # (1) it "should have a balance of $0" do @account.balance.should eql(Money.new(0, :dollars)) end after do @account = nil end end (1) describe - it と context - specify いままでは c

    RSpec 0.9.x の変更点私的メモ - moroの日記
  • 最近の RSpec 情勢 - moroの日記

    よしみさんの http://d.hatena.ne.jp/walf443/20070324/1174702913 の記事の補足。 最近のバージョンでは Matchers を自分で追加して should のあとに書ける語を増やします。というかそれを実現するために should とそれを受けるプロキシに分離し、あの賛否が分かれる文型になったわけです。わたしゃいい加減なれてきましたが、確かに前の方が好きだったという思いは消えません:p。 カスタム Matchers の作り方 で、こちらを見るとカスタム Matchers の作り方が解説してあります。 http://rspec.rubyforge.org/rdoc/classes/Spec/Matchers.html 重要なところを(文が通るように加工した上で)コピペすると、こんな感じになります。 module CustomGameMather c

    最近の RSpec 情勢 - moroの日記
    yugui
    yugui 2007/03/26
  • HDD 交換しました - moroの日記

    どうも先週あたりから自宅 Macbook の調子が悪くて、ディスク障害っぽかったので前からの検討事項だった HDD の換装を実施しました。新しい HDD は富士通の MHV2120BH。120GB モデルです。まだセットアップ途中ですが、たぶん前よりも静かになった気がしてます。速度は*1大差なく。満足。 そもそもの発端は、一週間ほど前からどうもディスクが調子悪くて。使ってると不定期に 30秒〜5分くらい無反応になるようになりました。動かせるのはマウスポインタくらいで、アプリの切替えも駄目。で、そのときにログを見ると、kernel が "disk0s2 ... (UNDEFINED)" とか言うエラーがでてます。こんなの CD からブートして DiskUtility とか fsck_hfs とかしてもエラー無し。こりゃダメだということで銀座の Genius bar にいったんですが、「クリー

    HDD 交換しました - moroの日記
    yugui
    yugui 2007/03/06
  • ActiveRecord で VIEW を使うときの注意点 - moroの日記

    備忘録。ここでいう VIEW は DBCREATE VIEW AS .. するあれです。ActionPack とは関係ないです。試したのはすべてSQLiteです。 とりあえずけっこう普通に使える。 例えば CREATE VIEW AS calculated_results をすると、CalculatedResult クラスから普通に読める。 `id`問題(後述)は残るので view をさらに include で JOIN しようとすると落ちる `id`カラムがあるのを前提に t.id as t0_id とかいう SQL を発行するのでそんなカラムないよエラーになる。当然といえば当然。 そもそも view の identifier てなんなんだろうなぁ。 実利面だけを考えれば、全レコード NULL のカラムを用意すればよろし。 rake db:schema:dump では抜けない テス

    ActiveRecord で VIEW を使うときの注意点 - moroの日記
  • MacOS XとPDFの相性のよさ - moroの日記

    会社のひとにマカーがふえました。喜ばしいことです。 いまいちみんなの共感を得られませんけど、PDFとOS Xの相性の良さはスゲイです。AWDwR 2nd.をリファレンスのごとく使えます。とてもよいです。両方持ってる人は、Spotlight(ctrl + space*1。 一回 Preview.app で開くとその後はインクリメンタルサーチでさらに快適に。個人的には見た目のキレイな Unix というのに匹敵する嬉しさです>PDFとの相性。 *1:このキーバインドをとられるのはちょっと微妙ですけど)))でassert_selectと打って見るとその便利さが実感できるはず((初回はちょっと時間がかかっちゃうかも

    MacOS XとPDFの相性のよさ - moroの日記
    yugui
    yugui 2006/11/30
    おー、これは便利だ
  • 黄色信号の話 - moroの日記

    まずはこちらを。 http://idm.s9.xrea.com/ratio/2006/11/21/000549.html なんかすごくすっきりしました。Development を Drive するためのテストについてはすっかり同意。ぐぅの音もでないくらい。 あと、Rails勉強会で出た黄色の話をちょっと捕捉すると、開発時だけじゃなく、バグがあがってきたときなんかに、 「現在の仕様では動かないこととする、が、今後のエンハンス対象としてはコードで表現しておきたい」ってのはよくあるので、それを表現するステータスが欲しいね、というコンテキストも後半Test::Baseのときにあって、私自身、黄色の話はそのへんが両方混ざってるのかな、と。 開発時と保守のときでは興味の対象はちょっと違ってて、後者の場合は思いもよらないようなパターン含め、外から(ブラックボックステスト、ね)入力と出力を流し込んでやりた

    黄色信号の話 - moroの日記
    yugui
    yugui 2006/11/22
    なるほど > known bug ; あれかな、@sinceを宣言できるexpectationがあればいいのかな。
  • Rails勉強会@東京#12 - moroの日記

    いまTest::Baseが熱い Test::Base on Railsがかっこい。いま終わりました。 すげー未消化なメモですが。 テストコードとデータの(概念的な)分離 テストのパターンができるとデータをどんどん追加していける 定型的なテストを書くのによさげ filterがかなりいろいろ在る。 3A arrange act assert 頭(興味)が処理のときとデータのとき、というか開発をドライブしたいときと、すでにできたののバグ出しをしたい場合 RSpecはドライブするとき。 Test::Baseはいろんなパターンで繰り返したいとき。 SKIP more deep. KNOWN_BUG いまは通らないことがちゃんと判ってて、それは落ちるんだけどほっといてくれ。というケース。 でも通らないことがわかってはいようがなんだろうが全部走らせた結果ちゃんとグリーンだね、というのを assert し

    Rails勉強会@東京#12 - moroの日記
    yugui
    yugui 2006/11/20
    Rspecに対するTest::Baseのつかいどころ
  • Rails好きが見たSAWDwS2 - moroの日記

    昨日の続きでSC2006の観想です。レポートはきっと某 Yugui さんが書いてくださると思うので(ぉ、私は感想とかそこから考えたこととか。あとは前提というかエクスキューズですけど、私のスタンスは↓のような感じ。ようするに Rails 好きの Java 弱者です。 Ruby とか Rails ここ一年程、興味を持って追いかけてる。まぁそれなりに使えてはいるかと。 ぎりぎりで before Rails からの Rubyist 。Visualu Ruby と exerb と net/telnet で捨てプログラムを書いてた位が古い記憶。 なにより Ruby とか Rails が好き。こっちに肩入れてます。 Java とか Seasar とか J2SEの範囲なら。 なので model に落ちてから DB につないでほげる、とかならいちおう読み書きできる。 実用なフレームワークとかそれらの組合せで

    Rails好きが見たSAWDwS2 - moroの日記
  • moroの日記 - Railsでテストを書く勘所

    昨日はOSCに行ってきました。セミナーやブースはほとんど行かず、例によってRubyの会のあたりでだらだらしてたわけですが。 思いがけず師匠の師匠、id:t-wadaさんにもお会いできてびっくり。 で、そこでRailsとTDD(BDD)の話なんかしたので、一週間で思ったことをつらつらと。たぶん不正確というか、理解の足りないところもいろいろあるので、そのへんのツッコミをいただけると感謝です。 書いてたら長くなったのでagenda モデルのテストでは、とにかくロジックを書いたらテストを書く*1。def..endブロック(wを書いたら必ずテストもあるはず。 RailsのMVCコンポーネントの中では一番テストし易いので、そういう意味でもモデルを厚くすると幸せになりやすい。 コントローラのテストでは、基的にリクエストを受けてから表示対象のオブジェクトを導出するまでをテストしたい。 ビューのテストでは

    moroの日記 - Railsでテストを書く勘所
  • Rails.vimのチートシート - moroの日記

    rails.vimといえば、イントロダクションがこんな感じで始まる素敵なプラグインなわけですが、 TextMate may be the latest craze for developing Ruby on Rails applications, but Vim is forever. ということでPartial ExtractionとAbbrevitationがとても良いです。vimを使ってるRails開発者には必携のプラグインですね。 ただ、すごく便利に感じつつも運指がなかなか覚えられなかったので作ってみました。よろしければ御利用ください。 http://homepage3.nifty.com/moro/rails_vim_cheatsheet.pdf

    Rails.vimのチートシート - moroの日記
    yugui
    yugui 2006/10/20
  • MacでのLighttpdの自動起動(仕掛中) - moroの日記

    うまく動かないぃぃ。起動に自動的に実行されるコマンドやら何やらをsudoでトラブルシューティングしながらやっていくのは怖すぎる。 Mac OS Xでサービスを自動起動する方法 launchdを使う方法 どうもlaunchdと言う非常に賢いinitのようなものがあるらしいということで挑戦。下記のどちらかに設定ファイルを置くと起動してくれるらしい。 /Library/LaunchDeamons /System/Library/LaunchDeamons *1 設定ファイルは[launchd].plistというシリーズで、書式はみんな大好きXMLらしい。ウホッ。 StartupItemsを使う方法 ちょっと古い、とProfessional Mac OS Xに書いてあった。そういえばJaguarの頃に書いた記憶が。/Library/StartupItems/に 以下のような感じで、一式いれておくみ

    MacでのLighttpdの自動起動(仕掛中) - moroの日記
    yugui
    yugui 2006/10/11
  • ABDとRailsと。現状の理解。 - moroの日記

    ちょっと最近まじめにABDとRailsをいじっていて、いくつか気づいたことのメモ。今まで気づいてなかったのかよ、と突っ込まれそうなこともたくさんありますが。 ActivityとEventとResourceは鼎立するわけでなく、Activity:(Event:Resource)と言う分類。Activityは他に比べて特異なもの。 関連テーブル/交差エンティティの役割を果たすわけで当然ですが、Activityは一つの業務の塊の中で複数レコードできますよね。 一つの業務を見るときの入口はActivityじゃなくEventかも。 Railsでいえば、DBヘの書き込みは、イベントをsave!したうえで、has_manyの:throughな交差エンティティ(Activity)を必要な個数分save!する、というのをAR::Base.transaction{}の中でやればOK。 もちろん毎回書くの繁雑な

    ABDとRailsと。現状の理解。 - moroの日記
    yugui
    yugui 2006/10/11
  • M+フォント - moroの日記

    Macに乗り換えてからの数少ない不満がターミナルでのフォントが決まらないこと。これまでは6年ほどM+フォントのビットマップのを使ってたんですが、Terminal.appじゃあ使えないみたいなんですよね。 で、さすがに毎回mltermを起動するのもめんどくさいし、IPAフォントとの合成フォントもイマイチ決まらないなぁと思ってOsakaを使ってました。 で、昨日M+フォント家のバイナリを入れてthinを使ってみたらこれがいい感じ。アンチエイリアスをかけてもあまりうるさくならないのがいい。 画像は14pt (thin) にアンチエイリアスをかけたもの。一週間くらい使ってみようとおもいます。

    M+フォント - moroの日記
    yugui
    yugui 2006/10/08
  • 結婚式当日 - moroの日記

    みなさま、お久しぶりです。 ずいぶんとこの日記も書いていなかったんですが、それも今日この日の結婚式の準備がいろいろあったのが大きかったです。 でかい生い立ちを作ったりとか。これはガチで。 ということでようやっとこの日を迎え、いまから結婚式を挙げてきます。 天気がすごく気になる所ではありますが、いまのところはまだ雨が降っていないので、これが続くのを祈ってます。 gdgdな文ですが、これまでいろいろなところで支え、成長させてくださった周囲のみなさま一人一人に感謝の気持ちでいっぱいです。今後ともどうぞよろしくお願いいたします。 では行ってきます。

    結婚式当日 - moroの日記
    yugui
    yugui 2006/09/18
    おぉ。