Class: Plamo::StringArray

Inherits:
Object
  • Object
show all
Defined in:
ext/plamo/plamo_string_array.c

Instance Method Summary collapse

Constructor Details

#initializeObject



25
26
27
28
# File 'ext/plamo/plamo_string_array.c', line 25

static VALUE initialize(VALUE self) {
  DATA_PTR(self) = plamo_string_array_new();
  return self;
}

Instance Method Details

#[](index) ⇒ Object



69
70
71
72
73
74
75
76
77
78
# File 'ext/plamo/plamo_string_array.c', line 69

static VALUE get_at(VALUE self, VALUE index) {
  PlamoStringArray *plamo_string_array;
  TypedData_Get_Struct(self, PlamoStringArray, &rb_plamo_string_array_type, plamo_string_array);
  const char *str = plamo_string_array_get_at(plamo_string_array, FIX2ULONG(index));
  if (str != NULL) {
    return rb_str_new2(str);
  } else {
    return Qnil;
  }
}

#delete_at(index) ⇒ Object



91
92
93
94
95
96
97
98
99
# File 'ext/plamo/plamo_string_array.c', line 91

static VALUE delete_at(VALUE self, VALUE index) {
  PlamoStringArray *plamo_string_array;
  TypedData_Get_Struct(self, PlamoStringArray, &rb_plamo_string_array_type, plamo_string_array);
  if (plamo_string_array_remove_at(plamo_string_array, FIX2ULONG(index))) {
    return Qtrue;
  } else {
    return Qfalse;
  }
}

#eachObject



84
85
86
87
88
89
# File 'ext/plamo/plamo_string_array.c', line 84

static VALUE each(VALUE self) {
  PlamoStringArray *plamo_string_array;
  TypedData_Get_Struct(self, PlamoStringArray, &rb_plamo_string_array_type, plamo_string_array);
  plamo_string_array_for_each(plamo_string_array, execute_each);
  return Qnil;
}

#firstObject



47
48
49
50
51
52
53
54
55
56
# File 'ext/plamo/plamo_string_array.c', line 47

static VALUE first(VALUE self) {
  PlamoStringArray *plamo_string_array;
  TypedData_Get_Struct(self, PlamoStringArray, &rb_plamo_string_array_type, plamo_string_array);
  const char *str = plamo_string_array_get_first(plamo_string_array);
  if (str != NULL) {
    return rb_str_new2(str);
  } else {
    return Qnil;
  }
}

#lastObject



58
59
60
61
62
63
64
65
66
67
# File 'ext/plamo/plamo_string_array.c', line 58

static VALUE last(VALUE self) {
  PlamoStringArray *plamo_string_array;
  TypedData_Get_Struct(self, PlamoStringArray, &rb_plamo_string_array_type, plamo_string_array);
  const char *str = plamo_string_array_get_last(plamo_string_array);
  if (str != NULL) {
    return rb_str_new2(str);
  } else {
    return Qnil;
  }
}

#lengthObject Also known as: size



30
31
32
33
34
# File 'ext/plamo/plamo_string_array.c', line 30

static VALUE length(VALUE self) {
  PlamoStringArray *plamo_string_array;
  TypedData_Get_Struct(self, PlamoStringArray, &rb_plamo_string_array_type, plamo_string_array);
  return SIZET2NUM(plamo_string_array_length(plamo_string_array));
}

#push(rb_string) ⇒ Object



36
37
38
39
40
41
42
43
44
45
# File 'ext/plamo/plamo_string_array.c', line 36

static VALUE push(VALUE self, VALUE rb_string) {
  PlamoStringArray *plamo_string_array;
  TypedData_Get_Struct(self, PlamoStringArray, &rb_plamo_string_array_type, plamo_string_array);
  if (OBJ_FROZEN(self)) {
    rb_exc_raise(rb_eFrozenError);
    return Qnil;
  }
  plamo_string_array_add(plamo_string_array, StringValueCStr(rb_string));
  return Qnil;
}