Commit Graph

118 Commits

Author SHA1 Message Date
Kyle Banker
135bebd9ab RUBY-270 support 's' regex option.
Note: Ruby includes dotall 's' semantics on 'm' option.
2011-05-09 14:17:56 -04:00
Kyle Banker
05bf234bb8 RUBY-255 Support BSON Timestamp 2011-03-28 14:36:49 -04:00
Kyle Banker
b48a2bd84f RUBY-253 fix UTF8 check for Ruby 1.9 2011-03-24 12:11:12 -04:00
Kyle Banker
a8ce896c9f RUBY-245 Unique object id with timestamp 2011-03-15 16:40:27 -04:00
Hongli Lai (Phusion)
2335108162 When possible, use system_free() to free asprintf() results.
On OS X, Ruby Enterprise Edition allocates memory with tcmalloc which is
not compatible with the system malloc. asprintf() allocates memory with
the system malloc so we need to free its result with the system free()
function instead of tcmalloc's free() function. REE's system_free()
API call does that.
2011-02-14 09:41:39 -05:00
Kyle Banker
76730d4a7c RUBY-233 show invalid key on invalid key exception 2011-02-04 12:07:28 -05:00
Kyle Banker
9798626053 RUBY-188 fix for bson_ext on Windows 2011-01-04 18:09:41 -05:00
Kyle Banker
bc5dcdfc7f Fix for undefined symbol rb_long2int 2011-01-03 16:15:58 -05:00
eregon
a0389b0668 define R{ARRAY,STRING}_LENINT if there are not 2011-01-03 14:21:12 -05:00
eregon
3ab2acbf4f Get rid of "implicit conversion 64-bit 32-bit" warnings
This resolves "warning: implicit conversion shortens 64-bit value into a 32-bit value"
The problem is String/Array length is a long (so 64 bits on some platforms instead of 32) and the extension use int
There are 2 solutions:
* use long everywhere (but waste of memory, and hard to do)
* cast into ints (but potential lost of data)
I did the second, because all these cases are about String/Array lengths,
and it is very unlikely to have a String/Array of more than 2 billions elements (that would mean at least 2GB in memory).

