Sha256: 7a4d9ca40be95721f9017b8c16fbd148bf0954c52774f064962e250f0363abe8

Contents?: true

Size: 746 Bytes

Versions: 14

Compression:

Stored size: 746 Bytes

Contents

require 'native'
require 'buffer/array'
require 'buffer/view'

class Buffer
  include Native::Wrapper

  def self.supported?
    !$$[:ArrayBuffer].nil?
  end

  def self.name_for(bits, type)
    part = case type
           when :unsigned then 'Uint'
           when :signed   then 'Int'
           when :float    then 'Float'
           end
    "#{part}#{bits}"
  end

  def initialize(size, bits = 8)
    if native?(size)
      super(size)
    else
      super(`new ArrayBuffer(size * (bits / 8))`)
    end
  end

  def length
    `#{@native}.byteLength`
  end

  alias size length

  def to_a(bits = 8, type = :unsigned)
    Array.new(self, bits, type)
  end

  def view(offset = nil, length = nil)
    View.new(self, offset, length)
  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
opal-1.3.0.alpha1 stdlib/buffer.rb
opal-1.2.0 stdlib/buffer.rb
opal-1.2.0.beta1 stdlib/buffer.rb
opal-1.1.1 stdlib/buffer.rb
opal-1.1.1.rc1 stdlib/buffer.rb
opal-1.1.0 stdlib/buffer.rb
opal-1.1.0.rc1 stdlib/buffer.rb
opal-1.0.5 stdlib/buffer.rb
opal-1.0.4 stdlib/buffer.rb
opal-1.0.3 stdlib/buffer.rb
opal-1.0.2 stdlib/buffer.rb
opal-1.0.1 stdlib/buffer.rb
opal-1.0.0 stdlib/buffer.rb
opal-1.0.0.beta1 stdlib/buffer.rb