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);
}