type_array 0.1 → 0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/README.rdoc CHANGED
@@ -131,7 +131,6 @@ Running tests
131
131
  == Todo
132
132
 
133
133
  * Support Marshal dump / load
134
- * Low level API for math operations on array elements without creating any Ruby objects
135
134
  * Support structs / records
136
135
  * Handle edges where coercion to and from Bignum is more appropriate
137
136
 
@@ -29,6 +29,14 @@ static ID rb_type_array_intern_aset;
29
29
  */
30
30
  DefineTypeArraySetter(int8, (signed char)NUM2CHR(item));
31
31
 
32
+ /*
33
+ * :nodoc:
34
+ * Defines operator functions for int8s at given offsets, according to host endianness.
35
+ *
36
+ */
37
+ DefineTypeArrayOperators(int8, signed char, TACHR2FIX(val));
38
+ DefineTypeArrayOperator(eql, ==, int8, signed char, (val == 0 ? Qfalse : Qtrue));
39
+
32
40
  /*
33
41
  * :nodoc:
34
42
  * Coerces an int8 at a given offset to a Ruby object, according to host endianness.
@@ -50,6 +58,14 @@ DefineTypeArraySetter(uint8, (unsigned char)NUM2CHR(item));
50
58
  */
51
59
  DefineTypeArrayGetter(uint8, unsigned char, TACHR2FIX(val));
52
60
 
61
+ /*
62
+ * :nodoc:
63
+ * Defines operator functions for uint8s at given offsets, according to host endianness.
64
+ *
65
+ */
66
+ DefineTypeArrayOperators(uint8, unsigned char, TACHR2FIX(val));
67
+ DefineTypeArrayOperator(eql, ==, uint8, unsigned char, (val == 0 ? Qfalse : Qtrue));
68
+
53
69
  /*
54
70
  * :nodoc:
55
71
  * Coerces a Ruby object to an int16 at a given offset, according to host endianness.
@@ -64,6 +80,14 @@ DefineTypeArraySetter(int16, (short)NUM2INT(item));
64
80
  */
65
81
  DefineTypeArrayGetter(int16, short, INT2FIX(val));
66
82
 
83
+ /*
84
+ * :nodoc:
85
+ * Defines operator functions for int16s at given offsets, according to host endianness.
86
+ *
87
+ */
88
+ DefineTypeArrayOperators(int16, short, INT2FIX(val));
89
+ DefineTypeArrayOperator(eql, ==, int16, short, (val == 0 ? Qfalse : Qtrue));
90
+
67
91
  /*
68
92
  * :nodoc:
69
93
  * Coerces a Ruby object to an unsigned int16 at a given offset, according to host endianness.
@@ -78,6 +102,14 @@ DefineTypeArraySetter(uint16, (unsigned short)NUM2INT(item));
78
102
  */
79
103
  DefineTypeArrayGetter(uint16, unsigned short, INT2FIX(val));
80
104
 
105
+ /*
106
+ * :nodoc:
107
+ * Defines operator functions for uint16s at given offsets, according to host endianness.
108
+ *
109
+ */
110
+ DefineTypeArrayOperators(uint16, unsigned short, INT2FIX(val));
111
+ DefineTypeArrayOperator(eql, ==, uint16, unsigned short, (val == 0 ? Qfalse : Qtrue));
112
+
81
113
  /*
82
114
  * :nodoc:
83
115
  * Coerces a Ruby object to an int32 at a given offset, according to host endianness.
@@ -92,6 +124,14 @@ DefineTypeArraySetter(int32, NUM2INT(item));
92
124
  */
93
125
  DefineTypeArrayGetter(int32, int, INT2FIX(val));
94
126
 
127
+ /*
128
+ * :nodoc:
129
+ * Defines operator functions for int32s at given offsets, according to host endianness.
130
+ *
131
+ */
132
+ DefineTypeArrayOperators(int32, int, INT2FIX(val));
133
+ DefineTypeArrayOperator(eql, ==, int32, int, (val == 0 ? Qfalse : Qtrue));
134
+
95
135
  /*
96
136
  * :nodoc:
97
137
  * Coerces a Ruby object to an unsigned int32 at a given offset, according to host endianness.
@@ -106,6 +146,14 @@ DefineTypeArraySetter(uint32, NUM2UINT(item));
106
146
  */
