私が使用したい問題のメソッドはgem
、ここから入手できます (17 ~ 42 行目): https://github.com/rails/rails/blob/master/railties/lib/rails/generators/actions.rb
ご覧のとおり、name
は 19 行目で最初の arg にmessage
割り当てられ、次に 23 行目で に割り当てられname
、最後にmessage
26 行目で<<
. 残念ながら、これは、最初の引数として渡す文字列がメソッドの外で変更されていることを意味します。
私は配列のハッシュを持っており、次のようにそれらを繰り返し処理しています:
groups = { foo: %w(foo, bar), bar: %w(foobar) }
groups.each do |group, gems|
gems.each do |name|
gem(name, "42")
end
end
その後、内部の突然変異により、ハッシュは次のようになりgem
ます。
groups => { foo: ["foo (42)", "bar (42)"], bar: ["foobar (42)"] }
メソッドを壊すことなく、これらの文字列 (およびハッシュとその配列) が変更されるのを防ぐにはどうすればよいですか?