instance_execはinstance_evalと似てますがちょっと違う子です。
> "hoge".instance_eval{ self[0] } => "h" > "hoge".instance_exec{ self[0] } => "h"
と、これだとinstance_evalと何が違うの?
という感じですが...この子は引数を持つ事ができます
> "hoge".instance_exec(3){ |e| self[e] } => "e" > "hoge".instance_exec(0){ |e| self[e] } => "h"
当然、classにもmoduleにもあります。