Class: Buffer::Array
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Methods included from Enumerable
#each_async, #to_json, #to_set
included, #to_n
Constructor Details
#initialize(buffer, bits = nil, type = nil) ⇒ Array
Returns a new instance of Array.
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
# File 'opal/stdlib/buffer/array.rb', line 13
def initialize(buffer, bits = nil, type = nil)
if Native == buffer
super(buffer)
else
%x{
var klass = #{Array.for(bits, type)};
#{super(`new klass(#{buffer.to_n})`)}
}
end
@buffer = buffer
@type = type
end
|
Instance Attribute Details
Returns the value of attribute buffer.
11
12
13
|
# File 'opal/stdlib/buffer/array.rb', line 11
def buffer
@buffer
end
|
Returns the value of attribute type.
11
12
13
|
# File 'opal/stdlib/buffer/array.rb', line 11
def type
@type
end
|
Class Method Details
.for(bits, type) ⇒ Object
5
6
7
|
# File 'opal/stdlib/buffer/array.rb', line 5
def self.for(bits, type)
$$["#{Buffer.name_for bits, type}Array"]
end
|
Instance Method Details
#[](index, offset = nil) ⇒ Object
32
33
34
|
# File 'opal/stdlib/buffer/array.rb', line 32
def [](index, offset = nil)
offset ? `#{@native}.subarray(index, offset)` : `#{@native}[index]`
end
|
#[]=(index, value) ⇒ Object
36
37
38
|
# File 'opal/stdlib/buffer/array.rb', line 36
def []=(index, value)
`#{@native}[index] = value`
end
|
28
29
30
|
# File 'opal/stdlib/buffer/array.rb', line 28
def bits
`#{@native}.BYTES_PER_ELEMENT * 8`
end
|
40
41
42
|
# File 'opal/stdlib/buffer/array.rb', line 40
def bytesize
`#{@native}.byteLength`
end
|
44
45
46
47
48
49
50
51
52
53
54
|
# File 'opal/stdlib/buffer/array.rb', line 44
def each
return enum_for :each unless block_given?
%x{
for (var i = 0, length = #{@native}.length; i < length; i++) {
#{yield `#{@native}[i]`}
}
}
self
end
|
#length ⇒ Object
Also known as:
size
56
57
58
|
# File 'opal/stdlib/buffer/array.rb', line 56
def length
`#{@native}.length`
end
|
#merge!(other, offset = undefined) ⇒ Object
60
61
62
|
# File 'opal/stdlib/buffer/array.rb', line 60
def merge!(other, offset = undefined)
`#{@native}.set(#{other.to_n}, offset)`
end
|