The last cast might need to be reviewed (htonl((int)time(NULL))) because htonl want a 32-bit int, but time(NULL) will overflow with the year 2038 problem.
2011-01-03 14:20:58 -05:00
Kyle Banker
c0e972470e Fixed BSON_CODER.update_max_bson_size return value 2011-01-03 14:05:42 -05:00
Kyle Banker
9da68bb3db RUBY-189 use result of ismaster's maxBsonObjectSize 2010-12-29 18:06:31 -05:00
eregon
191db33a1a fix declaration-after-statement warnings of ruby trunk
The commit bd0a9d2fb6
adds -Werror=declaration-after-statement. This may cause an error and make gem installation fail
See http://www.ruby-forum.com/topic/714046
2010-12-29 12:06:38 -05:00
Kyle Banker
6f067756c8 Fix for serializing int/long 2010-11-08 17:21:17 -05:00
Kyle Banker
b3ed1486e5 minor: updates for removal deprecated DB and Connection methods and ObjectID 2010-10-04 13:28:26 -04:00
Kyle Banker
2ed0adbbc6 Fix C extension to handle BSON::Code (no longer a subclass of String) 2010-10-01 17:03:26 -04:00
Kyle Banker
45e6aaef43 minor: fast_pack no longer used 2010-09-20 14:01:17 -04:00
Kyle Banker
b077ef992d RUBY-182 Rubinius compatibility; use rb_ary_entry() in lieu of RARRAY_PTR 2010-09-20 13:48:06 -04:00
Kyle Banker
81395373e9 RUBY-183 better int bson performance (Chuck Remes) 2010-09-20 11:57:06 -04:00
Hongli Lai (Phusion)
bfa4926e1d Optimize ObjectId#generate: cache the MD5 of the host name and generate counters in C instead of Ruby. 2010-09-14 10:37:22 -04:00
Hongli Lai (Phusion)
3f66721858 Optimize BSON C extension: cache some symbols instead of interning them over and over. 2010-09-13 10:51:29 -04:00
Kyle Banker
7ca4683843 RUBY-173 better hash class detection for BSON 2010-08-28 16:35:45 -04:00
Kyle Banker
5838b9aef7 RUBY-173 allow HashWithIndifferentAccess 2010-08-28 12:19:26 -04:00
Mike Dirolf
06602bd41e clean up C ext Time handling 2010-08-25 11:27:38 -04:00
Mike Dirolf
7702d671ea Use C objectid_generate for ObjectId in addition to ObjectID.
Also, remove broken defined? check from objectid.rb and object_id.rb -
it was never doing anything since we require those files at the top of
cbson.c.
2010-08-25 10:23:18 -04:00
Kyle Banker
02a0c7c2dc RUBY-165 raise error if BSON.serialize is passed something other than a hash 2010-08-24 14:01:24 -04:00
Kyle Banker
c7c309b00d RUBY-158 deprecate BSON::ObjectID for BSON::ObjectId 2010-08-24 12:49:23 -04:00
Kyle Banker
a24448d911 attempted fix for bson_ext on solaris (slyphon) 2010-07-02 16:03:42 -04:00
Mike Dirolf
d68e42812e respect Encoding.default_internal in BSON decoder 2010-05-07 15:15:52 -04:00
sleverbor
ed76126a12 namespaced the OrderedHash class 2010-05-06 18:25:18 -07:00
Kyle Banker
8ac3171981 ensure compatibility with early releases of Ruby 1.8.5 (dfitzgibbon) RUBY-125 2010-04-28 10:43:54 -04:00
Kyle Banker
910a82de7e must use Connection.paired for paired connections 2010-04-07 17:10:28 -04:00
Kyle Banker
e18d2d6fbb removed deprecated RegexpOfHolding 2010-04-07 16:32:25 -04:00
Kyle Banker
45d3b91882 exception refinements for bson split 2010-04-05 18:24:31 -04:00
Kyle Banker
c4d5cb641b renamed mongo_bson to bson 2010-04-05 10:39:55 -04:00
Charles Remes
b669b625cc Changed RREGEXP_SOURCE macro to RREGX_SRC so it matches all rubies 2010-03-19 09:10:08 -05:00
Charles Remes
a9b3c8e7a5 Try again: Split the BSON logic out to a separate gem
- changed the BSON constant to BSON_CODER and scoped it inside
      of a module

    - changed the directory layout for all of the BSON related files

    - updated the C extension to find the BSON files at their new
      directory locations

    - updated the C extension to use better/safer macros for accessing
      the C API; extension now compiles cleanly under rubinius/rbx

    - changed directory layout for BSON related tests

    - modified the Rakefile to understand the new layout
2010-03-17 14:55:19 -05:00
Kyle Banker
0709b98082 Rails 3 HashWithIndifferentAccess fixes 2010-03-02 11:11:07 -05:00
Kyle Banker
e3d746096d minor: docs 2010-03-01 12:09:21 -05:00
Kyle Banker
2d9e10c192 CBson HashWithIndifferentAccess error 2010-02-27 12:22:34 -05:00
Kyle Banker
fc2ddf3bbd deserialize to RegexpOfHolding only when necessary 2010-02-15 09:47:53 -05:00
Kyle Banker
e075d25a91 move id only when necessary RUBY-88 2010-01-28 18:44:50 -05:00
Kyle Banker
28227f8ac6 minor: fix for 1.8.6 Complex type checking 2010-01-21 15:42:59 -05:00
Kyle Banker
95d9d6b4f6 Handle unsupported types: Complex, Rational, and BigDecimal RUBY-85 2010-01-21 14:49:20 -05:00
Kyle Banker
bf7ffcfa82 support BSON MinKey and MaxKey RUBY-84 2010-01-20 18:50:07 -05:00
Kyle Banker
8c6e0a3591 Raise better error message when trying to serialize TimeWithZone 2010-01-20 12:11:58 -05:00
Mike Dirolf
f2de52351a minor: fix some warnings 2010-01-11 18:01:36 -05:00
Kyle Banker
3762e52ac2 minor: fixed exception organization 2010-01-11 11:38:35 -05:00
Kyle Banker
42b835243e warn if using Date or DateTime instead of Time 2010-01-06 14:30:58 -05:00
Mike Dirolf
e013618a8f RUBY-74 raise InvalidDocument for any unrecognized types 2009-12-29 12:59:30 -05:00