diff --git a/ext/java/jar/jbson.jar b/ext/java/jar/jbson.jar index 972f2e8..ffcc70f 100644 Binary files a/ext/java/jar/jbson.jar and b/ext/java/jar/jbson.jar differ diff --git a/ext/java/src/org/jbson/RubyBSONEncoder.java b/ext/java/src/org/jbson/RubyBSONEncoder.java index 9e1a8e2..51263f2 100644 --- a/ext/java/src/org/jbson/RubyBSONEncoder.java +++ b/ext/java/src/org/jbson/RubyBSONEncoder.java @@ -281,6 +281,9 @@ public class RubyBSONEncoder extends BSONEncoder { else if ( val instanceof Iterable) putIterable( name , (Iterable)val ); + else if ( val instanceof Date ) + putDate( name , ((Date)val).getTime() ); + else if ( val instanceof byte[] ) putBinary( name , (byte[])val ); diff --git a/test/bson/bson_test.rb b/test/bson/bson_test.rb index 7bcf2aa..b610e3b 100644 --- a/test/bson/bson_test.rb +++ b/test/bson/bson_test.rb @@ -246,8 +246,14 @@ class BSONTest < Test::Unit::TestCase assert_in_delta doc['date'], doc2['date'], 0.001 end + def test_date_in_array + doc = {'date' => [Time.now.utc]} + bson = @encoder.serialize(doc) + doc2 = @encoder.deserialize(bson) + end + def test_date_returns_as_utc - doc = {'date' => Time.now} + doc = {'date' => Time.now.utc} bson = @encoder.serialize(doc) doc2 = @encoder.deserialize(bson) assert doc2['date'].utc?