[#40753] RWiki is not WikiName - RWiki 2.1.0pre1 — Masatoshi SEKI <m_seki@...>
6 messages
2005/04/03
[#40785] nil以外のときメソッドを呼ぶ — Motomichi Matsuzaki <mzaki@...>
13 messages
2005/04/27
[ruby-list:40788] Re: nil以外のときメソッドを呼ぶ
From:
rubikitch <rubikitch@...>
Date:
2005-04-27 05:25:38 UTC
List:
ruby-list #40788
From: Motomichi Matsuzaki <mzaki@e-mail.ne.jp>
Subject: [ruby-list:40785] nil以外のときメソッドを呼ぶ
Date: Wed, 27 Apr 2005 13:43:03 +0900
るびきちです。
> タブ区切りテキストで与えられるデータを解釈しようとしているのですが、
> フィールドの数が不定の場合、
>
> 例:
> array = line.chomp.split("\t")
> float = array.shift.to_f
> int = array.shift.to_i
> str = array.shift.sub(/^XX/, '')
僕なら構造体をを派生させたクラスを作成します。
とはいえ、最大フィールド数が決まってる場合だけですが。
splitされたそれぞれの文字列において、
CONVERTERで指定したメソッドを順次呼出します。
class String
def strip_XX
sub(/^XX/, '')
end
end
class TextData < Struct.new(:float, :int, :str)
CONVERTER = [:to_f, :to_i, :strip_XX]
def self.[](input)
obj = new
input.chomp.split(/\t/).each_with_index do |x, i|
obj[i] = (x && x.__send__(CONVERTER[i]))
end
obj
end
end
p TextData[ "1\t2\t3" ]
p TextData[ "1.0\t2\t"]
p TextData[ "1\t2\tXXfoo" ]
るびきち☆
http://www.rubyist.net/~rubikitch/ ←Ruby大衆化計画@移転