1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
class VM
class ByteArray
def initialize(string)
string.force_encoding('binary')
@bytes = string.bytes
@size = @bytes.size
end
attr_reader :size
def raw
@bytes
end
def to_s
raw.map(&:chr).join
end
alias to_ruby to_s
alias eq? equal?
def ==(other)
other.is_a?(ByteArray) && raw == other.raw
end
end
end