Hiki on Rack 2

Posted by okkez Fri, 22 Aug 2008 03:04:00 GMT

続き。

とりあえず、ページを編集できるところまで確認。 作業手順をまとめると以下のような感じ。

  • hiki.ru を用意する。
  • hiki.rb を用意する。
    • Hiki::App クラスを作って call メソッドを定義する
  • @cgi を使っている部分を全て @request に変更する
  • params[‘hoge’][0] を全て params[‘hoge’] に変更する
  • ENV を使用している部分を @request.env に変更する
  • クッキーを使用している部分を修正する
    • セッションキーだけなので簡単
  • print している部分を Rack::Response 的なものを返すように変更
    • [ヘッダー,ステータス,ボディ] な配列で OK
    • 面倒なのでヘッダーとボディだけ返してステータスは常に 200 にしといた
  • Rack::Lint によるとヘッダーに Status を入れてはいけないらしいのでそれを入れてる部分を削除
  • その他こまごまとした修正が必要。
    • CGI に依存している部分とか、ロードパスとか。

まとめ

頑張ればできる。

いや、でも Hiki のソースも意外とひどいというのがわかった。統一感がないというかカオス一歩手前というか。

Posted in | コメントはありません |

Hiki on Rack

Posted by okkez Thu, 21 Aug 2008 15:34:00 GMT

Hiki - Hiki -Front Page-Rack: a Ruby Webserver Interface に載せる実験中。

概ねうまく行きそうな感じだけど、セッションまわりに苦戦中。あと、たぶんプラグインを全部修正しないといけないのが辛いかもしれない。

ちゃんと出来たら公開する予定。

Posted in | コメントはありません |

第29回 Ruby/Rails勉強会@関西

Posted by okkez Tue, 19 Aug 2008 05:31:00 GMT

行ってきました。

ちょっと睡眠不足気味だったので各セッションの記憶はあまりなかったりします。

なので今回は行ったという記録のみ残しておきます。

Posted in | コメントはありません |

RSpec で transaction のテスト

Posted by okkez Sun, 03 Aug 2008 15:36:00 GMT

Yuya さんのヒントをもとにしてこんな風にしてみました。

sqlite3? は spec_helper に定義した。ヘルパーメソッド。 SQLite3 だとトランザクションの入れ子が出来なかった(例外が発生する)のでこうしてます。

一応 shouldnotreceive で特定の処理から先には進んでないことは確認しているし、 エラーメッセージも確認しているのでこれでテストとしては良さそう。

あとは、実装コードの最初の方で呼んでる処理をモック化すればいいと思う。

これをモック化すると、通しのテストはどうすればいいのだろう、というのが今の疑問。

describe BatchController do describe "POST create" do describe "by login user" do describe "when posted data was invalid (subject)" do before do Question.should_not_receive(:create!) Choice.should_not_receive(:create!) unless sqlite3? ActiveRecord::Base.connection.should_receive(:rollback_db_transaction) end end before do login_as :quentin post :create, :batch => { :body => INVALID_DATA_WITHOUT_TITLE } end it "should have error message" do flash[:error].should == invalid data. end it "should redirect to ‘subject/index’" do response.should redirect_to(subjects_path) end end end end end

Posted in , | コメントはありません |

アンケートのデータ修正しました

Posted by okkez Fri, 01 Aug 2008 03:46:00 GMT

http://q.okkez.net/ の第 28 回 Ruby/Rails 勉強会のアンケートで選択肢が英語になっていたデータを修正しました。

簡単なスクリプトを書いて script/console にコピペして実行した。 ちょっと複雑な修正なら SQL 書くより早いしわかりやすいね。

一部のデータがおかしくなってしまったのは SQL 書いて修正しましたけど。。。

多分、原因は私が使ってる Iceweasel に日本語言語パックをインストールしていなかったためだと思います。 次に同じようなミスがあった場合はすぐに修正できそうです。 r

Posted in , | コメントはありません |

