documentation and changelog

This commit is contained in:
Sean Carroll 2018-03-17 21:19:32 +01:00
parent 7f6525e996
commit f8dbc18e1d
3 changed files with 87 additions and 26 deletions

View File

@ -1,5 +1,29 @@
# Change Log # Change Log
## Version 1.8.8 - 2018-03-16
* Fix multiple database support
PR [#893](https://github.com/activerecord-hackery/ransack/pull/893)
* Updated Dutch translations
PR [#887](https://github.com/activerecord-hackery/ransack/pull/887)
* Fixed no method error 'asc' for Rails 4.2
PR [#885](https://github.com/activerecord-hackery/ransack/pull/885)
## Version 1.8.7 - 2018-02-05
* Rails 5.2 support
PR [#868](https://github.com/activerecord-hackery/ransack/pull/868)
* Lock pg gem to 0.21 to support older releases
* Warnings cleanup
PR [#867](https://github.com/activerecord-hackery/ransack/pull/867)
* Wildcard escaping
PR [#866]
## Version 1.8.6 - 2018-01-23 ## Version 1.8.6 - 2018-01-23
### Added ### Added

View File

@ -75,6 +75,15 @@ Here's a quick guide:
$ DB=pg bundle exec rake spec (`DB=postgres` & `DB=postgresql` work too) $ DB=pg bundle exec rake spec (`DB=postgres` & `DB=postgresql` work too)
$ DB=mysql bundle exec rake spec $ DB=mysql bundle exec rake spec
For Postgres and MySQL, databases are expected to exist, called 'ransack'. To create use these commands (assuming OS X and Homebrew):
### Postgres
$ createdb ransack
### MySQL
$ mysql -u root
mysql> create database ransack;
To run only the tests in a particular file: `rspec <path/to/filename>` To run only the tests in a particular file: `rspec <path/to/filename>`
$ rspec spec/ransack/search_spec.rb $ rspec spec/ransack/search_spec.rb

View File

@ -27,13 +27,11 @@ instead.
If you're viewing this at If you're viewing this at
[github.com/activerecord-hackery/ransack](https://github.com/activerecord-hackery/ransack), [github.com/activerecord-hackery/ransack](https://github.com/activerecord-hackery/ransack),
you're reading the documentation for the master branch with the latest features. you're reading the documentation for the master branch with the latest features.
[View documentation for the last release (1.8.2).](https://github.com/activerecord-hackery/ransack/tree/v1.8.2) [View documentation for the last release (1.8.8).](https://github.com/activerecord-hackery/ransack/tree/v1.8.8)
## Getting started ## Getting started
Ransack is compatible with Rails 3, 4 and 5 on Ruby 1.9 and later. Ransack is compatible with Rails 4.2 and 5.0, 5.1 and 5.2 on Ruby 2.2 and later.
JRuby 9 ought to work as well (see
[this](https://github.com/activerecord-hackery/polyamorous/issues/17)).
If you are using Ruby 1.8 or an earlier JRuby and run into compatibility If you are using Ruby 1.8 or an earlier JRuby and run into compatibility
issues, you can use an earlier version of Ransack, say, up to 1.3.0. issues, you can use an earlier version of Ransack, say, up to 1.3.0.
@ -412,28 +410,58 @@ query parameters in your URLs.
List of all possible predicates List of all possible predicates
* `*_eq` - equal
* `*_not_eq` - not equal | ------------- | ------------- |-------- |
* `*_matches` - matches with `LIKE`, e.g. `q[email_matches]=%@gmail.com` | `*_eq` | equal | |
* Also: `*_does_not_match`, `*_matches_any`, `*_matches_all`, `*_does_not_match_any`, `*_does_not_match_all` | `*_not_eq` | not equal | |
* `*_lt` - less than | `*_matches` | matches with `LIKE` | e.g. `q[email_matches]=%@gmail.com`|
* `*_lteq` - less than or equal | `*_does_not_match` | does not match with `LIKE` | |
* `*_gt` - greater than | `*_matches_any` | Matches any | |
* `*_gteq` - greater than or equal | `*_matches_all` | Matches all | |
* `*_present` - not null and not empty, e.g. `q[name_present]=1` (SQL: `col is not null AND col != ''`) | `*_does_not_match_any` | Does not match any | |
* `*_blank` - is null or empty. (SQL: `col is null OR col = ''`) | `*_does_not_match_all` | Does not match all | |
* `*_null`, `*_not_null` - is null, is not null | `*_lt` | less than | |
* `*_in` - match any values in array, e.g. `q[name_in][]=Alice&q[name_in][]=Bob` | `*_lteq` | less than or equal | |
* `*_not_in` - match none of values in array | `*_gt` | greater than | |
* `*_lt_any`, `*_lteq_any`, `*_gt_any`, `*_gteq_any` - Compare to list of values, at least positive. (SQL: `col > value1 OR col > value2`) | `*_gteq` | greater than or equal | |
* `*_matches_any`, `*_does_not_match_any` - same as above but with `LIKE` | `*_present` | not null and not empty | e.g. `q[name_present]=1` (SQL: `col is not null AND col != ''`) |
* `*_lt_all`, `*_lteq_all`, `*_gt_all`, `*_gteq_all` - Compare to list of values, all positive. (SQL: `col > value1 AND col > value2`) | `*_blank` | is null or empty. | (SQL: `col is null OR col = ''`) |
* `*_matches_all`, `*_does_not_match_all` - same as above but with `LIKE` | `*_null` | is null | |
* `*_not_eq_all` - none of values in a set | `*_not_null` | is not null | |
* `*_start`, `*_not_start`, `*_start_any`, `*_start_all`, `*_not_start_any`, `*_not_start_all` - start with, (SQL: `col LIKE 'value%'`) | `*_in` | match any values in array | e.g. `q[name_in][]=Alice&q[name_in][]=Bob` |
* `*_end`, `*_not_end`, `*_end_any`, `*_end_all`, `*_not_end_any`, `*_not_end_all` - end with, (SQL: `col LIKE '%value'`) | `*_not_in` | match none of values in array | |
* `*_cont`, `*_cont_any`, `*_cont_all`, `*_not_cont`, `*_not_cont_any`, `*_not_cont_all` - contains value, using `LIKE` | `*_lt_any` | Less than any | SQL: `col < value1 OR col < value2` |
* `*_true`, `*_false` - is true and is false | `*_lteq_any` | Less than or equal to any | |
| `*_gt_any` | Greater than any | |
| `*_gteq_any` | Greater than or equal to any | |
| `*_matches_any` | `*_does_not_match_any` | same as above but with `LIKE` |
| `*_lt_all` | Less than all | SQL: `col < value1 AND col < value2` |
| `*_lteq_all` | Less than or equal to all | |
| `*_gt_all` | Greater than all | |
| `*_gteq_all` | Greater than or equal to all | |
| `*_matches_all` | Matches all | same as above but with `LIKE` |
| `*_does_not_match_all` | Does not match all | |
| `*_not_eq_all` | none of values in a set | |
| `*_start` | Starts with | SQL: `col LIKE 'value%'` |
| `*_not_start` | Does not start with | |
| `*_start_any` | Starts with any of | |
| `*_start_all` | Starts with all of | |
| `*_not_start_any` | Does not start with any of | |
| `*_not_start_all` | Does not start with all of | |
| `*_end` | Ends with | SQL: `col LIKE '%value'` |
| `*_not_end` | Does not end with | |
| `*_end_any` | Ends with any of | |
| `*_end_all` | Ends with all of | |
| `*_not_end_any` | | |
| `*_not_end_all` | | |
| `*_cont` | Contains value | uses `LIKE` |
| `*_cont_any` | Contains any of | |
| `*_cont_all` | Contains all of | |
| `*_not_cont` | Does not contain |
| `*_not_cont_any` | Does not contain any of | |
| `*_not_cont_all` | Does not contain all of | |
| `*_true` | is true | |
| `*_false` | is false | |
(See full list: https://github.com/activerecord-hackery/ransack/blob/master/lib/ransack/locale/en.yml#L15 and [wiki](https://github.com/activerecord-hackery/ransack/wiki/Basic-Searching)) (See full list: https://github.com/activerecord-hackery/ransack/blob/master/lib/ransack/locale/en.yml#L15 and [wiki](https://github.com/activerecord-hackery/ransack/wiki/Basic-Searching))