数年に渡ってメンテナンスされているようなRailsアプリケーションの config/routesは、 徐々にスパゲッティ化していく傾向があるように思えます。 ということで、今回は、 コントローラごとにRoutesをまとめて綺麗に記述する方法を紹介します。

方法は簡単です。with_optionsを使って、 prefixオプションを指定するようにします。

   1  map.with_options(:controller => 'posts',
   2      :name_prefix => 'posts_',
   3      :path_prefix => 'posts') do |posts|
   4    # posts_rss_path => 'posts/rss'
   5    posts.rss 'rss', :action => 'rss'
   6  end

しかし、全部のControllerにこれを書くのは面倒かもしれません。 ということで、プラグインを作りました。

このプラグインを使えば、以下のようにRoutesを書くことができます。

   1  map.with_controller('posts') do |posts|
   2    posts.rss # posts_rss_path => 'posts/rss'
   3  end

map.namespace(:posts)を使うと似たようなことができるのですが、 これは名前空間の作成に特化されているので、 今回の目的のために使用すると、若干思わしくない挙動をするようです。

posted by Png genki on Fri 14 Mar 2008 at 22:37

Rubyから外部プログラムを呼び出して、 パイプを使ったプロセス間通信をする方法の紹介です。

Rubyから外部のプログラムを起動して、標準入力からデータを入力し、 標準出力から結果を取り出したいという場合には、 IO.popenを使うと便利です。使い方は以下のとおり。

   1  IO.popen('/usr/bin/command', 'r+') do |io|
   2    io.puts "something to input"
   3    @result = io.gets
   4  end

See Also

posted by Png genki on Fri 14 Mar 2008 at 18:38

プログラミングのスピードを上げる方法

天才の成せなる技とは思わずに、

  1. 努力しないでいいように
  2. 論理的に考えなくてもいいように
  3. 頭を使わないでもいいように

最初からそう組み上げていく。

頭を使うプログラミングと、頭を使わないプログラミングは、 同じプログラミングでも本質的に違うものなのではないかと思う。 IMHOだけど、頭を使わなくてもいいプログラムを書き続けることは、 将来的に自分の可能性を狭めることになるんじゃないだろうか。 組み上げるほうに時間を使う、という話なのであれば納得だけど。

僕自身に関していえば、 コードを書いている時間よりも、頭を使ってる時間のほうが何倍も長いです。 一日100行もコードを書かないこともありますが、 そういう日のほうが仕事をした感じがします。 キーボードに向かってコードを書いているときは、 あまり仕事をした気がしないかも。 脳内で出来上がったものを書き下ろしてるだけだからね。

傍目にはぼんやりしてるように見えるとき、一番仕事をしていると思う。

See Also

posted by Png genki on Fri 14 Mar 2008 at 04:43

むしろ今までついていなかったのが問題ですが(今ではS3Foxを使っていた)、 ファイル形式を自動認識するファイルアップロード機能をつけました。 画像の場合、サイズに応じて自動的にサムネイル画像を作成します。

P1120681.JPG

posted by Png genki on Fri 14 Mar 2008 at 03:42
Contents
コントローラ毎にRoutesをまとめて(綺麗に)書く方法
Rubyから外部プログラムを呼び出す方法
頭を使わないプログラミング?
ファイル・画像を自動認識してアップロードする機能
Comments
瀧内元気: MacOS版は以下にあります * [genki/ViMouse](https://githu... '23-1
dsjf: https://gist.github.com/6bf1bf2c3cbb5eb6e7a7 これ... '13-1
瀧内元気: おお、チェックしてみます。thx! '11-12
overisland: Reeder for iPhone もこの UI を実装していますね。 '11-12
瀧内元気: その情報は見たのですが、以下のサイトによると、現在はまた必要になってるっぽいんですよね。 ... '11-12
Services from s21g
twpro(ツイプロ)
Twitterプロフィールを快適検索
地価2009
土地の値段を調べてみよう
MyRestaurant
自分だけのレストラン手帳
Formula
ブログに数式を埋め込める数式コミュニティ