/* * call-seq: * Spread::version -> string * * The version of the Spread client libraries being used. */ static VALUE spread_version(VALUE obj) { int n; int len; int maj_ver, min_ver, patch_ver; char buf[64]; if ((n = SP_version(&maj_ver, &min_ver, &patch_ver)) < 0) raise_sp_error(n); len = snprintf(buf, sizeof(buf), "%d.%d.%d", maj_ver, min_ver, patch_ver); if (len < 0 || (size_t) len >= sizeof(buf)) rb_raise(rb_eRuntimeError, "buffer overflow"); return rb_str_new(buf, len); }