From: ts Date: 2002-09-20T02:15:25+09:00 Subject: Re: alias/method redfinition >>>>> "a" == ara howard writes: a> m = Module.new a> m.module_eval %q{ You use #eval which is evil module M def [] idx if @fields and idx.type == String pos = @fieldpos[idx] return nil unless pos self[pos] else super end end def []= idx, value if @fields and idx.type == String pos = @fieldpos[idx] if not pos pos = size @fieldpos[idx] = pos end self[pos] = value else super end end end class Array def fields=(*fields) extend M unless @fields @fields = fields.flatten @fieldpos = Hash.new @fields.each_with_index {|f,i| @fieldpos[f] = i} end attr_reader :fields attr_reader :fieldpos end Guy Decoux