DL::Stack

Public Class Methods

[](*types) click to toggle source
                
# File dl/lib/dl/stack.rb, line 5
def self.[](*types)
  new(types)
end
new(types) click to toggle source
                
# File dl/lib/dl/stack.rb, line 9
def initialize(types)
  parse_types(types)
end

Public Instance Methods

pack(ary) click to toggle source
                
# File dl/lib/dl/stack.rb, line 21
def pack(ary)
  case SIZEOF_VOIDP
  when SIZEOF_LONG
    ary.pack(@template).unpack('l!*')
  when SIZEOF_LONG_LONG
    ary.pack(@template).unpack('q*')
  else
    raise(RuntimeError, "sizeof(void*)?")
  end
end
size() click to toggle source
                
# File dl/lib/dl/stack.rb, line 13
def size()
  @size
end
types() click to toggle source
                
# File dl/lib/dl/stack.rb, line 17
def types()
  @types
end
unpack(ary) click to toggle source
                
# File dl/lib/dl/stack.rb, line 32
def unpack(ary)
  case SIZEOF_VOIDP
  when SIZEOF_LONG
    ary.pack('l!*').unpack(@template)
  when SIZEOF_LONG_LONG
    ary.pack('q*').unpack(@template)
  else
    raise(RuntimeError, "sizeof(void*)?")
  end
end
blog comments powered by Disqus