ransack 2.3.0 → 4.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/FUNDING.yml +3 -0
- data/.github/SECURITY.md +12 -0
- data/.github/workflows/codeql.yml +72 -0
- data/.github/workflows/cronjob.yml +99 -0
- data/.github/workflows/deploy.yml +35 -0
- data/.github/workflows/rubocop.yml +20 -0
- data/.github/workflows/test-deploy.yml +29 -0
- data/.github/workflows/test.yml +131 -0
- data/.nojekyll +0 -0
- data/.rubocop.yml +50 -0
- data/CHANGELOG.md +263 -1
- data/CONTRIBUTING.md +51 -29
- data/Gemfile +24 -10
- data/README.md +49 -917
- data/bug_report_templates/test-ransack-scope-and-column-same-name.rb +78 -0
- data/bug_report_templates/test-ransacker-arel-present-predicate.rb +75 -0
- data/docs/.gitignore +19 -0
- data/docs/.nojekyll +0 -0
- data/docs/babel.config.js +3 -0
- data/docs/blog/2022-03-27-ransack-3.0.0.md +20 -0
- data/docs/docs/getting-started/_category_.json +4 -0
- data/docs/docs/getting-started/advanced-mode.md +46 -0
- data/docs/docs/getting-started/configuration.md +47 -0
- data/docs/docs/getting-started/search-matches.md +67 -0
- data/docs/docs/getting-started/simple-mode.md +288 -0
- data/docs/docs/getting-started/sorting.md +71 -0
- data/docs/docs/getting-started/using-predicates.md +282 -0
- data/docs/docs/going-further/_category_.json +4 -0
- data/docs/docs/going-further/acts-as-taggable-on.md +114 -0
- data/docs/docs/going-further/associations.md +70 -0
- data/docs/docs/going-further/custom-predicates.md +52 -0
- data/docs/docs/going-further/documentation.md +43 -0
- data/docs/docs/going-further/exporting-to-csv.md +49 -0
- data/docs/docs/going-further/external-guides.md +57 -0
- data/docs/docs/going-further/form-customisation.md +63 -0
- data/docs/docs/going-further/i18n.md +53 -0
- data/docs/docs/going-further/img/create_release.png +0 -0
- data/docs/docs/going-further/merging-searches.md +41 -0
- data/docs/docs/going-further/other-notes.md +428 -0
- data/docs/docs/going-further/polymorphic-search.md +46 -0
- data/docs/docs/going-further/ransackers.md +331 -0
- data/docs/docs/going-further/release_process.md +36 -0
- data/docs/docs/going-further/saving-queries.md +82 -0
- data/docs/docs/going-further/searching-postgres.md +57 -0
- data/docs/docs/going-further/wiki-contributors.md +82 -0
- data/docs/docs/intro.md +99 -0
- data/docs/docusaurus.config.js +120 -0
- data/docs/package.json +42 -0
- data/docs/sidebars.js +31 -0
- data/docs/src/components/HomepageFeatures/index.js +64 -0
- data/docs/src/components/HomepageFeatures/styles.module.css +11 -0
- data/docs/src/css/custom.css +39 -0
- data/docs/src/pages/index.module.css +23 -0
- data/docs/src/pages/markdown-page.md +7 -0
- data/docs/static/.nojekyll +0 -0
- data/docs/static/img/docusaurus.png +0 -0
- data/docs/static/img/favicon.ico +0 -0
- data/docs/static/img/logo.svg +1 -0
- data/docs/static/img/tutorial/docsVersionDropdown.png +0 -0
- data/docs/static/img/tutorial/localeDropdown.png +0 -0
- data/docs/static/img/undraw_docusaurus_mountain.svg +171 -0
- data/docs/static/img/undraw_docusaurus_react.svg +170 -0
- data/docs/static/img/undraw_docusaurus_tree.svg +40 -0
- data/docs/yarn.lock +8879 -0
- data/lib/polyamorous/activerecord_6.1_ruby_2/join_association.rb +70 -0
- data/{polyamorous/lib/polyamorous/activerecord_6.0_ruby_2 → lib/polyamorous/activerecord_6.1_ruby_2}/join_dependency.rb +33 -12
- data/lib/polyamorous/activerecord_6.1_ruby_2/reflection.rb +11 -0
- data/lib/polyamorous/activerecord_7.0_ruby_2/join_association.rb +1 -0
- data/lib/polyamorous/activerecord_7.0_ruby_2/join_dependency.rb +1 -0
- data/lib/polyamorous/activerecord_7.0_ruby_2/reflection.rb +1 -0
- data/lib/polyamorous/activerecord_7.1_ruby_2/join_association.rb +1 -0
- data/lib/polyamorous/activerecord_7.1_ruby_2/join_dependency.rb +1 -0
- data/lib/polyamorous/activerecord_7.1_ruby_2/reflection.rb +1 -0
- data/{polyamorous/lib → lib/polyamorous}/polyamorous.rb +3 -8
- data/lib/ransack/adapters/active_record/base.rb +83 -10
- data/lib/ransack/adapters/active_record/context.rb +61 -116
- data/lib/ransack/configuration.rb +53 -10
- data/lib/ransack/constants.rb +126 -7
- data/lib/ransack/context.rb +34 -5
- data/lib/ransack/helpers/form_builder.rb +11 -17
- data/lib/ransack/helpers/form_helper.rb +14 -5
- data/lib/ransack/helpers.rb +1 -1
- data/lib/ransack/locale/sk.yml +70 -0
- data/lib/ransack/locale/sv.yml +70 -0
- data/lib/ransack/nodes/attribute.rb +3 -3
- data/lib/ransack/nodes/condition.rb +87 -8
- data/lib/ransack/nodes/grouping.rb +4 -4
- data/lib/ransack/nodes/node.rb +1 -1
- data/lib/ransack/nodes/sort.rb +3 -3
- data/lib/ransack/nodes/value.rb +3 -3
- data/lib/ransack/predicate.rb +3 -2
- data/lib/ransack/ransacker.rb +1 -1
- data/lib/ransack/search.rb +15 -7
- data/lib/ransack/translate.rb +6 -6
- data/lib/ransack/version.rb +1 -1
- data/lib/ransack/visitor.rb +38 -2
- data/lib/ransack.rb +6 -10
- data/ransack.gemspec +9 -24
- data/spec/blueprints/articles.rb +1 -1
- data/spec/blueprints/comments.rb +1 -1
- data/spec/blueprints/notes.rb +1 -1
- data/spec/blueprints/tags.rb +1 -1
- data/spec/console.rb +5 -5
- data/spec/helpers/polyamorous_helper.rb +2 -17
- data/spec/helpers/ransack_helper.rb +1 -1
- data/spec/polyamorous/activerecord_compatibility_spec.rb +15 -0
- data/spec/{ransack → polyamorous}/join_association_spec.rb +3 -1
- data/spec/{ransack → polyamorous}/join_dependency_spec.rb +0 -16
- data/spec/ransack/adapters/active_record/base_spec.rb +125 -16
- data/spec/ransack/adapters/active_record/context_spec.rb +19 -18
- data/spec/ransack/configuration_spec.rb +33 -9
- data/spec/ransack/helpers/form_builder_spec.rb +8 -8
- data/spec/ransack/helpers/form_helper_spec.rb +109 -20
- data/spec/ransack/nodes/condition_spec.rb +37 -0
- data/spec/ransack/nodes/grouping_spec.rb +2 -2
- data/spec/ransack/nodes/value_spec.rb +115 -0
- data/spec/ransack/predicate_spec.rb +75 -2
- data/spec/ransack/search_spec.rb +239 -38
- data/spec/ransack/translate_spec.rb +1 -1
- data/spec/spec_helper.rb +9 -5
- data/spec/support/schema.rb +111 -12
- metadata +105 -195
- data/.travis.yml +0 -49
- data/lib/ransack/adapters/active_record/ransack/constants.rb +0 -116
- data/lib/ransack/adapters/active_record/ransack/context.rb +0 -60
- data/lib/ransack/adapters/active_record/ransack/nodes/condition.rb +0 -61
- data/lib/ransack/adapters/active_record/ransack/translate.rb +0 -8
- data/lib/ransack/adapters/active_record/ransack/visitor.rb +0 -47
- data/lib/ransack/adapters.rb +0 -64
- data/lib/ransack/nodes.rb +0 -8
- data/polyamorous/lib/polyamorous/activerecord_5.0_ruby_2/join_association.rb +0 -2
- data/polyamorous/lib/polyamorous/activerecord_5.0_ruby_2/join_dependency.rb +0 -2
- data/polyamorous/lib/polyamorous/activerecord_5.1_ruby_2/join_association.rb +0 -31
- data/polyamorous/lib/polyamorous/activerecord_5.1_ruby_2/join_dependency.rb +0 -112
- data/polyamorous/lib/polyamorous/activerecord_5.2.0_ruby_2/join_association.rb +0 -31
- data/polyamorous/lib/polyamorous/activerecord_5.2.0_ruby_2/join_dependency.rb +0 -112
- data/polyamorous/lib/polyamorous/activerecord_5.2.0_ruby_2/reflection.rb +0 -12
- data/polyamorous/lib/polyamorous/activerecord_5.2.1_ruby_2/join_association.rb +0 -22
- data/polyamorous/lib/polyamorous/activerecord_5.2.1_ruby_2/join_dependency.rb +0 -81
- data/polyamorous/lib/polyamorous/activerecord_5.2.1_ruby_2/reflection.rb +0 -2
- data/polyamorous/lib/polyamorous/activerecord_6.0_ruby_2/join_association.rb +0 -2
- data/polyamorous/lib/polyamorous/activerecord_6.0_ruby_2/reflection.rb +0 -2
- data/polyamorous/lib/polyamorous/activerecord_6.1_ruby_2/join_association.rb +0 -2
- data/polyamorous/lib/polyamorous/activerecord_6.1_ruby_2/join_dependency.rb +0 -2
- data/polyamorous/lib/polyamorous/activerecord_6.1_ruby_2/reflection.rb +0 -2
- data/polyamorous/lib/polyamorous/version.rb +0 -3
- data/polyamorous/polyamorous.gemspec +0 -35
- /data/{logo → docs/static/logo}/ransack-h.png +0 -0
- /data/{logo → docs/static/logo}/ransack-h.svg +0 -0
- /data/{logo → docs/static/logo}/ransack-v.png +0 -0
- /data/{logo → docs/static/logo}/ransack-v.svg +0 -0
- /data/{logo → docs/static/logo}/ransack.png +0 -0
- /data/{logo → docs/static/logo}/ransack.svg +0 -0
- /data/{polyamorous/lib → lib}/polyamorous/join.rb +0 -0
- /data/{polyamorous/lib → lib}/polyamorous/swapping_reflection_class.rb +0 -0
- /data/{polyamorous/lib → lib}/polyamorous/tree_node.rb +0 -0
- /data/lib/ransack/{adapters/active_record.rb → active_record.rb} +0 -0
- /data/spec/{ransack → polyamorous}/join_spec.rb +0 -0
data/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,268 @@
|
|
|
2
2
|
|
|
3
3
|
## Unreleased
|
|
4
4
|
|
|
5
|
+
## 🚀 Features
|
|
6
|
+
|
|
7
|
+
* Add Rails 7.1.0 support by @yuki24 in https://github.com/activerecord-hackery/ransack/pull/1439
|
|
8
|
+
|
|
9
|
+
## 🐛 Bug Fixes
|
|
10
|
+
|
|
11
|
+
* Fix wrong table aliases in Rails 6.1 by @oneiros in https://github.com/activerecord-hackery/ransack/pull/1447
|
|
12
|
+
|
|
13
|
+
## 💦 Compatibility
|
|
14
|
+
|
|
15
|
+
* Drop Ruby 2.7 support by @deivid-rodriguez in https://github.com/activerecord-hackery/ransack/pull/1449
|
|
16
|
+
|
|
17
|
+
## 📝 Documentation
|
|
18
|
+
|
|
19
|
+
* Update blog post link by @meg-gutshall in https://github.com/activerecord-hackery/ransack/pull/1425
|
|
20
|
+
* Add namespaced example of Polymorphic search by @craigmcnamara in https://github.com/activerecord-hackery/ransack/pull/1422
|
|
21
|
+
* Update sorting example to be self-contained by @kinduff in https://github.com/activerecord-hackery/ransack/pull/1442
|
|
22
|
+
|
|
23
|
+
## 💅 Polish
|
|
24
|
+
|
|
25
|
+
* Minor updates for Rails 7.1 by @deivid-rodriguez in https://github.com/activerecord-hackery/ransack/pull/1448
|
|
26
|
+
* Don't mention Ruby compatibility in contribution instructions by @deivid-rodriguez in https://github.com/activerecord-hackery/ransack/pull/1452
|
|
27
|
+
|
|
28
|
+
## 🏠 Internal
|
|
29
|
+
|
|
30
|
+
* Bump @sideway/formula from 3.0.0 to 3.0.1 in /docs by @dependabot in https://github.com/activerecord-hackery/ransack/pull/1417
|
|
31
|
+
* Bump webpack from 5.74.0 to 5.76.1 in /docs by @dependabot in https://github.com/activerecord-hackery/ransack/pull/1412
|
|
32
|
+
* Bump semver from 5.7.1 to 5.7.2 in /docs by @dependabot in https://github.com/activerecord-hackery/ransack/pull/1431
|
|
33
|
+
* Bump @babel/traverse from 7.18.2 to 7.23.2 in /docs by @dependabot in https://github.com/activerecord-hackery/ransack/pull/1446
|
|
34
|
+
* Bump postcss from 8.4.14 to 8.4.31 in /docs by @dependabot in https://github.com/activerecord-hackery/ransack/pull/1443
|
|
35
|
+
* Bump dns-packet from 5.3.1 to 5.6.1 in /docs by @dependabot in https://github.com/activerecord-hackery/ransack/pull/1450
|
|
36
|
+
* Test with Ruby 3.2 by @deivid-rodriguez in https://github.com/activerecord-hackery/ransack/pull/1451
|
|
37
|
+
* Misc CI bumps by @deivid-rodriguez in https://github.com/activerecord-hackery/ransack/pull/1453
|
|
38
|
+
* RuboCop tweaks by @deivid-rodriguez in https://github.com/activerecord-hackery/ransack/pull/1454
|
|
39
|
+
|
|
40
|
+
## 4.0.0 - 2023-02-09
|
|
41
|
+
|
|
42
|
+
### 💥 Breaking Changes
|
|
43
|
+
|
|
44
|
+
* **[SECURITY]** Require explict allowlisting of attributes and associations by @deivid-rodriguez in https://github.com/activerecord-hackery/ransack/pull/1400
|
|
45
|
+
* Remove Polyamorous entrypoint by @scarroll32 in https://github.com/activerecord-hackery/ransack/pull/1370
|
|
46
|
+
* Remove dead MongoDB code by @scarroll32 in https://github.com/activerecord-hackery/ransack/pull/1345
|
|
47
|
+
|
|
48
|
+
### 🚀 Features
|
|
49
|
+
|
|
50
|
+
* Add support for default predicates by @p8 in https://github.com/activerecord-hackery/ransack/pull/1384
|
|
51
|
+
|
|
52
|
+
### 🐛 Bug Fixes
|
|
53
|
+
|
|
54
|
+
* Ignore `ActiveModel::RangeError` in Ransack conditions by @JunichiIto in https://github.com/activerecord-hackery/ransack/pull/1340
|
|
55
|
+
* Fix crash when using `q=string` as parameter by @stereobooster in https://github.com/activerecord-hackery/ransack/pull/1374
|
|
56
|
+
* Prevent changing host through params by @AndersGM in https://github.com/activerecord-hackery/ransack/pull/1391
|
|
57
|
+
|
|
58
|
+
### 📝 Documentation
|
|
59
|
+
|
|
60
|
+
* Fix broken documentation link by @cpgo in https://github.com/activerecord-hackery/ransack/pull/1332
|
|
61
|
+
* Remove more old wiki references by @deivid-rodriguez in https://github.com/activerecord-hackery/ransack/pull/1333
|
|
62
|
+
* Improve some wording and correct some typos by @ydah in https://github.com/activerecord-hackery/ransack/pull/1336
|
|
63
|
+
* Add warning about necessary authorization by @AmShaegar13 in https://github.com/activerecord-hackery/ransack/pull/1367
|
|
64
|
+
* Fix required Ruby and Rails version in README by @tagliala in https://github.com/activerecord-hackery/ransack/pull/1389
|
|
65
|
+
|
|
66
|
+
### 💅 Polish
|
|
67
|
+
|
|
68
|
+
* Implement CodeQL by @scarroll32 in https://github.com/activerecord-hackery/ransack/pull/1334
|
|
69
|
+
* Code quality improvements by @scarroll32 in https://github.com/activerecord-hackery/ransack/pull/1371
|
|
70
|
+
* Refactor adapters by @scarroll32 in https://github.com/activerecord-hackery/ransack/pull/1348
|
|
71
|
+
* Fix typo: teh -> the by @jdufresne in https://github.com/activerecord-hackery/ransack/pull/1387
|
|
72
|
+
* Fix broken link by @maful in https://github.com/activerecord-hackery/ransack/pull/1394
|
|
73
|
+
|
|
74
|
+
### 🏠 Internal
|
|
75
|
+
|
|
76
|
+
* Bump docusaurus by @deivid-rodriguez in https://github.com/activerecord-hackery/ransack/pull/1338
|
|
77
|
+
* Update dependencies by @scarroll32 in https://github.com/activerecord-hackery/ransack/pull/1342
|
|
78
|
+
* Improve CI by @scarroll32 in https://github.com/activerecord-hackery/ransack/pull/1351
|
|
79
|
+
* Improve CONTRIBUTING.md by @scarroll32 in https://github.com/activerecord-hackery/ransack/pull/1347
|
|
80
|
+
* Add links to GitHub Discussions by @scarroll32 in https://github.com/activerecord-hackery/ransack/pull/1353
|
|
81
|
+
* Bump terser from 5.14.0 to 5.14.2 in /docs by @dependabot in https://github.com/activerecord-hackery/ransack/pull/1355
|
|
82
|
+
* Bump loader-utils from 2.0.2 to 2.0.3 in /docs by @dependabot in https://github.com/activerecord-hackery/ransack/pull/1372
|
|
83
|
+
* Bump loader-utils from 2.0.3 to 2.0.4 in /docs by @dependabot in https://github.com/activerecord-hackery/ransack/pull/1378
|
|
84
|
+
* Upgrade some documentation dependencies by @deivid-rodriguez in https://github.com/activerecord-hackery/ransack/pull/1379
|
|
85
|
+
* Upgrade local search plugin too by @deivid-rodriguez in https://github.com/activerecord-hackery/ransack/pull/1380
|
|
86
|
+
* Bump json5 from 2.2.1 to 2.2.3 in /docs by @dependabot in https://github.com/activerecord-hackery/ransack/pull/1390
|
|
87
|
+
* Bump ua-parser-js from 0.7.31 to 0.7.33 in /docs by @dependabot in https://github.com/activerecord-hackery/ransack/pull/1397
|
|
88
|
+
* Bump some doc deps by @deivid-rodriguez in https://github.com/activerecord-hackery/ransack/pull/1398
|
|
89
|
+
* Bump http-cache-semantics from 4.1.0 to 4.1.1 in /docs by @dependabot in https://github.com/activerecord-hackery/ransack/pull/1401
|
|
90
|
+
|
|
91
|
+
## 3.2.1 - 2022-05-24
|
|
92
|
+
|
|
93
|
+
* Add search functionality to documentation site.
|
|
94
|
+
PR [1329](https://github.com/activerecord-hackery/ransack/pull/1329)
|
|
95
|
+
|
|
96
|
+
* Fix contributing URLs and syntax highlight in `README.md`.
|
|
97
|
+
PR [1326](https://github.com/activerecord-hackery/ransack/pull/1326)
|
|
98
|
+
|
|
99
|
+
* Cast PostgreSQL's `timestamptz` columns to time.
|
|
100
|
+
PR [1325](https://github.com/activerecord-hackery/ransack/pull/1325)
|
|
101
|
+
|
|
102
|
+
* Add Ruby and ERB syntax highlighting support to documentation site.
|
|
103
|
+
PR [1324](https://github.com/activerecord-hackery/ransack/pull/1324)
|
|
104
|
+
|
|
105
|
+
* Fix a wrong link in `CHANGELOG.md`.
|
|
106
|
+
PR [1323](https://github.com/activerecord-hackery/ransack/pull/1323)
|
|
107
|
+
|
|
108
|
+
* Fix links to bug report templates in `CONTRIBUTING.md`.
|
|
109
|
+
PR [1321](https://github.com/activerecord-hackery/ransack/pull/1321)
|
|
110
|
+
|
|
111
|
+
## 3.2.0 - 2022-05-08
|
|
112
|
+
|
|
113
|
+
* Drop Rails 6.0 support.
|
|
114
|
+
PR [1318](https://github.com/activerecord-hackery/ransack/pull/1318)
|
|
115
|
+
|
|
116
|
+
* Exclude "host" from params sent to url generator.
|
|
117
|
+
PR [1317](https://github.com/activerecord-hackery/ransack/pull/1317)
|
|
118
|
+
|
|
119
|
+
## 3.1.0 - 2022-04-21
|
|
120
|
+
|
|
121
|
+
* Fix predicate name in "Using Predicates" documentation page.
|
|
122
|
+
PR [1313](https://github.com/activerecord-hackery/ransack/pull/1313)
|
|
123
|
+
|
|
124
|
+
* Drop Ruby 2.6 support.
|
|
125
|
+
PR [1311](https://github.com/activerecord-hackery/ransack/pull/1311)
|
|
126
|
+
|
|
127
|
+
* Allow Ransack to be used with Rails 7.1.0.alpha.
|
|
128
|
+
PR [1309](https://github.com/activerecord-hackery/ransack/pull/1309)
|
|
129
|
+
|
|
130
|
+
* Put contributor list last in documentation site.
|
|
131
|
+
PR [1308](https://github.com/activerecord-hackery/ransack/pull/1308)
|
|
132
|
+
|
|
133
|
+
* Add `acts-as-taggable-on` and polymorphic searches to documentation.
|
|
134
|
+
PR [1306](https://github.com/activerecord-hackery/ransack/pull/1306)
|
|
135
|
+
PR [1312](https://github.com/activerecord-hackery/ransack/pull/1312)
|
|
136
|
+
|
|
137
|
+
* Add full link to issue about merging searches to documentation.
|
|
138
|
+
PR [1305](https://github.com/activerecord-hackery/ransack/pull/1305)
|
|
139
|
+
|
|
140
|
+
## 3.0.1 - 2022-04-08
|
|
141
|
+
|
|
142
|
+
* Fix `:data` option to `sort_link` being incorrectly appended to the generated
|
|
143
|
+
link query parameters.
|
|
144
|
+
PR [1301](https://github.com/activerecord-hackery/ransack/pull/1301)
|
|
145
|
+
|
|
146
|
+
* Fix "Edit this page" links in documentation site
|
|
147
|
+
PR [1303](https://github.com/activerecord-hackery/ransack/pull/1303)
|
|
148
|
+
|
|
149
|
+
* Auto deploy documentation site after merging PRs
|
|
150
|
+
PR [1302](https://github.com/activerecord-hackery/ransack/pull/1302)
|
|
151
|
+
|
|
152
|
+
* Add list of former wiki contributors to documentation site
|
|
153
|
+
PR [1300](https://github.com/activerecord-hackery/ransack/pull/1300)
|
|
154
|
+
|
|
155
|
+
* Reduce gem package size
|
|
156
|
+
PR [1297](https://github.com/activerecord-hackery/ransack/pull/1297)
|
|
157
|
+
|
|
158
|
+
## 3.0.0 - 2022-03-30
|
|
159
|
+
|
|
160
|
+
* Move documentation into Docusaurus.
|
|
161
|
+
PR [1291](https://github.com/activerecord-hackery/ransack/pull/1291)
|
|
162
|
+
|
|
163
|
+
* [BREAKING CHANGE] Remove deprecated `#search` method.
|
|
164
|
+
PR [1147](https://github.com/activerecord-hackery/ransack/pull/1147)
|
|
165
|
+
|
|
166
|
+
* Allow scopes that define string SQL joins.
|
|
167
|
+
PR [1225](https://github.com/activerecord-hackery/ransack/pull/1225)
|
|
168
|
+
|
|
169
|
+
* Improve `sort_link` documentation.
|
|
170
|
+
PR [1290](https://github.com/activerecord-hackery/ransack/pull/1290)
|
|
171
|
+
|
|
172
|
+
* Deprecate passing two trailing hashes to `sort_link`, for example:
|
|
173
|
+
|
|
174
|
+
```ruby
|
|
175
|
+
sort_link(@q, :bussiness_name, "bussines_name", {}, class: "foo")
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
Pass a single hash with all options instead.
|
|
179
|
+
PR [1289](https://github.com/activerecord-hackery/ransack/pull/1289)
|
|
180
|
+
|
|
181
|
+
* Fix `:class` option to `sort_link` not being passed to the generated link
|
|
182
|
+
correctly when no additional options are passed. For example:
|
|
183
|
+
|
|
184
|
+
```ruby
|
|
185
|
+
sort_link(@q, :bussiness_name, class: "foo")
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
PR [1288](https://github.com/activerecord-hackery/ransack/pull/1288)
|
|
189
|
+
|
|
190
|
+
* Evaluate `ransackable_scopes` before attributes when building the query.
|
|
191
|
+
PR [759](https://github.com/activerecord-hackery/ransack/pull/759)
|
|
192
|
+
|
|
193
|
+
## 2.6.0 - 2022-03-08
|
|
194
|
+
|
|
195
|
+
* Fix regression when joining a table with itself.
|
|
196
|
+
PR [1275](https://github.com/activerecord-hackery/ransack/pull/1276)
|
|
197
|
+
|
|
198
|
+
* Drop support for ActiveRecord older than 6.0.4.
|
|
199
|
+
PR [1276](https://github.com/activerecord-hackery/ransack/pull/1276)
|
|
200
|
+
|
|
201
|
+
## 2.5.0 - 2021-12-26
|
|
202
|
+
|
|
203
|
+
* Document release process by @scarroll32 in https://github.com/activerecord-hackery/ransack/pull/1199, https://github.com/activerecord-hackery/ransack/pull/1200.
|
|
204
|
+
* Support Rails 7 by @yahonda in https://github.com/activerecord-hackery/ransack/pull/1205, https://github.com/activerecord-hackery/ransack/pull/1209, https://github.com/activerecord-hackery/ransack/pull/1234, https://github.com/activerecord-hackery/ransack/pull/1230, https://github.com/activerecord-hackery/ransack/pull/1266
|
|
205
|
+
* Fix for `ActiveRecord::UnknownAttributeReference` in ransack by @TechnologyHypofriend in https://github.com/activerecord-hackery/ransack/pull/1207
|
|
206
|
+
* Make gem compatible with old polyamorous require by @rtweeks in https://github.com/activerecord-hackery/ransack/pull/1145
|
|
207
|
+
* Adding swedish translations by @johanandre in https://github.com/activerecord-hackery/ransack/pull/1208
|
|
208
|
+
* Document how to do case insensitive searches by @scarroll32 in https://github.com/activerecord-hackery/ransack/pull/1213
|
|
209
|
+
* Add the ability to disable whitespace stripping for string searches by @DCrow in https://github.com/activerecord-hackery/ransack/pull/1214
|
|
210
|
+
* Fix `:default` option in `Translate.attribute` method by @coreyaus in https://github.com/activerecord-hackery/ransack/pull/1218
|
|
211
|
+
* Fix typo in README.md by @d-m-u in https://github.com/activerecord-hackery/ransack/pull/1220
|
|
212
|
+
* Fix another typo in README.md by @plan-do-break-fix in https://github.com/activerecord-hackery/ransack/pull/1221
|
|
213
|
+
* Fix several documentation typos @wonda-tea-coffee in https://github.com/activerecord-hackery/ransack/pull/1233
|
|
214
|
+
* Allow ransack to treat nulls as always first or last by @mollerhoj in https://github.com/activerecord-hackery/ransack/pull/1226
|
|
215
|
+
* Consider ransack aliases when sorting by @faragorn and @waldyr in https://github.com/activerecord-hackery/ransack/pull/1223
|
|
216
|
+
* Fix non-casted array predicates by @danielpclark in https://github.com/activerecord-hackery/ransack/pull/1246
|
|
217
|
+
* Remove Squeel references from README by @Schwad in https://github.com/activerecord-hackery/ransack/pull/1249
|
|
218
|
+
* Remove part of the README that might lead to incorrect results by @RadekMolenda in https://github.com/activerecord-hackery/ransack/pull/1258
|
|
219
|
+
* ActiveRecord 7.0 support
|
|
220
|
+
|
|
221
|
+
## 2.4.2 - 2021-01-23
|
|
222
|
+
|
|
223
|
+
* Enable RuboCop and configure GitHub Actions to run RuboCop by @yahonda in https://github.com/activerecord-hackery/ransack/pull/1185
|
|
224
|
+
* Add Ruby 3.0.0 support by @yahonda in https://github.com/activerecord-hackery/ransack/pull/1190
|
|
225
|
+
* Drop Ruby 2.5 or older versions of Ruby by @yahonda in https://github.com/activerecord-hackery/ransack/pull/1189
|
|
226
|
+
* Move bug report templates into ransack repository and run templates at CI by @yahonda in https://github.com/activerecord-hackery/ransack/pull/1191
|
|
227
|
+
* Allow Ransack to be tested with Rails main branch by @yahonda in https://github.com/activerecord-hackery/ransack/pull/1192
|
|
228
|
+
|
|
229
|
+
## 2.4.1 - 2020-12-21
|
|
230
|
+
|
|
231
|
+
* Links to Tidelift subscription by @deivid-rodriguez in https://github.com/activerecord-hackery/ransack/pull/1178
|
|
232
|
+
* Enable GitHub Actions by @yahonda in https://github.com/activerecord-hackery/ransack/pull/1180
|
|
233
|
+
* Move security contact information to SECURITY.md by @deivid-rodriguez in https://github.com/activerecord-hackery/ransack/pull/1179
|
|
234
|
+
* Add `ActiveRecord::Base.ransack!` which raises error if passed unknown condition by @alipman88 in https://github.com/activerecord-hackery/ransack/pull/1132
|
|
235
|
+
* Add ability to config PostgreSQL ORDER BY ... NULLS FIRST or NULLS LAST by @itsalongstory in https://github.com/activerecord-hackery/ransack/pull/1184
|
|
236
|
+
|
|
237
|
+
## 2.4.0 - 2020-11-27
|
|
238
|
+
|
|
239
|
+
* Specify actual version of polyamorous, so we can release that separately by @gregmolnar in https://github.com/activerecord-hackery/ransack/pull/1101
|
|
240
|
+
* Only include necessary files in gem package by @tvdeyen in https://github.com/activerecord-hackery/ransack/pull/1104
|
|
241
|
+
* Test/Fix for subquery in Rails 5.2.4 by @stevenjonescgm in https://github.com/activerecord-hackery/ransack/pull/1112
|
|
242
|
+
* Polyamorous module by @varyonic in https://github.com/activerecord-hackery/ransack/pull/1113
|
|
243
|
+
* Remove duplicated rows by @sasharevzin in https://github.com/activerecord-hackery/ransack/pull/1116
|
|
244
|
+
* Fix Ruby 2.7 deprecation warnings by @terracatta in https://github.com/activerecord-hackery/ransack/pull/1121
|
|
245
|
+
* Fixes polymorphic joins. by @PhilCoggins in https://github.com/activerecord-hackery/ransack/pull/1122
|
|
246
|
+
* Drop support for activerecord older than 5.2.4 by @deivid-rodriguez in https://github.com/activerecord-hackery/ransack/pull/1166
|
|
247
|
+
* Adapt to quoting change in Rails by @deivid-rodriguez in https://github.com/activerecord-hackery/ransack/pull/1165
|
|
248
|
+
* Typo in docs by @brett-anderson in https://github.com/activerecord-hackery/ransack/pull/1155
|
|
249
|
+
* Add Rails 6.1 support by @deivid-rodriguez in https://github.com/activerecord-hackery/ransack/pull/1172
|
|
250
|
+
* Strip Leading & Trailing Whitespace Before Searching by @itsalongstory in https://github.com/activerecord-hackery/ransack/pull/1126
|
|
251
|
+
* Use unfrozen version of symbol to string by @fauno in https://github.com/activerecord-hackery/ransack/pull/1149
|
|
252
|
+
|
|
253
|
+
## 2.3.2 - 2020-01-11
|
|
254
|
+
|
|
255
|
+
* Breakfix to bump Polyamorous
|
|
256
|
+
|
|
257
|
+
## 2.3.1 - 2020-01-11
|
|
258
|
+
|
|
259
|
+
* Drop support for Active Record 5.0, 5.1, and 5.2.0.
|
|
260
|
+
PR [#1073](https://github.com/activerecord-hackery/ransack/pull/1073)
|
|
261
|
+
|
|
262
|
+
* Drop support for rubies under 2.3.
|
|
263
|
+
PR [#1070](https://github.com/activerecord-hackery/ransack/pull/1070)
|
|
264
|
+
|
|
265
|
+
... and others
|
|
266
|
+
|
|
5
267
|
## 2.3.0 - 2019-08-18
|
|
6
268
|
|
|
7
269
|
* Arabic translations PR [979](https://github.com/activerecord-hackery/ransack/pull/979)
|
|
@@ -170,7 +432,7 @@
|
|
|
170
432
|
ignored when block parameter is specified.
|
|
171
433
|
PR [#818](https://github.com/activerecord-hackery/ransack/pull/818).
|
|
172
434
|
|
|
173
|
-
* No need pass some
|
|
435
|
+
* No need pass some arguments to JoinAssociation#join_constraints in Rails 5.1.
|
|
174
436
|
PR [#814](https://github.com/activerecord-hackery/ransack/pull/814).
|
|
175
437
|
Fixes [#807](https://github.com/activerecord-hackery/ransack/issues/807).
|
|
176
438
|
Reference [rails/rails#28267](https://github.com/rails/rails/pull/28267)
|
data/CONTRIBUTING.md
CHANGED
|
@@ -20,14 +20,14 @@ Steps:
|
|
|
20
20
|
reported.
|
|
21
21
|
|
|
22
22
|
2. **Check if the issue has been fixed** — try to reproduce it using the
|
|
23
|
-
`
|
|
23
|
+
`main` branch in the repository.
|
|
24
24
|
|
|
25
25
|
3. **Isolate the real problem** — make sure the issue is really a bug in
|
|
26
26
|
Ransack and not in your code or another gem.
|
|
27
27
|
|
|
28
28
|
4. **Report the issue** by providing the link to a self-contained
|
|
29
|
-
gist like [this](https://
|
|
30
|
-
[this](https://
|
|
29
|
+
gist like [this](https://github.com/activerecord-hackery/ransack/blob/main/bug_report_templates/test-ransack-scope-and-column-same-name.rb) or
|
|
30
|
+
[this](https://github.com/activerecord-hackery/ransack/blob/main/bug_report_templates/test-ransacker-arel-present-predicate.rb). Please use
|
|
31
31
|
these code examples as a bug-report template for your Ransack issue!
|
|
32
32
|
|
|
33
33
|
If you do not provide a self-contained gist and would like your issue to be reviewed, do provide at a minimum:
|
|
@@ -64,63 +64,85 @@ Here's a quick guide:
|
|
|
64
64
|
2. Create a thoughtfully-named branch for your changes (`git checkout -b my-new-feature`).
|
|
65
65
|
|
|
66
66
|
3. Install the development dependencies by running `bundle install`.
|
|
67
|
+
To install rails other than latest (set in Gemfile): `RAILS='6-1-stable' bundle install`
|
|
67
68
|
|
|
68
69
|
4. Begin by running the tests. We only take pull requests with passing tests,
|
|
69
70
|
and it's great to know that you have a clean slate:
|
|
70
71
|
|
|
71
|
-
|
|
72
|
+
```sh
|
|
73
|
+
bundle exec rake spec
|
|
74
|
+
```
|
|
72
75
|
|
|
73
76
|
The test suite runs by default with SQLite3. To run the test suite with PostgreSQL or MySQL, use:
|
|
74
77
|
|
|
75
|
-
|
|
76
|
-
|
|
78
|
+
```sh
|
|
79
|
+
DB=pg bundle exec rake spec
|
|
80
|
+
DB=mysql bundle exec rake spec
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
A one-liner to run all three
|
|
84
|
+
|
|
85
|
+
```sh
|
|
86
|
+
bundle exec rake spec && DB=pg bundle exec rake spec && DB=mysql bundle exec rake spec
|
|
87
|
+
```
|
|
77
88
|
|
|
78
89
|
For Postgres and MySQL, databases are expected to exist, called 'ransack'. To create use these commands (assuming OS X and Homebrew):
|
|
79
90
|
|
|
80
91
|
### Postgres
|
|
81
|
-
|
|
92
|
+
|
|
93
|
+
```sh
|
|
94
|
+
createdb ransack
|
|
95
|
+
```
|
|
82
96
|
|
|
83
97
|
### MySQL
|
|
84
|
-
|
|
85
|
-
|
|
98
|
+
|
|
99
|
+
```sh
|
|
100
|
+
mysql -u root
|
|
101
|
+
mysql> create database ransack;
|
|
102
|
+
```
|
|
86
103
|
|
|
87
|
-
|
|
104
|
+
The test suite runs by default
|
|
88
105
|
|
|
89
|
-
|
|
106
|
+
To run only the tests in a particular file: `bundle exec rspec <path/to/filename>`
|
|
90
107
|
|
|
91
|
-
|
|
108
|
+
```sh
|
|
109
|
+
bundle exec rspec spec/ransack/search_spec.rb
|
|
110
|
+
```
|
|
92
111
|
|
|
93
|
-
|
|
112
|
+
To run a single test in that file: `bundle exec rspec <path/to/filename> -e "test name"`
|
|
94
113
|
|
|
95
|
-
|
|
96
|
-
|
|
114
|
+
```sh
|
|
115
|
+
bundle exec rspec spec/ransack/search_spec.rb -e "accepts a context option"
|
|
116
|
+
```
|
|
97
117
|
|
|
98
|
-
|
|
118
|
+
5. Add tests for your changes. Only refactoring and documentation changes
|
|
99
119
|
require no new tests. If you are adding functionality or fixing a bug, we
|
|
100
120
|
need a test!
|
|
101
121
|
|
|
102
|
-
|
|
122
|
+
6. Make the tests pass.
|
|
103
123
|
|
|
104
|
-
|
|
124
|
+
7. Update the Change Log. If you are adding new functionality, document it in
|
|
105
125
|
the README.
|
|
106
126
|
|
|
107
|
-
|
|
127
|
+
8. Make sure git knows your name and email address in your `~/.gitconfig` file:
|
|
108
128
|
|
|
109
|
-
|
|
110
|
-
|
|
129
|
+
```sh
|
|
130
|
+
git config --global user.name "Your Name"
|
|
131
|
+
git config --global user.email "contributor@example.com"
|
|
132
|
+
```
|
|
111
133
|
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
134
|
+
9. Commit your changes (`git commit -am 'Add feature/fix bug/improve docs'`).
|
|
135
|
+
If your pull request only contains documentation changes, please remember
|
|
136
|
+
to add `[skip ci]` to the beginning of your commit message so the CI
|
|
137
|
+
test suite doesn't :runner: needlessly.
|
|
116
138
|
|
|
117
|
-
|
|
139
|
+
10. If necessary, rebase your commits into logical chunks, without errors. To
|
|
118
140
|
interactively rebase and cherry-pick from, say, the last 10 commits:
|
|
119
141
|
`git rebase -i HEAD~10`, then `git push -f`.
|
|
120
142
|
|
|
121
|
-
|
|
143
|
+
11. Push the branch up to your fork on GitHub
|
|
122
144
|
(`git push origin my-new-feature`) and from GitHub submit a pull request to
|
|
123
|
-
Ransack's `
|
|
145
|
+
Ransack's `main` branch.
|
|
124
146
|
|
|
125
147
|
At this point you're waiting on us. We like to at least comment on, if not
|
|
126
148
|
accept, pull requests within three business days (and, typically, one business
|
|
@@ -129,7 +151,7 @@ day). We may suggest some changes or improvements or alternatives.
|
|
|
129
151
|
Some things that will increase the chance that your pull request is accepted:
|
|
130
152
|
|
|
131
153
|
* Include tests that fail without your code, and pass with it.
|
|
132
|
-
* Update the README, the change log, the
|
|
154
|
+
* Update the README, the change log, the documentation... anything that is
|
|
133
155
|
affected by your contribution.
|
|
134
156
|
* Use idiomatic Ruby and follow the syntax conventions below.
|
|
135
157
|
|
data/Gemfile
CHANGED
|
@@ -3,37 +3,51 @@ gemspec
|
|
|
3
3
|
|
|
4
4
|
gem 'rake'
|
|
5
5
|
|
|
6
|
-
rails = ENV['RAILS'] || '
|
|
6
|
+
rails = ENV['RAILS'] || '7-1-stable'
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
rails_version = case rails
|
|
9
|
+
when /\// # A path
|
|
10
|
+
File.read(File.join(rails, "RAILS_VERSION"))
|
|
11
|
+
when /^v/ # A tagged version
|
|
12
|
+
rails.gsub(/^v/, '')
|
|
13
|
+
else
|
|
14
|
+
rails
|
|
15
|
+
end
|
|
9
16
|
|
|
10
|
-
|
|
11
|
-
gem '
|
|
17
|
+
gem 'faker'
|
|
18
|
+
gem 'sqlite3'
|
|
19
|
+
gem 'pg'
|
|
20
|
+
gem 'pry'
|
|
21
|
+
gem 'byebug'
|
|
12
22
|
|
|
13
23
|
case rails
|
|
14
24
|
when /\// # A path
|
|
15
25
|
gem 'activesupport', path: "#{rails}/activesupport"
|
|
26
|
+
gem 'activemodel', path: "#{rails}/activemodel"
|
|
16
27
|
gem 'activerecord', path: "#{rails}/activerecord", require: false
|
|
17
28
|
gem 'actionpack', path: "#{rails}/actionpack"
|
|
29
|
+
gem 'actionview', path: "#{rails}/actionview"
|
|
18
30
|
when /^v/ # A tagged version
|
|
19
|
-
git 'https://github.com/rails/rails.git', :
|
|
31
|
+
git 'https://github.com/rails/rails.git', tag: rails do
|
|
20
32
|
gem 'activesupport'
|
|
21
33
|
gem 'activemodel'
|
|
22
34
|
gem 'activerecord', require: false
|
|
23
35
|
gem 'actionpack'
|
|
24
36
|
end
|
|
25
37
|
else
|
|
26
|
-
git 'https://github.com/rails/rails.git', :
|
|
38
|
+
git 'https://github.com/rails/rails.git', branch: rails do
|
|
27
39
|
gem 'activesupport'
|
|
28
40
|
gem 'activemodel'
|
|
29
41
|
gem 'activerecord', require: false
|
|
30
42
|
gem 'actionpack'
|
|
31
43
|
end
|
|
32
44
|
end
|
|
33
|
-
gem 'mysql2'
|
|
45
|
+
gem 'mysql2'
|
|
34
46
|
|
|
35
47
|
group :test do
|
|
36
|
-
|
|
37
|
-
gem '
|
|
38
|
-
gem 'simplecov', :
|
|
48
|
+
gem 'machinist', '~> 1.0.6'
|
|
49
|
+
gem 'rspec'
|
|
50
|
+
gem 'simplecov', require: false
|
|
39
51
|
end
|
|
52
|
+
|
|
53
|
+
gem 'rubocop', require: false
|