    public void prepare(ThreadContext context, Ruby runtime, IRubyObject self<%= n_args_in(arity) %>, Block block) {
        DynamicScope scope = context.getCurrentScope();

        if (isSimple) {
            scope.setArgValues(<%= n_args_out_bare(arity) %>);
        } else {
            prepare(context, runtime, self<%= n_args_ary(arity) %>, block);
        }
        if (getBlock() != null) processBlockArg(scope, runtime, block);
    }
