mongoid / origin

A Ruby DSL for building MongoDB queries
http://mongoid.org/en/origin/index.html
MIT License
62 stars 29 forks source link

Float array elements are sometimes converted to integers #104

Open MartinNowak opened 9 years ago

MartinNowak commented 9 years ago

[30.0, 27.2, -2.0].mongoize returns [30, 27.2, -2.0] and [30.0, 27.2, -2.0].mongoize.map{|e| e.class} returns [Fixnum, Float, Fixnum]

MartinNowak commented 9 years ago

I found this while storing geo coordinates using a Mongoid model. Some of the coordinates are now Integers while others are Floats.

Apparently it's done deliberately (see here and here), but it makes no sense to convert floats to integers, just because the fractional part is zero.

arthurnn commented 9 years ago

I think this was added to fix another issue, see https://github.com/mongoid/origin/commit/701a8f777c6e9c6d8ca14657e07a6128407ef828

So when you have "2." it would convert to 2... but 2.0 should be a Float IMO.

@MartinNowak want try to fix this and send a PR? thanks

MartinNowak commented 9 years ago

Sure will do.