class HexFile::Info
Public Class Methods
new(input_stream)
click to toggle source
# File lib/hex_file/info.rb, line 3 def initialize(input_stream) @records = input_stream.readlines.map do |record_line| Record.new(record_line.strip) end end
Public Instance Methods
binary_size()
click to toggle source
# File lib/hex_file/info.rb, line 22 def binary_size records.map { |r| r.data_size }.reduce(:+) end
find_record(regex)
click to toggle source
# File lib/hex_file/info.rb, line 13 def find_record regex regex = Regexp.new(regex, 'i') unless regex.is_a?(Regexp) records.find { |rec| rec.data =~ regex } end
format()
click to toggle source
# File lib/hex_file/info.rb, line 26 def format if linear_record_types?(record_types) 'I32HEX' elsif start_segment_record_type?(record_types) 'I16HEX' else 'I8HEX' end end
linear_record_types?(record_types)
click to toggle source
# File lib/hex_file/info.rb, line 40 def linear_record_types?(record_types) record_types.include?(Record::EXTENDED_LINEAR_ADDRESS) || record_types.include?(Record::START_LINEAR_ADDRESS) end
record_types()
click to toggle source
# File lib/hex_file/info.rb, line 36 def record_types @record_types ||= records.map { |r| r.type }.uniq end
records()
click to toggle source
# File lib/hex_file/info.rb, line 9 def records @records.each end
serialize()
click to toggle source
# File lib/hex_file/info.rb, line 18 def serialize records.map(&:raw).join("\n") end
start_segment_record_type?(record_types)
click to toggle source
# File lib/hex_file/info.rb, line 45 def start_segment_record_type?(record_types) record_types.include?(Record::START_SEGMENT_ADDRESS) end