# File lib/otnetstring.rb, line 62 def encode(obj, string_sep = ',') case obj when String then with_encoding "#{obj.bytesize}#{string_sep}#{obj}", "binary" when Integer then encode(obj.inspect, '#') when NilClass then "0~" when Array then encode(obj.map { |e| encode(e) }.join, '[') when Hash then encode(obj.map { |a,b| encode(a)+encode(b) }.join, '{') when FalseClass, TrueClass then encode(obj.inspect, '!') else raise Error, 'cannot encode %p' % obj end end