2007-06-27
■ [ruby] Re:nihaaaaaaaa - split
もしも String#/ がsplitだったら…という話。
s/=/-/
これはキモいw
String#splitに渡すのってたいてい正規表現なんで、「/」が並びまくるという問題はありますな。
words = line / /\t/ words = line / / /
ううむ…。
words = line / (/ /)
括弧つけてもこれはこれでキモいな。
■ [ruby] evalは最後の手段
http://labs.unoh.net/2007/06/railseval.html
うーん、便利だからという理由だけでevalを使うのはあまりおすすめできません。 たとえ自分の足を撃つ危険性を覚悟していても、吹っ飛ぶのが足だけで済まないのがevalなので…。
「文字列からクラスを取得したい」という場合は、Module#const_get というメソッドが使えます。
const_get(name)
モジュールに定義されている name で指定される名前の定数の値を取り出します。定数が定義されていない時には例外 NameError が発生します。 name は Symbol か文字列で指定します。
[http://www.ruby-lang.org/ja/man/?cmd=view;name=Module;em=const_getより引用]
使い方は簡単で、eval k を const_get k に変えるだけでOK(のはず)。
def get_class k = self.class.to_s.gsub(/Test$/, '') const_get k end
evalだと任意のRubyコードが実行できてしまうのに対し、 const_getは定数を取得するだけなので変な入力を与えても(比較的)安心です。
■ [Pragger][memo] PraggerがPlaggerを越えるためには
注) 殴り書きのメモです。
(1) YAMLを捨てる
もしも「初心者にやさしい」という方向を目指すなら、YAMLを捨てて Ruby + DSL に移行すべきだと思う。 インデントベースだとコピペしたら動かなくなった〜とかいろいろありそう。
ただ再利用はYAMLの方が圧倒的に楽。
(2) プラグインの引数に関する(機械可読な)ドキュメントを義務づける
将来Yahoo! PipesみたいなGUIを付けるときに、引数の情報があるのとないのとでだいぶ違うと思う。 プラグインの数が少ない今のうちがチャンスだぜきっと。
(3) フィード以外に活用方法を見つける
Plaggerはフィードを扱うことに特化することでプラグインをうまく組み合わせるようにしてるけど、 Praggerは特に制限がない(っぽい)。 けど現状、フィード以外の便利な用途ってあまり聞かないので、このへんを見つければ面白くなりそう。
というか、公式サイトを見ただけでは
- RubyによるPlaggerの代替を目指すのか
- フィード以外の汎用的なデータを扱う何かにするのか
- 単に作ってみただけで今後のことはあまり考えてないのか
という辺りの「どっちに行きたいのか」が全然分からんので、もうちょっと語ってほしいな。
(4) とりあえずEFT相当の何かが欲しい
ほしいです。てか、作りたいんだけど、Praggerあんまり使ってないからやる気が出なくて、EFT相当の何かができたら使おうと思っている(というデッドロック)。 誰かEFTかやる気かを俺にください。