[#40551] Net::IMAPで既に存在するディレクトリが削除できない — 内木場 美次 <uchikoba@...>

お疲れ様です。内木場です。

13 messages 2005/01/21

[#40580] enum 定数する場合のイディオム — Hiroshi Takagi <gollum@...>

高木@関西のネットワーク屋%Ruby novice monk です。

12 messages 2005/01/27

[ruby-list:40589] Re: enum 定数する場合のイディオム

From: michiaki baba <babie7a0@...>
Date: 2005-01-27 11:06:45 UTC
List: ruby-list #40589
馬場と申します。
勉強会@関西ではお世話になりました。


ぐは、終わりかけている。

私は仕事でタブ区切りファイルを処理することが多いです。
お客さまからもらったファイルを1行ずつsplitして処理する
わけですが、もらうまで正式なフォーマットがわからなく、
予想でインデックス用定数を振ってプログラムを作るので、
enum のように変更が容易になる記法があったら嬉しいです。

私は enum の順に番号を振ってくれる機能がうらやましいの
ですが、他の方でこういう用途を欲している人がいないよう
なので、何か根本的にやり方が間違っているような気がしな
いでもありません。

今まで何の工夫もせずに腕力で定数を書いていたので、ちょ
っと反省して、以下のようなものを書いてみました。
------------------------------------------------------
#!/usr/bin/env ruby

def enum_const_set ary, start = 0, step = 1
   ary.each_index do |i|
      const_set ary[i], start + (i * step)
   end
end

class Tmp1
   enum_const_set %w(First Second Third)
end
class Tmp2
   enum_const_set [:First, :Third, :Fifth], 1, 2
end

if __FILE__ == $0
   puts "(1)", Tmp1::First, Tmp1::Second, Tmp1::Third
   puts "(2)", Tmp2::First, Tmp2::Third, Tmp2::Fifth
end
------------------------------------------------------
モジュールにして置けばそこそこ使えるかな?

もっと良い方法ありません?



In This Thread