case ValueMeta.TYPE_NUMBER:
javaValue = JavaEmbedUtils.rubyToJava(data.runtime, rubyVal, Double.class);
break;
case ValueMeta.TYPE_SERIALIZABLE:
String marshalled = getMarshal().callMethod(data.runtime.getCurrentContext(), "dump", rubyVal).toString();
javaValue = new RubyStepMarshalledObject(marshalled);
break;
case ValueMeta.TYPE_BINARY:
// TODO: provide meaningful error message if this fails
RubyArray arr = rubyVal.convertToArray();