In Files

  • dl/lib/dl/stack.rb

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