# File lib/moped/bson/extensions/string.rb, line 7 def __bson_dump__(io, key) io << Types::STRING io << key.to_bson_cstring data = to_utf8_binary io << [ data.bytesize + 1 ].pack(INT32_PACK) io << data io << NULL_BYTE end
# File lib/moped/bson/extensions/string.rb, line 32 def from_utf8_binary force_encoding(Moped::BSON::UTF8_ENCODING).encode! end
# File lib/moped/bson/extensions/string.rb, line 16 def to_bson_cstring if include? NULL_BYTE raise EncodingError, "#{inspect} cannot be converted to a BSON " "cstring because it contains a null byte" end to_utf8_binary << NULL_BYTE end
# File lib/moped/bson/extensions/string.rb, line 24 def to_utf8_binary encode(Moped::BSON::UTF8_ENCODING).force_encoding(Moped::BSON::BINARY_ENCODING) rescue EncodingError data = dup.force_encoding(Moped::BSON::UTF8_ENCODING) raise unless data.valid_encoding? data.force_encoding(Moped::BSON::BINARY_ENCODING) end