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



237
238
239
240
241
242
243
244
245
246
247
248
249
# File 'ext/version_sorter/version_sorter.c', line 237

static VALUE
rb_version_compare(VALUE rb_self, VALUE rb_version_a, VALUE rb_version_b)
{
  struct version_number *version_a = parse_version_number(StringValueCStr(rb_version_a));
  struct version_number *version_b = parse_version_number(StringValueCStr(rb_version_b));

  VALUE result = INT2NUM(version_compare_cb(&version_a, &version_b));

  xfree(version_a);
  xfree(version_b);

  return result;
}

.rsort(rb_versions) ⇒ Object



219
220
221
222
223
# File 'ext/version_sorter/version_sorter.c', line 219

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



231
232
233
234
235
# File 'ext/version_sorter/version_sorter.c', line 231

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



213
214
215
216
217
# File 'ext/version_sorter/version_sorter.c', line 213

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



225
226
227
228
229
# File 'ext/version_sorter/version_sorter.c', line 225

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