Extended maintenance of Ruby 1.9.3 ended on February 23, 2015. Read more

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
            

Commenting is here to help enhance the documentation. For example, code samples, or clarification of the documentation.

If you have questions about Ruby or the documentation, please post to one of the Ruby mailing lists. You will get better, faster, help that way.

If you wish to post a correction of the docs, please do so, but also file bug report so that it can be corrected for the next release. Thank you.

If you want to help improve the Ruby documentation, please visit Documenting-ruby.org.