Call define_method using send, instead of directly

works around https://bugs.ruby-lang.org/issues/8284
makes tests pass on 1.9.3