Class Ruva::VM::Class::Reader
In: lib/ruva/class_loader.rb
Parent: Object

ClassReader loads a class and creates an UnresolvedClass that represents the class. It‘s used by the ClassLoader to read a found class

Methods

bytes   file  

Classes and Modules

Class Ruva::VM::Class::Reader::UnresolvedClass
Class Ruva::VM::Class::Reader::UnresolvedMember

Public Class methods

Read a class from a byte array

[Source]

     # File lib/ruva/class_loader.rb, line 509
509:           def bytes(bytes)
510:             clz = UnresolvedClass.new(*bytes[0,8].unpack('Nnn'))
511:   
512:             pool_end = read_pool(bytes, clz, *bytes[8,2].unpack('n'))
513:   
514:             clz.access, clz.this_class, clz.super_class = *bytes[pool_end, 6].unpack('nnn')            
515:   
516:             ifaces_end = read_interfaces(bytes, pool_end + 8, clz, *bytes[pool_end + 6, 2].unpack('n'))
517:             fields_end = read_fields(bytes, ifaces_end + 2, clz, *bytes[ifaces_end, 2].unpack('n'))
518:             methods_end = read_methods(bytes, fields_end + 2, clz, *bytes[fields_end, 2].unpack('n'))
519:             read_attrs(bytes, methods_end + 2, clz, *bytes[methods_end, 2].unpack('n'))
520:               
521:             clz
522:           end

Read a class from a file

[Source]

     # File lib/ruva/class_loader.rb, line 504
504:           def file(filename)
505:             bytes(File.read(filename))
506:           end

[Validate]