Module: Moped::BSON::Extensions::String
- Included in:
- String
- Defined in:
- lib/moped/bson/extensions/string.rb
Defined Under Namespace
Modules: ClassMethods
Instance Method Summary collapse
- #__bson_dump__(io, key) ⇒ Object
- #from_utf8_binary ⇒ Object
- #to_bson_cstring ⇒ Object
- #to_utf8_binary ⇒ Object
Instance Method Details
#__bson_dump__(io, key) ⇒ Object
7 8 9 10 11 12 13 14 |
# 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 |
#from_utf8_binary ⇒ Object
32 33 34 |
# File 'lib/moped/bson/extensions/string.rb', line 32 def from_utf8_binary force_encoding(UTF8_ENCODING).encode! end |
#to_bson_cstring ⇒ Object
16 17 18 19 20 21 22 |
# 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 |
#to_utf8_binary ⇒ Object
24 25 26 27 28 29 30 |
# File 'lib/moped/bson/extensions/string.rb', line 24 def to_utf8_binary encode(UTF8_ENCODING).force_encoding(BINARY_ENCODING) rescue EncodingError data = dup.force_encoding(UTF8_ENCODING) raise unless data.valid_encoding? data.force_encoding(BINARY_ENCODING) end |