107
147
  DefineTypeArrayGetter(uint32, unsigned int, UINT2NUM(val));
108
148
 
149
+ /*
150
+ * :nodoc:
151
+ * Defines operator functions for uint32s at given offsets, according to host endianness.
152
+ *
153
+ */
154
+ DefineTypeArrayOperators(uint32, unsigned int, UINT2NUM(val));
155
+ DefineTypeArrayOperator(eql, ==, uint32, unsigned int, (val == 0 ? Qfalse : Qtrue));
156
+
109
157
  /*
110
158
  * :nodoc:
111
159
  * Coerces a Ruby object to a float32 (float) at a given offset, according to host endianness.
@@ -137,6 +185,14 @@ static void rb_type_array_aset_float32(rb_array_buffer_t *buf, long index, VALUE
137
185
  */
138
186
  DefineTypeArrayGetter(float32, float, rb_float_new((double)val));
139
187
 
188
+ /*
189
+ * :nodoc:
190
+ * Defines operator functions for float32s at given offsets, according to host endianness.
191
+ *
192
+ */
193
+ DefineTypeArrayOperators(float32, float, rb_float_new((double)val));
194
+ DefineTypeArrayOperator(eql, ==, float32, float, (val == 0 ? Qfalse : Qtrue));
195
+
140
196
  /*
141
197
  * :nodoc:
142
198
  * Coerces a Ruby object to a float64 (double) at a given offset, according to host endianness.
@@ -168,6 +224,14 @@ static void rb_type_array_aset_float64(rb_array_buffer_t *buf, long index, VALUE
168
224
  */
169
225
  DefineTypeArrayGetter(float64, double, rb_float_new(val));
170
226
 
