Module: ShaqLib

Defined in:
lib/shaq_lib.rb,
lib/shaq_lib/version.rb,
ext/shaq_lib/shaq_lib.c

Constant Summary collapse

VERSION =
"0.0.3"

Class Method Summary collapse

Class Method Details

.kmers(str, ksize) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
# File 'ext/shaq_lib/shaq_lib.c', line 3

static VALUE kmers(VALUE klass, VALUE str, VALUE ksize)
{
  long i = 0;
  long k = NUM2LONG(ksize);
  long num_kmers = RSTRING_LEN(str) - k + 1;

  for (i = 0; i < num_kmers; ++i) {
    rb_yield(rb_str_substr(str, i, k));
  }

  return str;
}

.submers(str) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'ext/shaq_lib/shaq_lib.c', line 16

static VALUE submers(VALUE klass, VALUE str)
{
  long strlen = RSTRING_LEN(str);
  VALUE s1, s2;

  s1 = rb_str_substr(str, 0, strlen-1);
  s2 = rb_str_substr(str, 1, strlen-1);

  VALUE ary = rb_ary_new2(2);

  rb_ary_push(ary, s1);
  rb_ary_push(ary, s2);

  return ary;
}