Rack 使ってみた

Posted by okkez Wed, 30 Jul 2008 14:37:00 GMT

諸事情で web アプリを Rails を不使用で書く必要があったので cgi.rb の代わりに Rack を使ってみた。

主に上記を参考にして書いた。

ソースコードは整理して色々名前とか変えたら公開できるかもしれない。

感想

意外と短い行数で書けてびっくりした。 Rails の劣化版くらいなら一日くらいででっちあげられそうな感じ。

Posted in , | コメントはありません |

第 28 回 Ruby/Rails 勉強会

Posted by okkez Sun, 27 Jul 2008 07:23:00 GMT

日本Rubyの会 公式Wiki - 第28回 Ruby/Rails勉強会@関西

行ってきました。

エラトステネスの嵐—Rubyの集合演算を活用する by こなみさん

いろいろやってたらあまり聞けなかった。残念。

git - 分散バージョン管理システム by 舘野祐一さん a.k. id:secondlife

かわいいよ git かわいいよ。

今、作ってる某課題の管理はこれでやってみようかなぁ。

git-svn の使い方とか調べたい。

Ruby 初級者向けレッスン 第 22 回 by okkez さん

今回は irb について。

演習の後半は irb 関係ない感じでいきました。

演習の解答例は wiki にアップしたのでそちらを参照してください。

とりあえず、うちの ~/.irbrc です。refe2 のところはあまりうまく動かない。 まともに実装しようとすると bitclust を require してごにょごにょする必要があったりなかったりする。

#!/usr/bin/ruby # ri を使えるようにする # 例. # irb> String.ri # irb> ri String # same as above # irb> String.ri ‘reverse’ # irb> ri ‘File.new’ def ri(*args) puts `ri #{args.join( )}` end class Module def ri(meth=nil) if meth if instance_methods(false).include? meth.to_s puts `ri #{self}##{meth}` else super end else puts `ri #{self}` end end end # refe2 も使えるように module Kernel def r(*args) puts `refe2 #{args.join( )}` end private :r end class Module def r(meth = nil) if meth if instance_methods(false).include? meth.to_s puts `refe2 #{self}##{meth}` else super end else puts `refe2 #{self}` end end end IRB.conf[:EVAL_HISTORY] = 1000 # タブ補完を有効にする require irb/completion # simple prompt IRB.conf[:PROMPT_MODE] = :SIMPLE # ヒストリーを有効にする require irb/ext/save-history IRB.conf[:SAVE_HISTORY] = 1000 IRB.conf[:HISTORY_FILE] = "#{ENV[HOME]}/.irb-save-history" # サブ irb の設定 IRB.conf[:IRB_RC] = lambda{|_| IRB.conf[:IRB_RC] = lambda{|conf| conf.prompt_mode = :DEFAULT } } require pp require yaml

Posted in | コメントはありません |

RubyKaigi2008 extra

Posted by okkez Sun, 29 Jun 2008 13:23:00 GMT

http://i.loveruby.net/d/20080629.html

青木さんが大変な中、発表してくれたのにそんな裏側があったなんて。 外野の戯れ言には負けてられないので、頑張る。

来年はもっとよいリファレンスマニュアルにしてやるぞ。

Posted in | コメントはありません |

KansaiWorkshop#27

Posted by okkez Sat, 28 Jun 2008 14:02:00 GMT

行ってきた。@京都女子大学

関数型言語 Ruby by keisuken さん

最初ネットワークに全くつながらなくて、ust 配信に失敗してた。 なので、内容の方があまり聞けなかった。

途中から真剣に聞いたけど、わかりやすい説明で非常によかった。

日本 Ruby 会議 2008 参加報告 by いまいさん

Matz のバランスボール写真が素敵だった。多分次のるびまの著者近影はアレになると予想。

あと、あゆさんの営業活動が素晴らしかった。

Ruby 初級者向けレッスン 第 21 回 by okkez さん

オブジェクト指向。