227
+ /*
228
+ * :nodoc:
229
+ * Defines operator functions for float64s at given offsets, according to host endianness.
230
+ *
231
+ */
232
+ DefineTypeArrayOperators(float64, double, rb_float_new(val));
233
+ DefineTypeArrayOperator(eql, ==, float64, double, (val == 0 ? Qfalse : Qtrue));
234
+
171
235
  /*
172
236
  * :nodoc:
173
237
  * Asserts type alignment.
@@ -291,27 +355,67 @@ static VALUE rb_type_array_s_new(int argc, VALUE *argv, VALUE klass)
291
355
  if (klass == rb_cInt8Array) {
292
356
  array->aref_fn = rb_type_array_aref_int8;
293
357
  array->aset_fn = rb_type_array_aset_int8;
358
+ array->mul_fn = rb_type_array_mul_int8;
359
+ array->plus_fn = rb_type_array_plus_int8;
360
+ array->minus_fn = rb_type_array_minus_int8;
361
+ array->div_fn = rb_type_array_div_int8;
362
+ array->eql_fn = rb_type_array_eql_int8;
294
363
  } else if (klass == rb_cUInt8Array) {
295
364
  array->aref_fn = rb_type_array_aref_uint8;
296
365
  array->aset_fn = rb_type_array_aset_uint8;
366
+ array->mul_fn = rb_type_array_mul_uint8;
367
+ array->plus_fn = rb_type_array_plus_uint8;
368
+ array->minus_fn = rb_type_array_minus_uint8;
369
+ array->div_fn = rb_type_array_div_uint8;
370
+ array->eql_fn = rb_type_array_eql_uint8;
297
371
  } else if (klass == rb_cInt16Array) {
298
372
  array->aref_fn = rb_type_array_aref_int16;
299
373
  array->aset_fn = rb_type_array_aset_int16;
374
+ array->mul_fn = rb_type_array_mul_int16;
375
+ array->plus_fn = rb_type_array_plus_int16;
376
+ array->minus_fn = rb_type_array_minus_int16;
377
+ array->div_fn = rb_type_array_div_int16;
378
+ array->eql_fn = rb_type_array_eql_int16;
300
379
  } else if (klass == rb_cUInt16Array) {
301
380
  array->aref_fn = rb_type_array_aref_uint16;
302
381
  array->aset_fn = rb_type_array_aset_uint16;
382
+ array->mul_fn = rb_type_array_mul_uint16;
383
+ array->plus_fn = rb_type_array_plus_uint16;
384
+ array->minus_fn = rb_type_array_minus_uint16;
385
+ array->div_fn = rb_type_array_div_uint16;
386
+ array->eql_fn = rb_type_array_eql_uint16;
303
387
  } else if (klass == rb_cInt32Array) {
304
388
  array->aref_fn = rb_type_array_aref_int32;
305
389
  array->aset_fn = rb_type_array_aset_int32;
390
+ array->mul_fn = rb_type_array_mul_int32;
391
+ array->plus_fn = rb_type_array_plus_int32;
392
+ array->minus_fn = rb_type_array_minus_int32;
393
+ array->div_fn = rb_type_array_div_int32;
394
+ array->eql_fn = rb_type_array_eql_int32;
306
395
  } else if (klass == rb_cUInt32Array) {
307
396
  array->aref_fn = rb_type_array_aref_uint32;
308
397
  array->aset_fn = rb_type_array_aset_uint32;
398
+ array->mul_fn = rb_type_array_mul_uint32;
399
+ array->plus_fn = rb_type_array_plus_uint32;
400
+ array->minus_fn = rb_type_array_minus_uint32;
401
+ array->div_fn = rb_type_array_div_uint32;
402
+ array->eql_fn = rb_type_array_eql_uint32;
309
403
  } else if (klass == rb_cFloat32Array) {
310
404
  array->aref_fn = rb_type_array_aref_float32;
311
405
  array->aset_fn = rb_type_array_aset_float32;
406
+ array->mul_fn = rb_type_array_mul_float32;
407
+ array->plus_fn = rb_type_array_plus_float32;
408
+ array->minus_fn = rb_type_array_minus_float32;
409
+ array->div_fn = rb_type_array_div_float32;
410
+ array->eql_fn = rb_type_array_eql_float32;
312
411
  } else if (klass == rb_cFloat64Array) {
313
412
  array->aref_fn = rb_type_array_aref_float64;
314
413
  array->aset_fn = rb_type_array_aset_float64;
414
+ array->mul_fn = rb_type_array_mul_float64;
415
+ array->plus_fn = rb_type_array_plus_float64;
416
+ array->minus_fn = rb_type_array_minus_float64;
417
+ array->div_fn = rb_type_array_div_float64;
418
+ array->eql_fn = rb_type_array_eql_float64;
315
419
  }
316
420
 
317
421
  if (FIXNUM_P(obj)) {
@@ -382,6 +486,131 @@ static VALUE rb_type_array_byte_length(VALUE obj)
382
486
  return ULONG2NUM(ary->byte_length);
383
487
  }
384
488
 
489
+ /*
490
+ * call-seq:
491
+ * ary.mul(0,1) => Fixnum, Bignum or Float
492
+ *
493
+ * Gets two values at given offsets and multiples them - only the result's coerced to a Ruby object.
494
+ *
495
+ * === Examples
496
+ * buf = ArrayBuffer.new(16) => ArrayBuffer
497
+ * ary = Int32Array.new(buf) => Int32Array
498
+ * ary[0] = 2 => nil
499
+ * ary[1] = 4 => nil
500
+ * ary[2] = 8 => nil
501
+ *
502
+ * ary.mul(0,1) => 8
503
+ * ary.mul(1,2) => 32
504
+ */
505
+ static VALUE rb_type_array_mul(VALUE obj, VALUE off1, VALUE off2)
506
+ {
507
+ GetTypeArray(obj);
508
+ GetArrayBuffer(ary->buf);
509
+ long offset1 = rb_type_array_assert_offset(ary, off1);
510
+ long offset2 = rb_type_array_assert_offset(ary, off2);
511
+ return ary->mul_fn(buf->buf, offset1, offset2);
512
+ }
513
+
514
+ /*
515
+ * call-seq:
516
+ * ary.plus(0,1) => Fixnum, Bignum or Float
517
+ *
518
+ * Gets two values at given offsets and adds them - only the result's coerced to a Ruby object.
519
+ *
520
+ * === Examples
521
+ * buf = ArrayBuffer.new(16) => ArrayBuffer
522
+ * ary = Int32Array.new(buf) => Int32Array
523
+ * ary[0] = 2 => nil
524
+ * ary[1] = 4 => nil
525
+ * ary[2] = 8 => nil
526
+ *
527
+ * ary.plus(0,1) => 6
528
+ * ary.plus(1,2) => 12
529
+ */
530
+ static VALUE rb_type_array_plus(VALUE obj, VALUE off1, VALUE off2)
531
+ {
532
+ GetTypeArray(obj);
533
+ GetArrayBuffer(ary->buf);
534
+ long offset1 = rb_type_array_assert_offset(ary, off1);
535
+ long offset2 = rb_type_array_assert_offset(ary, off2);
536
+ return ary->plus_fn(buf->buf, offset1, offset2);
537
+ }
538
+
539
+ /*
540
+ * call-seq:
541
+ * ary.minus(0,1) => Fixnum, Bignum or Float
542
+ *
543
+ * Gets two values at given offsets and subtracts them - only the result's coerced to a Ruby object.
544
+ *
545
+ * === Examples
546
+ * buf = ArrayBuffer.new(16) => ArrayBuffer
547
+ * ary = Int32Array.new(buf) => Int32Array
548
+ * ary[0] = 2 => nil
549
+ * ary[1] = 4 => nil
550
+ * ary[2] = 8 => nil
551
+ *
552
+ * ary.minus(1, 0) => 2
553
+ * ary.minus(2, 1) => 4
554
+ */
555
+ static VALUE rb_type_array_minus(VALUE obj, VALUE off1, VALUE off2)
556
+ {
557
+ GetTypeArray(obj);
558
+ GetArrayBuffer(ary->buf);
559
+ long offset1 = rb_type_array_assert_offset(ary, off1);
560
+ long offset2 = rb_type_array_assert_offset(ary, off2);
561
+ return ary->minus_fn(buf->buf, offset1, offset2);
562
+ }
563
+
564
+ /*
565
+ * call-seq:
566
+ * ary.div(0,1) => Fixnum, Bignum or Float
567
+ *
568
+ * Gets two values at given offsets and divides them - only the result's coerced to a Ruby object.
569
+ *
570
+ * === Examples
571
+ * buf = ArrayBuffer.new(16) => ArrayBuffer
572
+ * ary = Int32Array.new(buf) => Int32Array
573
+ * ary[0] = 2 => nil
574
+ * ary[1] = 4 => nil
575
+ * ary[2] = 8 => nil
576
+ *
577
+ * ary.div(1, 0) => 2
578
+ * ary.div(2, 1) => 2
579
+ */
580
+ static VALUE rb_type_array_div(VALUE obj, VALUE off1, VALUE off2)
581
+ {
582
+ GetTypeArray(obj);
583
+ GetArrayBuffer(ary->buf);
584
+ long offset1 = rb_type_array_assert_offset(ary, off1);
585
+ long offset2 = rb_type_array_assert_offset(ary, off2);
586
+ return ary->div_fn(buf->buf, offset1, offset2);
587
+ }
588
+
589
+ /*
590
+ * call-seq:
591
+ * ary.div(0,1) => Fixnum, Bignum or Float
592
+ *
593
+ * Gets two values at given offsets and divides them - only the result's coerced to a Ruby object.
594
+ *
595
+ * === Examples
596
+ * buf = ArrayBuffer.new(16) => ArrayBuffer
597
+ * ary = Int32Array.new(buf) => Int32Array
598
+ * ary[0] = 2 => nil
599
+ * ary[1] = 4 => nil
600
+ * ary[2] = 8 => nil
601
+ *
602
+ * ary.div(1, 0) => 2
603
+ * ary.div(2, 1) => 2
604
+ */
605
+ static VALUE rb_type_array_eql(VALUE obj, VALUE off1, VALUE off2)
606
+ {
607
+ GetTypeArray(obj);
608
+ GetArrayBuffer(ary->buf);
609
+ long offset1 = rb_type_array_assert_offset(ary, off1);
610
+ long offset2 = rb_type_array_assert_offset(ary, off2);
611
+ return ary->eql_fn(buf->buf, offset1, offset2);
612
+ }
613
+
385
614
  /*
386
615
  * call-seq:
387
616
  * ary.length => Fixnum
@@ -537,4 +766,9 @@ void _init_type_array()
537
766
  rb_define_method(rb_cTypeArray, "to_s", rb_type_array_to_s, 0);
538
767
  rb_define_method(rb_cTypeArray, "[]=", rb_type_array_aset, 2);
539
768
  rb_define_method(rb_cTypeArray, "[]", rb_type_array_aget, 1);
769
+ rb_define_method(rb_cTypeArray, "mul", rb_type_array_mul, 2);
770
+ rb_define_method(rb_cTypeArray, "plus", rb_type_array_plus, 2);
771
+ rb_define_method(rb_cTypeArray, "minus", rb_type_array_minus, 2);
772
+ rb_define_method(rb_cTypeArray, "div", rb_type_array_div, 2);
773
+ rb_define_method(rb_cTypeArray, "eql", rb_type_array_eql, 2);
540
774
  }
@@ -3,6 +3,7 @@
3
3
 
4
4
  typedef void (type_array_aset_fn) (rb_array_buffer_t *buf, long index, VALUE item);
5
5
  typedef VALUE (type_array_aref_fn) (rb_array_buffer_t *buf, long index);
6
+ typedef VALUE (type_array_operator_fn) (rb_array_buffer_t *buf, long off1, long off2);
6
7
 
7
8
  typedef struct {
8
9
  unsigned long size;
@@ -11,6 +12,11 @@ typedef struct {
11
12
  unsigned long byte_offset;
12
13
  type_array_aset_fn *aset_fn;
13
14
  type_array_aref_fn *aref_fn;
15
+ type_array_operator_fn *mul_fn;
16
+ type_array_operator_fn *plus_fn;
17
+ type_array_operator_fn *minus_fn;
18
+ type_array_operator_fn *div_fn;
19
+ type_array_operator_fn *eql_fn;
14
20
  VALUE buf;
15
21
  } rb_type_array_t;
16
22
 
@@ -35,4 +41,20 @@ void _init_type_array();
35
41
  return coercion; \
36
42
  }
37
43
 
44
+ #define DefineTypeArrayOperators(name, type, coercion) \
45
+ DefineTypeArrayOperator(mul, *, name, type, coercion); \
46
+ DefineTypeArrayOperator(plus, +, name, type, coercion); \
47
+ DefineTypeArrayOperator(minus, -, name, type, coercion); \
48
+ DefineTypeArrayOperator(div, /, name, type, coercion); \
49
+
50
+ #define DefineTypeArrayOperator(op_name, op, name, type, coercion) \
51
+ VALUE rb_type_array_##op_name##_##name(rb_array_buffer_t *buf, long off1, long off2) \
52
+ { \
53
+ type val; \
54
+ type val1 = rb_type_array_get_##name(buf, off1, TYPE_ARRAY_IS_LITTLE_ENDIAN); \
55
+ type val2 = rb_type_array_get_##name(buf, off2, TYPE_ARRAY_IS_LITTLE_ENDIAN); \
56
+ val = val1 op val2; \
57
+ return coercion; \
58
+ }
59
+
38
60
  #endif
@@ -1,3 +1,3 @@
1
1
  class TypeArray
2
- VERSION = '0.1'
2
+ VERSION = '0.2'
3
3
  end
@@ -152,4 +152,77 @@ class TestTypeArray < TypeArrayTestCase
152
152
  ensure
153
153
  s.close rescue nil
154
154
  end
155
+
156
+ def test_mul
157
+ buf = ArrayBuffer.new(16)
158
+
159
+ ary = Int32Array.new(buf)
160
+ ary[0] = 2
161
+ ary[1] = 4
162
+ ary[2] = 8
163
+
164
+ assert_equal 8, ary.mul(0,1)
165
+ assert_equal 32, ary.mul(1, 2)
166
+ end
167
+
168
+ def test_plus
169
+ buf = ArrayBuffer.new(16)
170
+
171
+ ary = Int32Array.new(buf)
172
+ ary[0] = 2
173
+ ary[1] = 4
174
+ ary[2] = 8
175
+
176
+ assert_equal 6, ary.plus(0,1)
177
+ assert_equal 12, ary.plus(1, 2)
178
+ end
179
+
180
+ def test_minus
181
+ buf = ArrayBuffer.new(16)
182
+
183
+ ary = Int32Array.new(buf)
184
+ ary[0] = 2
185
+ ary[1] = 4
186
+ ary[2] = 8
187
+
188
+ assert_equal 2, ary.minus(1,0)
189
+ assert_equal 4, ary.minus(2, 1)
190
+ end
191
+
192
+ def test_div
193
+ buf = ArrayBuffer.new(16)
194
+
195
+ ary = Int32Array.new(buf)
196
+ ary[0] = 2
197
+ ary[1] = 4
198
+ ary[2] = 8
199
+
200
+ assert_equal 2, ary.div(1,0)
201
+ assert_equal 2, ary.div(2, 1)
202
+ end
203
+
204
+ def test_eql
205
+ buf = ArrayBuffer.new(16)
206
+
207
+ ary = Int32Array.new(buf)
208
+ ary[0] = 2
209
+ ary[1] = 4
210
+ ary[2] = 4
211
+ ary[3] = 2
212
+
213
+ assert ary.eql(0, 3)
214
+ assert ary.eql(1, 2)
215
+ assert !ary.eql(0, 1)
216
+
217
+ buf = ArrayBuffer.new(24)
218
+
219
+ ary = Float64Array.new(buf)
220
+
221
+ ary[0] = 2.33
222
+ ary[1] = 2.33
223
+ ary[2] = 7.45
224
+
225
+ assert ary.eql(0,1)
226
+ assert !ary.eql(1,2)
227
+ end
155
228
  end
metadata CHANGED
@@ -1,112 +1,127 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: type_array
3
3
  version: !ruby/object:Gem::Version
4
+ hash: 15
4
5
  prerelease:
5
- version: "0.1"
6
+ segments:
7
+ - 0
8
+ - 2
9
+ version: "0.2"
6
10
  platform: ruby
7
11
  authors:
8
- - "Lourens Naud\xC3\xA9"
12
+ - "Lourens Naud\xC3\xA9"
9
13
  autorequire:
10
14
  bindir: bin
11
15
  cert_chain: []
12
16
 
13
17
  date: 2012-07-12 00:00:00 Z
14
18
  dependencies:
15
- - !ruby/object:Gem::Dependency
16
- name: rake-compiler
17
- prerelease: false
18
- requirement: &id001 !ruby/object:Gem::Requirement
19
- none: false
20
- requirements:
21
- - - ~>
22
- - !ruby/object:Gem::Version
23
- version: 0.8.0
24
- type: :development
25
- version_requirements: *id001
19
+ - !ruby/object:Gem::Dependency
20
+ name: rake-compiler
21
+ prerelease: false
22
+ requirement: &id001 !ruby/object:Gem::Requirement
23
+ none: false
24
+ requirements:
25
+ - - ~>
26
+ - !ruby/object:Gem::Version
27
+ hash: 63
28
+ segments:
29
+ - 0
30
+ - 8
31
+ - 0
32
+ version: 0.8.0
33
+ type: :development
34
+ version_requirements: *id001
26
35
  description: TypeArray - Ruby implementation of the ECMAScript spec ( http://wiki.ecmascript.org/doku.php?id=strawman:typed_arrays )
27
36
  email:
28
- - lourens@methodmissing.com
37
+ - lourens@methodmissing.com
29
38
  executables: []
30
39
 
31
40
  extensions:
32
- - ext/type_array/extconf.rb
41
+ - ext/type_array/extconf.rb
33
42
  extra_rdoc_files: []
34
43
 
35
44
  files:
36
- - .gitignore
37
- - .travis.yml
38
- - CHANGELOG.rdoc
39
- - Gemfile
40
- - Gemfile.lock
41
- - README.rdoc
42
- - Rakefile
43
- - ext/type_array/array_buffer.c
44
- - ext/type_array/array_buffer.h
45
- - ext/type_array/data_view.c
46
- - ext/type_array/data_view.h
47
- - ext/type_array/extconf.rb
48
- - ext/type_array/jruby.h
49
- - ext/type_array/prelude.h
50
- - ext/type_array/rubinius.h
51
- - ext/type_array/ruby18.h
52
- - ext/type_array/ruby19.h
53
- - ext/type_array/type_array.c
54
- - ext/type_array/type_array.h
55
- - ext/type_array/type_array_ext.c
56
- - ext/type_array/type_array_ext.h
57
- - lib/type_array.rb
58
- - lib/type_array/io.rb
59
- - lib/type_array/version.rb
60
- - test/helper.rb
61
- - test/test_array_buffer.rb
62
- - test/test_data_view.rb
63
- - test/test_float_32_array.rb
64
- - test/test_float_64_array.rb
65
- - test/test_int_16_array.rb
66
- - test/test_int_32_array.rb
67
- - test/test_int_8_array.rb
68
- - test/test_type_array.rb
69
- - test/test_uint_16_array.rb
70
- - test/test_uint_32_array.rb
71
- - test/test_uint_8_array.rb
72
- - type_array.gemspec
45
+ - .gitignore
46
+ - .travis.yml
47
+ - CHANGELOG.rdoc
48
+ - Gemfile
49
+ - Gemfile.lock
50
+ - README.rdoc
51
+ - Rakefile
52
+ - ext/type_array/array_buffer.c
53
+ - ext/type_array/array_buffer.h
54
+ - ext/type_array/data_view.c
55
+ - ext/type_array/data_view.h
56
+ - ext/type_array/extconf.rb
57
+ - ext/type_array/jruby.h
58
+ - ext/type_array/prelude.h
59
+ - ext/type_array/rubinius.h
60
+ - ext/type_array/ruby18.h
61
+ - ext/type_array/ruby19.h
62
+ - ext/type_array/type_array.c
63
+ - ext/type_array/type_array.h
64
+ - ext/type_array/type_array_ext.c
65
+ - ext/type_array/type_array_ext.h
66
+ - lib/type_array.rb
67
+ - lib/type_array/io.rb
68
+ - lib/type_array/version.rb
69
+ - test/helper.rb
70
+ - test/test_array_buffer.rb
71
+ - test/test_data_view.rb
72
+ - test/test_float_32_array.rb
73
+ - test/test_float_64_array.rb
74
+ - test/test_int_16_array.rb
75
+ - test/test_int_32_array.rb
76
+ - test/test_int_8_array.rb
77
+ - test/test_type_array.rb
78
+ - test/test_uint_16_array.rb
79
+ - test/test_uint_32_array.rb
80
+ - test/test_uint_8_array.rb
81
+ - type_array.gemspec
73
82
  homepage: http://github.com/methodmissing/type_array
74
83
  licenses: []
75
84
 
76
85
  post_install_message:
77
86
  rdoc_options:
78
- - --charset=UTF-8
87
+ - --charset=UTF-8
79
88
  require_paths:
80
- - lib
89
+ - lib
81
90
  required_ruby_version: !ruby/object:Gem::Requirement
82
91
  none: false
83
92
  requirements:
84
- - - ">="
85
- - !ruby/object:Gem::Version
86
- version: "0"
93
+ - - ">="
94
+ - !ruby/object:Gem::Version
95
+ hash: 3
96
+ segments:
97
+ - 0
98
+ version: "0"
87
99
  required_rubygems_version: !ruby/object:Gem::Requirement
88
100
  none: false
89
101
  requirements:
90
- - - ">="
91
- - !ruby/object:Gem::Version
92
- version: "0"
102
+ - - ">="
103
+ - !ruby/object:Gem::Version
104
+ hash: 3
105
+ segments:
106
+ - 0
107
+ version: "0"
93
108
  requirements: []
94
109
 
95
110
  rubyforge_project:
96
- rubygems_version: 1.8.9
111
+ rubygems_version: 1.8.15
97
112
  signing_key:
98
113
  specification_version: 3
99
114
  summary: Typed Arrays for Ruby
100
115
  test_files:
101
- - test/helper.rb
102
- - test/test_array_buffer.rb
103
- - test/test_data_view.rb
104
- - test/test_float_32_array.rb
105
- - test/test_float_64_array.rb
106
- - test/test_int_16_array.rb
107
- - test/test_int_32_array.rb
108
- - test/test_int_8_array.rb
109
- - test/test_type_array.rb
110
- - test/test_uint_16_array.rb
111
- - test/test_uint_32_array.rb
112
- - test/test_uint_8_array.rb
116
+ - test/helper.rb
117
+ - test/test_array_buffer.rb
118
+ - test/test_data_view.rb
119
+ - test/test_float_32_array.rb
120
+ - test/test_float_64_array.rb
121
+ - test/test_int_16_array.rb
122
+ - test/test_int_32_array.rb
123
+ - test/test_int_8_array.rb
124
+ - test/test_type_array.rb
125
+ - test/test_uint_16_array.rb
126
+ - test/test_uint_32_array.rb
127
+ - test/test_uint_8_array.rb