CHANGELOG.md
# Overview
## 2.1.0
### New Features
* Aliased `order` to `order_by` for compatibility with AR query methods.
* Added `reorder` to queryables to have a way to completely overwrite existing
ordering instead of always having to merge. This takes the same syntax
as `order`.
## 2.0.0
### Major Changes (Backwards Incompatible)
* Origin 2 now only supports MongoDB 2.4.0 and higher.
* \#60 Array evolution no longer modifies in place.
* Legacy geo selection has been removed, use geo_spacial now.
* \#48 `not` negation no longer ignores parameters without expressions
which follow them, but not negates them with `$ne` instead.
Previously:
selection = query.not.where(field: 1)
selection.selector # { "field" => 1 }
Now:
selection = query.not.where(field: 1)
selection.selector # { "field" => { "$ne" => 1 }}
### New Features
* \#82 Added support for $geoIntersects and $geoWithin queries via the
geo_spacial method. Examples:
query.geo_spacial(:location.intersects_line => [[ 1, 10 ], [ 2, 10 ]])
query.geo_spacial(:location.intersects_point => [[ 1, 10 ]])
query.geo_spacial(:location.intersects_polygon => [[ 1, 10 ], [ 2, 10 ], [ 1, 10 ]])
query.geo_spacial(:location.within_polygon => [[ 1, 10 ], [ 2, 10 ], [ 1, 10 ]])
### Resolved Issues
* \#83 Internal smart hashes (Smashes) now can get directly by key or alias.
(Gosha Arinich)
* \#66 Array evolution now properly coerces non arrays into arrays.
(Jared Wyatt)
* \#61 `only` and `without` can now be used together. It is up to the user
to determine when this is valid or not. (Rodrigo Saito)
## 1.1.0
### Resolved Issues
* \#77 Arrays can now be expanded when complex keys are preset.
(Timersha Ziganshin)
* \#76 Hashes with nested values multiple levels are now expanded properly.
(Timersha Ziganshin)
* \#75 Merging strategies now expand nested criteria properly.
(Timersha Ziganshin)
* \#73 Negation now properly works for $gt/$lt etc queries.
(Arthur Neves)
* \#62 Fixed time with zone require. (Julien Boyer)
## 1.0.11
### Resolved Issues
* \#58 Retain milliseconds precision when evolving times. (Steve Valaitis)
* \#56 Selector values are no longer modified in place.
* \#55 Allow #only and #without to take array arguments. (Egor Lynko)
## 1.0.10
### Resolved Issues
* \#51 hash equality works corectly with `Origin::Key`s (Gerad Suyderhoud)
{ :foo.all => [1, 2] } == { :foo.all => [1, 2] } #=> true
## 1.0.9
### Resolved Issues
* \#45 Fixed $not query negation with regular expressions. (Andrew Bennett)
## 1.0.8
### Resolved Issues
* \#44 Fixed serialization on deeply nested $and and $or queries. (Egor Lynko)
## 1.0.7
### Resolved Issues
* \#40 Allow $elemMatch queries to be expanded in where clauses, not just
elem_match method calls.
## 1.0.5
### Resolved Issues
* \#40 Allow $elemMatch queries to be expanded.
## 1.0.4
### Resolved Issues
* \#39 Fixed errors when using forwarding when active support is not present.
## 1.0.3
### Resolved Issues
* mongoid/mongoid\#2170 Multi selection ($and/$or) now properly concats
when merging two criteria.
## 1.0.2
### Resolved Issues
* mongoid/mongoid\#2165 Multi selection ($and/$or) now takes into account
field aliases.
## 1.0.1
### Resolved Issues
* \#38 Fixed issues around UTC time conversion of dates and date times:
`DateTimes` already in UTC are not converted to UTC again.
`Dates` properly convert directly to UTC from numeric values.