ポリモルフィズムの説明のところが、やっぱり引っかかった。

初級者レッスンに対するアンケートの回答は全部読んでいるので、次回以降改善されるかもしれません。

オープンソースとビジネスの実際 by かずひこさん

京都大学でも聞いたのであとで書く。

Posted in | コメントはありません |

RubyKaigi2008 2nd day

Posted by okkez Mon, 23 Jun 2008 06:28:00 GMT

2日目。

午前 1

arton さんの発表は arton さんが普通にマイペース過ぎておもしろかった。 typo に気付かない arton さんが素敵。「うしろー、うしろー!」

Ruby で出来たアプリケーションを活用してお仕事するお話。 去年と同じかなぁーって思っていたら、さらに参考になる話だったのでいい意味で期待を裏切られた感じ。 使ってるツール自体は、自分も使ったことのあるものだったのでわかりやすかった。

IRC で調子に乗りすぎて反省。 これも、去年と似てるのかなぁと思ったらそうでもなかった。 今後の erb に期待。

午前 2

matz を説得する方法は、一般的に応用が出来そうだと思った。 自分のしたいことを正しく相手に伝える必要があるのだと思った。

るりま。青木さんのセッション。 コミット数ランキング 2 位。いつか追いつきたいけど多分無理。 そんなにたくさん文章を書いているわけでもないのですが、今後は細かいフォーマットのチェックとかバージョン間の 動作の違いとかに気をつけて書着たいです。 あと、るりまを書く人向けの用語集は整備した方が、今後参加する人は書きやすいのかしら?

MacRuby の話。 デモがよかった。あと、自分は mac 持ってないけど、試してみたくなった。

午後 1

REST。Ruby と REST は相性がよい。 、 大場さんがボケで高井さんがボケでした。 アドリブが多かったらしく、大変そうでした。 Ruby でやったプロジェクトの FP 計測結果には興味があるのだけど、企業秘密らしく公開してもらえなかった。 いつかそんな情報が気軽に共有出来るようになったらいいなと思いました。

午後 2

iKnow! の舞台裏。 スケールさせるのが大変なのがよくわかった。あと OpenID のせいで天然 DDoS されて困った話とか。

食べログ。 おいしいポジションにいる人の話。 大規模サイトでいかにしてスケールさせたかと言う話。 食べログでは、ハイスペックサーバを少数精鋭で運用するポリシーらしい。 ここも、MySQLを使っていた。

携帯プラグインの話。 携帯向けサービスは面倒なのがわかっていたので避けていたけど、やっぱり面倒だと再認識した。

午後3

どのセッションもあまり聞かずに、企業ブースめぐりなど。 多目的ホールで、セッションやってるときにブースを回るのが困難であることがわかった。

Closing

今年の総括など。 いつか Regional RubyKaigi が行われるらしい。

RejectKaigi and Reject RejectKaigi

RejectKaigi と Reject RejectKaigi の場所が近すぎでわけわからないことになっていた。 正直、 Reject RejectKaigi は要らないと思った。

かくたにさんの RegionalRubyKaigi の話は詳しく聞きたかった。いつかどこかに詳細が公開されるのを期待して待つことにしよう。

まとめ

始まる前は、「メインセッションが去年と同じだなぁ」と思っていたけど、実際はそんなこと無くてパワーアップしていた。 結局、ほとんどサブセッションは見てなくて、メインホールに張り付いてた感じ。ブースもほとんど手伝わなくて、ちょっと申し訳なかった。 ust 中継は文句言っている人がいたけど個人的には良かったと思う。 IRC は翻訳用と、ツッコミ用は分かれてた方がいいのではないかと思った。

最後に、写真のことでちょっと心配なことがあったけど撮った人の良心に期待する。

知らない人の写真を撮った人は、その人がweb上に公開される事を本当に迷惑だと思っていないかというのをもう一度よく考えてから公開してほしいと思います。

Posted in | コメントはありません |

Older posts: 1 2 3 4 5