Class: ArrayBuffer
- Inherits:
-
Object
- Object
- ArrayBuffer
- Includes:
- Enumerable
- Defined in:
- ext/arraybuffer/arraybuffer.c
Instance Method Summary collapse
- #[](index) ⇒ Object
- #[]=(index, value) ⇒ Object
-
#bytes ⇒ String
Returns a ASCII-8BIT string with the contents of the buffer.
- #each ⇒ Object
- #initialize(size) ⇒ Object constructor
- #realloc(_new_size) ⇒ Object
- #size ⇒ Object (also: #length)
-
#to_s ⇒ String
Returns a ASCII-8BIT string with the contents of the buffer.
Constructor Details
#initialize(size) ⇒ Object
94 95 96 97 98 99 100 101 102 103 104 105 106 107 |
# File 'ext/arraybuffer/arraybuffer.c', line 94
static VALUE
t_bb_initialize(VALUE self, VALUE size) {
DECLAREBB(self);
unsigned int s = NUM2UINT(size);
bb->size = s;
if (bb->backing_str)
rb_gc_mark(bb->backing_str);
bb->backing_str = rb_str_buf_new(s);
t_bb_reassign_ptr(bb);
memset(bb->ptr, 0, (size_t)s);
return self;
}
|
Instance Method Details
#[](index) ⇒ Object
109 110 111 112 113 114 115 116 117 |
# File 'ext/arraybuffer/arraybuffer.c', line 109
static VALUE
t_bb_getbyte(VALUE self, VALUE index) {
DECLAREBB(self);
int idx = NUM2INT(index);
if (idx < 0)
idx += (int)bb->size;
CHECKBOUNDS(bb, idx);
return UINT2NUM((unsigned int)bb->ptr[idx]);
}
|
#[]=(index, value) ⇒ Object
119 120 121 122 123 124 125 126 127 128 129 |
# File 'ext/arraybuffer/arraybuffer.c', line 119
static VALUE
t_bb_setbyte(VALUE self, VALUE index, VALUE value) {
DECLAREBB(self);
int idx = NUM2INT(index);
unsigned int val = NUM2UINT(value);
if (idx < 0)
idx += (int)bb->size;
CHECKBOUNDS(bb, idx);
bb->ptr[idx] = (unsigned char)val;
return self;
}
|
#bytes ⇒ String
Returns a ASCII-8BIT string with the contents of the buffer
The returned string is the backing string of the buffer. It’s encoding is always ASCII-8BIT. If the buffer has size zero, an empty string is returned.
176 177 178 179 180 |
# File 'ext/arraybuffer/arraybuffer.c', line 176
static VALUE
t_bb_bytes(VALUE self) {
DECLAREBB(self);
return bb->backing_str;
}
|
#each ⇒ Object
137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 |
# File 'ext/arraybuffer/arraybuffer.c', line 137
static VALUE
t_bb_each(VALUE self) {
DECLAREBB(self);
if (rb_block_given_p()) {
for (unsigned int i = 0; i < bb->size; i++) {
unsigned int val = (unsigned int)bb->ptr[i];
rb_yield(UINT2NUM(val));
}
} else {
rb_raise(rb_eArgError, "no block given");
}
return self;
}
|
#realloc(_new_size) ⇒ Object
153 154 155 156 157 158 159 160 161 162 163 164 165 |
# File 'ext/arraybuffer/arraybuffer.c', line 153
static VALUE
t_bb_realloc(VALUE self, VALUE _new_size) {
DECLAREBB(self);
unsigned int new_size = NUM2UINT(_new_size);
if (new_size == bb->size)
return self;
rb_str_resize(bb->backing_str, new_size);
bb->size = new_size;
t_bb_reassign_ptr(bb);
return self;
}
|
#size ⇒ Object Also known as: length
131 132 133 134 135 |
# File 'ext/arraybuffer/arraybuffer.c', line 131
static VALUE
t_bb_size(VALUE self) {
DECLAREBB(self);
return UINT2NUM(bb->size);
}
|
#to_s ⇒ String
Returns a ASCII-8BIT string with the contents of the buffer
The returned string is the backing string of the buffer. It’s encoding is always ASCII-8BIT. If the buffer has size zero, an empty string is returned.
176 177 178 179 180 |
# File 'ext/arraybuffer/arraybuffer.c', line 176
static VALUE
t_bb_bytes(VALUE self) {
DECLAREBB(self);
return bb->backing_str;
}
|