bool TRI_ExecuteRubyFile (mrb_state* mrb, char const* filename) { bool ok; char* content; mrb_value result; content = TRI_SlurpFile(TRI_UNKNOWN_MEM_ZONE, filename, NULL); if (content == 0) { LOG_TRACE("cannot loaded ruby file '%s': %s", filename, TRI_last_error()); return false; } ok = TRI_ExecuteRubyString(mrb, content, filename, false, &result); TRI_FreeString(TRI_UNKNOWN_MEM_ZONE, content); return ok; }
std::shared_ptr<VPackBuilder> VelocyPackHelper::velocyPackFromFile( std::string const& path) { size_t length; char* content = TRI_SlurpFile(TRI_UNKNOWN_MEM_ZONE, path.c_str(), &length); if (content != nullptr) { // The Parser might THROW std::shared_ptr<VPackBuilder> b; try { auto b = VPackParser::fromJson(reinterpret_cast<uint8_t const*>(content), length); TRI_Free(TRI_UNKNOWN_MEM_ZONE, content); return b; } catch (...) { TRI_Free(TRI_UNKNOWN_MEM_ZONE, content); throw; } } THROW_ARANGO_EXCEPTION(TRI_ERROR_OUT_OF_MEMORY); }