class Chunk

Public Class Methods

new(file) click to toggle source

MIN_SIZE = “x00x00x00x00”.unpack(“L<”) MAX_SIZE = “xFFxFFxFFxFF”.unpack(“L<”)

# File lib/chunk.rb, line 9
def initialize(file)

  self.id = file.each_char.first(4).join
  self.size = file.each_char.first(4).join.unpack("L<")[0]
  self.data = ChunkData.new(file, self)

end

Public Instance Methods

to_s() click to toggle source
# File lib/chunk.rb, line 17
def to_s

  print "\n\t\"#{self.id}\" <#{self.size}> (\n"
  print "\t  \"#{self.data.form_type}\",\n"
  comma_count = self.data.chunks.length - 1
  self.data.chunks.each do |chunk|
  
    #if chunk.id.eql? "fmt "
      print "\t  < \"#{chunk.id}\" <#{chunk.size}> "
        chunk.data.chunks.each do |sub_chunk|
          print "< \"#{sub_chunk.id}\" <#{sub_chunk.size}> >"
        end
      #print "\n"
      case chunk.id
      when "fmt "
        print chunk.data.data.to_s
      when "LIST"
      end
      print "\t >"
      if comma_count > 0
        print ",\n"
      else
        print "\n"
      end
      comma_count -= 1

    # else
    
      # print "\t  < \"#{chunk.id}\" <#{chunk.size}> "
        # chunk.data.chunks.each do |sub_chunk|
          # print "< \"#{sub_chunk.id}\" <#{sub_chunk.size}> >"
        # end
      # print " >"
      # if comma_count > 0
        # print ",\n"
      # else
        # print "\n"
      # end
      # comma_count -= 1
    
    # end
  end
  print "\t)\n"

end