Class: Buffer::Array
  
  
  
  Instance Attribute Summary collapse
  
  
    
      Class Method Summary
      collapse
    
    
  
    
      Instance Method Summary
      collapse
    
    
  
  
  
  
  
  
  
  
  
  Methods included from Enumerable
  #to_json, #to_set
  
  
  
  
  
  
  
  
  Methods included from Native
  call, convert, included, is_a?, proc, #to_n, try_convert
  Constructor Details
  
    
  
  
    #initialize(buffer, bits = nil, type = nil)  ⇒ Array 
  
  
  
  
    Returns a new instance of Array
   
 
  
  
    | 
12
13
14
15
16
17
18
19
20
21
22
23
24
25 | # File 'opal/stdlib/buffer/array.rb', line 12
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
   
 
  
  
    | 
10
11
12 | # File 'opal/stdlib/buffer/array.rb', line 10
def buffer
  @buffer
end | 
 
    
      
      
      
  
  
    Returns the value of attribute type
   
 
  
  
    | 
10
11
12 | # File 'opal/stdlib/buffer/array.rb', line 10
def type
  @type
end | 
 
    
   
  
    Class Method Details
    
      
  
  
    .for(bits, type)  ⇒ Object 
  
  
  
  
    | 
4
5
6 | # File 'opal/stdlib/buffer/array.rb', line 4
def self.for(bits, type)
  $$["#{Buffer.name_for bits, type}Array"]
end | 
 
    
   
  
    Instance Method Details
    
      
  
  
    #[](index, offset = nil)  ⇒ Object 
  
  
  
  
    | 
31
32
33 | # File 'opal/stdlib/buffer/array.rb', line 31
def [](index, offset = nil)
  offset ? `#@native.subarray(index, offset)` : `#@native[index]`
end | 
 
    
      
  
  
    #[]=(index, value)  ⇒ Object 
  
  
  
  
    | 
35
36
37 | # File 'opal/stdlib/buffer/array.rb', line 35
def []=(index, value)
  `#@native[index] = value`
end | 
 
    
      
  
  
    | 
27
28
29 | # File 'opal/stdlib/buffer/array.rb', line 27
def bits
  `#@native.BYTES_PER_ELEMENT * 8`
end | 
 
    
      
  
  
    | 
39
40
41 | # File 'opal/stdlib/buffer/array.rb', line 39
def bytesize
  `#@native.byteLength`
end | 
 
    
      
  
  
    | 
43
44
45
46
47
48
49
50
51
52
53 | # File 'opal/stdlib/buffer/array.rb', line 43
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
    
  
  
  
    | 
55
56
57 | # File 'opal/stdlib/buffer/array.rb', line 55
def length
  `#@native.length`
end | 
 
    
      
  
  
    #merge!(other, offset = undefined)  ⇒ Object 
  
  
  
  
    | 
59
60
61 | # File 'opal/stdlib/buffer/array.rb', line 59
def merge!(other, offset = undefined)
  `#@native.set(#{other.to_n}, offset)`
end |