From: rubikitch <rubikitch / ruby-lang.org>
Subject: [ruby-list:40788] Re: nil以外のときメソッドを呼ぶ
Date: Wed, 27 Apr 2005 14:25:38 +0900

> splitされたそれぞれの文字列において、
> CONVERTERで指定したメソッドを順次呼出します。

strip_XXもクラスに閉じ込められるのでこっちの方がいいかな。

class TextData < Struct.new(:float, :int, :str)
  CONVERTER = [:Float, :Integer, :strip_XX]
  def self.[](input)
    obj = new
    input.chomp.split(/\t/).each_with_index do |x, i|
      obj[i] = (x && __send__(CONVERTER[i],x))
    end
    obj
  end

  def self.strip_XX(s)
    s.sub(/^XX/, '')
  end

end

p TextData[ "1\t2\t3" ]
p TextData[ "1.0\t2\t"]
p TextData[ "1\t2\tXXfoo" ]

るびきち☆
http://www.rubyist.net/~rubikitch/ ←Ruby大衆化計画@移転