Methods
Included Modules
Class Public methods
[](*types)
Link
new(types)
Link
Instance Public methods
pack(ary)
Link
size()
Link
unpack(ary)
Link
Instance Private methods
parse_types(types)
Link
# File ../ruby/ext/dl/lib/dl/pack.rb, line 102 def parse_types(types) @template = "" addr = 0 types.each{|t| orig_addr = addr if( t.is_a?(Array) ) addr = align(orig_addr, ALIGN_MAP[TYPE_VOIDP]) else addr = align(orig_addr, ALIGN_MAP[t]) end d = addr - orig_addr if( d > 0 ) @template << "x#{d}" end if( t.is_a?(Array) ) @template << (PACK_MAP[t[0]] * t[1]) addr += (SIZE_MAP[t[0]] * t[1]) else @template << PACK_MAP[t] addr += SIZE_MAP[t] end } addr = align(addr, ALIGN_MAP[TYPE_VOIDP]) @size = addr end