Module: VersionSorter

Defined in:
ext/version_sorter/version_sorter.c

Class Method Summary collapse

Class Method Details

.compare(rb_version_a, rb_version_b) ⇒ Object



285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
# File 'ext/version_sorter/version_sorter.c', line 285

static VALUE
rb_version_compare(VALUE rb_self, VALUE rb_version_a, VALUE rb_version_b)
{
  int exception;
  struct compare_context context = {
    rb_version_a, rb_version_b,
    NULL, NULL,
  };

  VALUE result = rb_protect(rb_version_compare_cb, (VALUE)&context, &exception);

  xfree(context.version_a);
  xfree(context.version_b);

  if (exception) {
    rb_jump_tag(exception);
  }

  return result;
}

.rsort(rb_versions) ⇒ Object



251
252
253
254
255
# File 'ext/version_sorter/version_sorter.c', line 251

static VALUE
rb_version_sort_r(VALUE rb_self, VALUE rb_versions)
{
  return rb_version_sort_1(rb_self, rb_ary_dup(rb_versions), version_compare_cb_r);
}

.rsort!(rb_versions) ⇒ Object



263
264
265
266
267
# File 'ext/version_sorter/version_sorter.c', line 263

static VALUE
rb_version_sort_r_bang(VALUE rb_self, VALUE rb_versions)
{
  return rb_version_sort_1(rb_self, rb_versions, version_compare_cb_r);
}

.sort(rb_versions) ⇒ Object



245
246
247
248
249
# File 'ext/version_sorter/version_sorter.c', line 245

static VALUE
rb_version_sort(VALUE rb_self, VALUE rb_versions)
{
  return rb_version_sort_1(rb_self, rb_ary_dup(rb_versions), version_compare_cb);
}

.sort!(rb_versions) ⇒ Object



257
258
259
260
261
# File 'ext/version_sorter/version_sorter.c', line 257

static VALUE
rb_version_sort_bang(VALUE rb_self, VALUE rb_versions)
{
  return rb_version_sort_1(rb_self, rb_versions, version_compare_cb);
}