「merbish(仮)」をpushしました

Apr 23, 2011 From: ronnie@d...

松田です。

大江戸Ruby会議で「成果を出す」とかなんとかさんざん煽っといて自分がぜんぜんasakusarbのほうにpushできてなかったのがわりと心苦しかったんですが、
そんな中、昨晩思いついた新プロダクトを先ほどひとつpushしてみました。

https://github.com/asakusarb/merbish

名称: merbish(仮)
動作環境: Ruby 1.9.2以上 + Rails 3.0以上
概要: Rails 3のコントローラーが超かっこよくなります。
サンプルコード(抜粋):

class UsersController < ApplicationController

 ...
 # GET /users/1
 def show(id)
   @user = User.find(id)
 end
 ...
 # POST /users
 def create(user)
   @user = User.new(user)
   if @user.save
     redirect_to @user, :notice => 'User was successfully created.'
   else
     render :action => 'new'
   end
 end
 # PUT /users/1
 def update(id, user)
   @user = User.find(id)
   if @user.update_attributes(user)
     redirect_to @user, :notice => 'User was successfully updated.'
   else
     render :action => 'edit'
   end
 end
 ...

end

とまぁこんな感じでコントローラーのアクションメソッドに変数を渡せるようになります。
で、何が嬉しいのかというと例えば以下のようなところでしょうか。

入力が明示されることで可読性が大幅up

アクションのロジック内でparamsという謎のグローバル的な変数を参照しなくなる

よって、アクションメソッドの単体テストが書きやすくなるかも

このプロダクトのAsakusa.rb的な意義としては、

あのmethoparaをフル活用!

待望の「Ruby 1.9でしか動かないRails向けライブラリ」!

といったところですね。

ご興味のある方は是非お試しいただければ幸いです。
以下使用方法。

1. Gemfileに以下の行を追加してbundle
gem 'merbish', :git => 'git://github.com/asakusarb/merbish'{{br}}

2. ふつうにscaffold generatorを実行

3. Ruby 1.9でサーバーを起動

なお、名前が気にくわないので、まだgemにはしてません。
それでは、フィードバックお待ちしてます。
enjoy!


Akira Matsuda<ronnie@d...>

Apr 23, 2011 From: shintaro.kakutani@g...

なにこれかっこいい。
名前… argumented_controller とか。
厨二っぽいけど。いちおう駄洒落のつもり。

On Saturday, April 23, 2011, Akira Matsuda <ronnie@d...> wrote:

松田です。

大江戸Ruby会議で「成果を出す」とかなんとかさんざん煽っといて自分がぜんぜんasakusarbのほうにpushできてなかったのがわりと心苦しかったんですが、 そんな中、昨晩思いついた新プロダクトを先ほどひとつpushしてみました。

https://github.com/asakusarb/merbish

名称: merbish(仮) 動作環境: Ruby 1.9.2以上 + Rails 3.0以上 概要: Rails 3のコントローラーが超かっこよくなります。 サンプルコード(抜粋):

class UsersController < ApplicationController ...

def show(id) @user = User.find(id) end ...

def create(user) @user = User.new(user)

if @user.save redirect_to @user, :notice => 'User was successfully created.' else render :action => 'new' end end

def update(id, user) @user = User.find(id)

if @user.update_attributes(user) redirect_to @user, :notice => 'User was successfully updated.' else render :action => 'edit' end end ... end

とまぁこんな感じでコントローラーのアクションメソッドに変数を渡せるようになります。 で、何が嬉しいのかというと例えば以下のようなところでしょうか。

入力が明示されることで可読性が大幅up

アクションのロジック内でparamsという謎のグローバル的な変数を参照しなくなる

よって、アクションメソッドの単体テストが書きやすくなるかも

このプロダクトのAsakusa.rb的な意義としては、

あのmethoparaをフル活用!

待望の「Ruby 1.9でしか動かないRails向けライブラリ」!

といったところですね。

ご興味のある方は是非お試しいただければ幸いです。 以下使用方法。

1. Gemfileに以下の行を追加してbundle gem 'merbish', :git => 'git://github.com/asakusarb/merbish'

2. ふつうにscaffold generatorを実行

3. Ruby 1.9でサーバーを起動

なお、名前が気にくわないので、まだgemにはしてません。 それでは、フィードバックお待ちしてます。 enjoy!

  • -

Akira Matsuda<ronnie@d...>

  • -

archive-> http://qwik.jp/asakusarb/169.html ML-> asakusarb@q...


Kakutani Shintaro

Apr 23, 2011 From: ronnie@d...

2011/4/23 Kakutani Shintaro <shintaro.kakutani@g...>:

なにこれかっこいい。 名前… argumented_controller とか。 厨二っぽいけど。いちおう駄洒落のつもり。

ありがとうございます。
ただ、名前ですが、よく考えてみれば、何か意味のある名前をつけるんであれば
ベタに rails-action-args しかない気がしてきました・・・。
どう考えても一緒だもんなぁ。
じゃなければKaminari系の何か無意味な名前にするのもアリかとは思いますが。

ちなみに、先のメールではちょっと急いでたもんで書き漏れてましたが、
新しめのメンバーの皆さんのためにもうちょっと補足しておくと、
「あのmethopara」とはこれのことです。

http://wota.jp/ac/?date=20090210

懐かしのAsakusa.rbプロダクツ第1弾。
もう2年以上も前だったんですね。


Akira Matsuda<ronnie@d...>

Last modified: 2011-04-23 Attached files total: 3MB