Есть ли способ сделать это?вместо:
links.each do |link| link.color "red" end
сделать итератор (между | |) неявным, вот так:
links.each do color "red" end
Я не уверен, что в данном случае это стоит усилий (и это добавляет ненужную сложность), но приятно знать, что вы можете сделать что-то вроде следующего:
proc = Proc.new { |i| i.color 'red' } links.map(&proc)
Я почти уверен, что это невозможно. Однако вы можете instance_eval каждый элемент, но Я, конечно, не рекомендую его без веской причины
foo = ["test","test2","foo","bar","foobar"] foo.each do |f| f.instance_eval do p reverse end end