RUBY-111
This commit is contained in:
parent
a07662a898
commit
40b481ad3c
|
@ -34,13 +34,15 @@ module Mongo
|
||||||
|
|
||||||
# Create a buffer for storing binary data in MongoDB.
|
# Create a buffer for storing binary data in MongoDB.
|
||||||
#
|
#
|
||||||
# @param [Array] initia_data
|
# @param [Array, String] data to story as BSON binary. If a string is given, the value will be
|
||||||
|
# concerted to an array of bytes using String#unpack("c*").
|
||||||
# @param [Fixnum] one of four values specifying a BSON binary subtype. Possible values are
|
# @param [Fixnum] one of four values specifying a BSON binary subtype. Possible values are
|
||||||
# SUBTYPE_BYTES, SUBTYPE_UUID, SUBTYPE_MD5, and SUBTYPE_USER_DEFINED.
|
# SUBTYPE_BYTES, SUBTYPE_UUID, SUBTYPE_MD5, and SUBTYPE_USER_DEFINED.
|
||||||
#
|
#
|
||||||
# @see http://www.mongodb.org/display/DOCS/BSON#BSON-noteondatabinary BSON binary subtypes.
|
# @see http://www.mongodb.org/display/DOCS/BSON#BSON-noteondatabinary BSON binary subtypes.
|
||||||
def initialize(initial_data=[], subtype=SUBTYPE_BYTES)
|
def initialize(data=[], subtype=SUBTYPE_BYTES)
|
||||||
super(initial_data)
|
data = data.unpack("c*") if data.is_a?(String)
|
||||||
|
super(data)
|
||||||
@subtype = subtype
|
@subtype = subtype
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -249,6 +249,17 @@ class BSONTest < Test::Unit::TestCase
|
||||||
assert_equal Binary::SUBTYPE_BYTES, bin2.subtype
|
assert_equal Binary::SUBTYPE_BYTES, bin2.subtype
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_binary_with_string
|
||||||
|
b = Binary.new('somebinarystring')
|
||||||
|
doc = {'bin' => b}
|
||||||
|
bson = Mongo::BSON_CODER.serialize(doc)
|
||||||
|
doc2 = Mongo::BSON_CODER.deserialize(bson)
|
||||||
|
bin2 = doc2['bin']
|
||||||
|
assert_kind_of Binary, bin2
|
||||||
|
assert_equal 'somebinarystring', bin2.to_s
|
||||||
|
assert_equal Binary::SUBTYPE_BYTES, bin2.subtype
|
||||||
|
end
|
||||||
|
|
||||||
def test_binary_type
|
def test_binary_type
|
||||||
bin = Binary.new([1, 2, 3, 4, 5], Binary::SUBTYPE_USER_DEFINED)
|
bin = Binary.new([1, 2, 3, 4, 5], Binary::SUBTYPE_USER_DEFINED)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue