投票箱続報
駄目ボートなどと駄目な名前をつけたまま放置してしまった。一応本当に作っているんだということを示すためにソースを一部晒してみる。しかし肝心の投票機能は手付かずなのだがどうしたものか。
時に、ソースを晒すのが恥ずかしいという話を聞く。私もそうだ。何が恥ずかしいかと言えば、構成とかセンスとか以前に、変数名やメソッド名に使用した英単語が果たして適切かどうか、まったく自信がないのだ。構成が非効率だったり言語特性に合っていない程度の不備はどうでも良い。わざわざ見てくれた識者の添削意欲を刺激する点で、晒す側としてはむしろ好都合とすら言える。
しかし不適切な英単語というシンプルな問題は、爆笑されるか冷笑されるか互いに居た堪れなくなるかのいずれかであり、とても切ないソースの病理なのである。お、お前いまおれのソース見て笑ったろ。確かに聞こえたぞ。ああいいさ。いいともさ。笑いたければ笑うがいい。あはははは。あはははは。うわーん。病気か。
もはやソースを晒したる者、ガイジンの変な日本語タトゥーを見て笑っていられる立場ではない。ちなみに私がコードを書く際にいっとう時間を食うのがクラス、変数、メソッドその他もろもろの命名である。かけた時間に見合う成果が上がっていないのが惜しまれる。
英語が苦手なプログラマの方、mixi あたりでコミュ立てて語り合いませんか。もっとも私は英語以前に人付き合いが大変苦手なのでコミュで語り合うとか絶対無理ですが。いや無理。もう無理。マジで無理。会話が四往復超えると面倒臭い指数が非線形に急上昇してもう処理し切れません。駄目でごめんなさい。構われたがりのくせに構われると疲れるんです。病気だ病気。わーい。
そんな駄目告白は置いておいて、今回晒すのは Vote クラス。今のところユーザ認証絡みの画面遷移しか実装されていない。
class Vote def initialize(cgi, session) @cgi = cgi @session = session @auth = Auth.new(session) end def run action = @cgi['action'].to_s if action.size > 0 send(action) else TopPage.new(@cgi, @auth).show end end def method_missing(name, *args) @cgi.redirect(BASE_URL) end def login return @cgi.redirect(BASE_URL) unless @cgi.referer vote_email = @cgi['vote_email'].to_s vote_pass = @cgi['vote_pass'].to_s begin @auth.login(vote_email, vote_pass) @cgi.redirect(@cgi.referer) rescue => e info = Information.new(@cgi, @auth) info.message = e.message info.show end end def logout @auth.logout @cgi.redirect(@cgi.referer) end def edituser return @cgi.redirect(BASE_URL) unless @cgi.referer return @cgi.redirect(BASE_URL) unless @auth.logon? edit = EditUser.new(@cgi, @auth, @session) edit.error = @session['edituser_error'] if @session['edituser_error'].to_s.size > 0 edit.show @session['edituser_error'] = nil end def edituser_execute return @cgi.redirect(BASE_URL) unless @cgi.referer name = @cgi['edituser_name'].to_s pass1 = @cgi['edituser_pass1'].to_s pass2 = @cgi['edituser_pass2'].to_s begin @session['edituser_name'] = name EditUser.new(@cgi, @auth, @session).execute(name, pass1, pass2) @session['edituser_name'] = nil return @cgi.redirect(BASE_URL) rescue => e @session['edituser_error'] = e.message return @cgi.redirect(BASE_URL + '?action=edituser') end end def register return @cgi.redirect(BASE_URL) unless @cgi.referer if @auth.logon? @cgi.redirect(BASE_URL + '?action=edituser') else reg = Register.new(@cgi, @auth) reg.error = @session['register_error'] if @session['register_error'].to_s.size > 0 reg.show @session['register_error'] = nil end end def register_confirm return @cgi.redirect(BASE_URL) unless @cgi.referer vote_email = @cgi['vote_email'].to_s begin reg = Register.new(@cgi, @auth) reg.confirm(vote_email) reg.show rescue => e @session['register_error'] = e.message @cgi.redirect(@cgi.referer) end end def register_execute return @cgi.redirect(BASE_URL) unless @cgi.referer reg = Register.new(@cgi, @auth) vote_email = @cgi['vote_email'].to_s reg.execute(vote_email) reg.show end end
さて解説するわけでもなし私はこんなものを晒して何をしたかったのだろう。疲れているのかもしれない。
- アーティスト: t.A.T.u.
- 出版社/メーカー: ユニバーサルミュージック
- 発売日: 2003/03/19
- メディア: CD
- クリック: 39回
- この商品を含むブログ (36件) を見る