module Gogyou::Extensions::String

Public Instance Methods

binary_operation() { || ... } click to toggle source
# File lib/gogyou/extensions.rb, line 422
def binary_operation
  enc = encoding
  force_encoding(Encoding::BINARY)
  begin
    yield
  ensure
    force_encoding(enc) rescue nil if enc
  end
end
resize(newsize) click to toggle source
# File lib/gogyou/extensions.rb, line 432
def resize(newsize)
  binary_operation do
    left = newsize - bytesize
    case
    when left > 0
      while left >= ZERO_BUFFER.bytesize
        concat(ZERO_BUFFER)
        left -= ZERO_BUFFER.bytesize
      end
      if left > 0
        zero = ZERO_BUFFER[ZERO_BUFFER.bytesize - left, left] # make shared string
        concat(zero)
      end
    when left < 0
      left = - left
      self[bytesize - left, left] = ""
    end
  end

  self
end
setbinary(index, mem, offset = 0, size = mem.bytesize) click to toggle source
# File lib/gogyou/extensions.rb, line 454
def setbinary(index, mem, offset = 0, size = mem.bytesize)
  offset = offset.to_i
  size = size.to_i
  size1 = mem.bytesize - offset
  size = size1 if size > size1
  if size > 0
    binary_operation do
      self[index.to_i, size] = mem.byteslice(offset, size)
    end
  end

  self
end
to_address() click to toggle source
# File lib/gogyou/extensions.rb, line 416
def to_address
  [self].pack("p").load_sizet(0)
end
Also aliased as: to_ptr
to_ptr()
Alias for: to_address