class Array alias_method :orig_flatten, :flatten def flatten level=nil if level.is_a?(Integer) temp_arr = clone level.times{ |i| temp_arr = temp_arr.inject([]){|s,v| v.is_a?(Array) ? s.concat(v) : s << v} } temp_arr else orig_flatten end end end
of course although untested i'm sure it will have worse performance than the original flatten in ruby 1.9.2, but better than nothing right? ;)
Tidak ada komentar:
Posting Komentar