Module: BSON::String
- Defined in:
- lib/bson/string.rb
Overview
Injects behaviour for encoding and decoding string values to and from raw bytes as specified by the BSON spec.
Defined Under Namespace
Modules: ClassMethods Classes: IllegalKey
Constant Summary collapse
- BSON_TYPE =
A string is type 0x02 in the BSON spec.
2.chr.force_encoding(BINARY).freeze
- ILLEGAL_KEY =
Regex for matching illegal BSON keys.
/(\A[$])|(\.)/.freeze
Instance Method Summary collapse
-
#to_bson(buffer = ByteBuffer.new, validating_keys = Config.validating_keys?) ⇒ BSON::ByteBuffer
Get the string as encoded BSON.
-
#to_bson_key(validating_keys = Config.validating_keys?) ⇒ String
Get the string as a BSON key name encoded C string with checking for special characters.
-
#to_bson_object_id ⇒ String
Convert the string to an object id.
-
#to_hex_string ⇒ String
Convert the string to a hexidecimal representation.
Instance Method Details
#to_bson(buffer = ByteBuffer.new, validating_keys = Config.validating_keys?) ⇒ BSON::ByteBuffer
Get the string as encoded BSON.
48 49 50 |
# File 'lib/bson/string.rb', line 48 def to_bson(buffer = ByteBuffer.new, validating_keys = Config.validating_keys?) buffer.put_string(self) end |
#to_bson_key(validating_keys = Config.validating_keys?) ⇒ String
Get the string as a BSON key name encoded C string with checking for special characters.
67 68 69 70 71 72 |
# File 'lib/bson/string.rb', line 67 def to_bson_key(validating_keys = Config.validating_keys?) if validating_keys raise IllegalKey.new(self) if ILLEGAL_KEY =~ self end self end |
#to_bson_object_id ⇒ String
Note:
This is used for repairing legacy bson data.
Convert the string to an object id. This will only work for strings of size 12.
87 88 89 |
# File 'lib/bson/string.rb', line 87 def to_bson_object_id ObjectId.repair(self) end |
#to_hex_string ⇒ String
Convert the string to a hexidecimal representation.
99 100 101 |
# File 'lib/bson/string.rb', line 99 def to_hex_string unpack("H*")[0] end |