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