ransack 1.8.4 → 3.2.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.github/FUNDING.yml +3 -0
- data/.github/SECURITY.md +12 -0
- data/.github/workflows/cronjob.yml +102 -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 +130 -0
- data/.gitignore +3 -0
- data/{lib/ransack/adapters/mongoid/3.2/.gitkeep → .nojekyll} +0 -0
- data/.rubocop.yml +44 -0
- data/CHANGELOG.md +352 -0
- data/CONTRIBUTING.md +25 -13
- data/Gemfile +26 -27
- data/README.md +65 -815
- data/Rakefile +1 -22
- data/bug_report_templates/test-ransack-scope-and-column-same-name.rb +78 -0
- data/bug_report_templates/test-ransacker-arel-present-predicate.rb +71 -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 +284 -0
- data/docs/docs/getting-started/sorting.md +79 -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 +40 -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 +38 -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/static/logo/ransack-h.png +0 -0
- data/docs/static/logo/ransack-h.svg +34 -0
- data/docs/static/logo/ransack-v.png +0 -0
- data/docs/static/logo/ransack-v.svg +34 -0
- data/docs/static/logo/ransack.png +0 -0
- data/docs/static/logo/ransack.svg +21 -0
- data/docs/yarn.lock +8436 -0
- data/lib/polyamorous/activerecord_6.1_ruby_2/join_association.rb +70 -0
- data/lib/polyamorous/activerecord_6.1_ruby_2/join_dependency.rb +92 -0
- 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/lib/polyamorous/join.rb +70 -0
- data/lib/polyamorous/polyamorous.rb +24 -0
- data/lib/polyamorous/swapping_reflection_class.rb +11 -0
- data/lib/polyamorous/tree_node.rb +7 -0
- data/lib/polyamorous.rb +1 -0
- data/lib/ransack/adapters/active_record/base.rb +14 -3
- data/lib/ransack/adapters/active_record/context.rb +140 -196
- data/lib/ransack/adapters/active_record/ransack/constants.rb +19 -4
- data/lib/ransack/adapters/active_record/ransack/context.rb +9 -19
- data/lib/ransack/adapters/active_record/ransack/nodes/condition.rb +7 -7
- data/lib/ransack/adapters/active_record/ransack/translate.rb +1 -5
- data/lib/ransack/adapters/active_record/ransack/visitor.rb +23 -0
- data/lib/ransack/adapters/active_record.rb +0 -9
- data/lib/ransack/adapters.rb +2 -0
- data/lib/ransack/configuration.rb +52 -2
- data/lib/ransack/constants.rb +1 -5
- data/lib/ransack/context.rb +29 -24
- data/lib/ransack/helpers/form_builder.rb +12 -6
- data/lib/ransack/helpers/form_helper.rb +11 -3
- data/lib/ransack/helpers.rb +1 -1
- data/lib/ransack/locale/ar.yml +70 -0
- data/lib/ransack/locale/az.yml +70 -0
- data/lib/ransack/locale/bg.yml +70 -0
- data/lib/ransack/locale/ca.yml +70 -0
- data/lib/ransack/locale/el.yml +70 -0
- data/lib/ransack/locale/es.yml +22 -22
- data/lib/ransack/locale/fa.yml +70 -0
- data/lib/ransack/locale/fi.yml +71 -0
- data/lib/ransack/locale/nl.yml +4 -4
- data/lib/ransack/locale/ru.yml +70 -0
- data/lib/ransack/locale/sk.yml +70 -0
- data/lib/ransack/locale/sv.yml +70 -0
- data/lib/ransack/locale/tr.yml +70 -0
- data/lib/ransack/locale/zh-CN.yml +12 -12
- data/lib/ransack/nodes/attribute.rb +2 -2
- data/lib/ransack/nodes/condition.rb +7 -1
- data/lib/ransack/nodes/grouping.rb +3 -8
- data/lib/ransack/nodes/sort.rb +3 -3
- data/lib/ransack/nodes/value.rb +3 -3
- data/lib/ransack/predicate.rb +13 -20
- data/lib/ransack/search.rb +7 -4
- data/lib/ransack/translate.rb +115 -115
- data/lib/ransack/version.rb +1 -1
- data/lib/ransack/visitor.rb +1 -12
- data/lib/ransack.rb +7 -5
- data/ransack.gemspec +9 -25
- 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 +13 -0
- data/spec/helpers/ransack_helper.rb +1 -1
- data/spec/polyamorous/activerecord_compatibility_spec.rb +15 -0
- data/spec/polyamorous/join_association_spec.rb +30 -0
- data/spec/polyamorous/join_dependency_spec.rb +81 -0
- data/spec/polyamorous/join_spec.rb +19 -0
- data/spec/ransack/adapters/active_record/base_spec.rb +105 -11
- data/spec/ransack/adapters/active_record/context_spec.rb +63 -24
- data/spec/ransack/configuration_spec.rb +24 -0
- data/spec/ransack/helpers/form_builder_spec.rb +3 -15
- data/spec/ransack/helpers/form_helper_spec.rb +135 -168
- data/spec/ransack/nodes/condition_spec.rb +13 -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 +54 -2
- data/spec/ransack/search_spec.rb +266 -36
- data/spec/spec_helper.rb +14 -5
- data/spec/support/schema.rb +99 -21
- metadata +117 -187
- data/.travis.yml +0 -86
- data/lib/ransack/adapters/active_record/3.0/compat.rb +0 -179
- data/lib/ransack/adapters/active_record/3.0/context.rb +0 -203
- data/lib/ransack/adapters/active_record/3.1/context.rb +0 -212
- data/lib/ransack/adapters/active_record/3.2/context.rb +0 -44
- data/lib/ransack/adapters/active_record/compat.rb +0 -14
- data/lib/ransack/adapters/mongoid/attributes/attribute.rb +0 -37
- data/lib/ransack/adapters/mongoid/attributes/order_predications.rb +0 -17
- data/lib/ransack/adapters/mongoid/attributes/predications.rb +0 -141
- data/lib/ransack/adapters/mongoid/base.rb +0 -134
- data/lib/ransack/adapters/mongoid/context.rb +0 -212
- data/lib/ransack/adapters/mongoid/inquiry_hash.rb +0 -23
- data/lib/ransack/adapters/mongoid/ransack/constants.rb +0 -88
- data/lib/ransack/adapters/mongoid/ransack/context.rb +0 -60
- data/lib/ransack/adapters/mongoid/ransack/nodes/condition.rb +0 -27
- data/lib/ransack/adapters/mongoid/ransack/translate.rb +0 -13
- data/lib/ransack/adapters/mongoid/ransack/visitor.rb +0 -24
- data/lib/ransack/adapters/mongoid/table.rb +0 -35
- data/lib/ransack/adapters/mongoid.rb +0 -15
- data/spec/mongoid/adapters/mongoid/base_spec.rb +0 -314
- data/spec/mongoid/adapters/mongoid/context_spec.rb +0 -56
- data/spec/mongoid/configuration_spec.rb +0 -162
- data/spec/mongoid/dependencies_spec.rb +0 -8
- data/spec/mongoid/helpers/ransack_helper.rb +0 -11
- data/spec/mongoid/nodes/condition_spec.rb +0 -49
- data/spec/mongoid/nodes/grouping_spec.rb +0 -13
- data/spec/mongoid/predicate_spec.rb +0 -155
- data/spec/mongoid/search_spec.rb +0 -445
- data/spec/mongoid/support/mongoid.yml +0 -11
- data/spec/mongoid/support/schema.rb +0 -135
- data/spec/mongoid/translate_spec.rb +0 -14
- data/spec/mongoid_spec_helper.rb +0 -63
- data/spec/ransack/dependencies_spec.rb +0 -12
data/lib/ransack/locale/es.yml
CHANGED
@@ -6,11 +6,11 @@ es:
|
|
6
6
|
or: "o"
|
7
7
|
any: "cualquier"
|
8
8
|
all: "todos"
|
9
|
-
combinator: "
|
9
|
+
combinator: "combinador"
|
10
10
|
attribute: "atributo"
|
11
11
|
value: "valor"
|
12
12
|
condition: "condición"
|
13
|
-
sort: "
|
13
|
+
sort: "ordenar"
|
14
14
|
asc: "ascendente"
|
15
15
|
desc: "descendente"
|
16
16
|
predicates:
|
@@ -19,12 +19,12 @@ es:
|
|
19
19
|
eq_all: "es igual a todos"
|
20
20
|
not_eq: "no es igual a"
|
21
21
|
not_eq_any: "no es igual a cualquier"
|
22
|
-
not_eq_all: "no es
|
23
|
-
matches: "
|
24
|
-
matches_any: "
|
25
|
-
matches_all: "
|
26
|
-
does_not_match: "no coincide"
|
27
|
-
does_not_match_any: "no coincide con
|
22
|
+
not_eq_all: "no es igual a todos"
|
23
|
+
matches: "coincide con"
|
24
|
+
matches_any: "coincide con cualquier"
|
25
|
+
matches_all: "coincide con todos"
|
26
|
+
does_not_match: "no coincide con"
|
27
|
+
does_not_match_any: "no coincide con ninguno"
|
28
28
|
does_not_match_all: "no coincide con todos"
|
29
29
|
lt: "menor que"
|
30
30
|
lt_any: "menor que cualquier"
|
@@ -48,23 +48,23 @@ es:
|
|
48
48
|
cont_any: "contiene cualquier"
|
49
49
|
cont_all: "contiene todos"
|
50
50
|
not_cont: "no contiene"
|
51
|
-
not_cont_any: "no contiene
|
52
|
-
not_cont_all: "no contiene
|
51
|
+
not_cont_any: "no contiene ninguno"
|
52
|
+
not_cont_all: "no contiene todos"
|
53
53
|
start: "comienza con"
|
54
54
|
start_any: "comienza con cualquier"
|
55
|
-
start_all: "comienza con
|
56
|
-
not_start: "no
|
55
|
+
start_all: "comienza con todos"
|
56
|
+
not_start: "no comienza con"
|
57
57
|
not_start_any: "no comienza con cualquier"
|
58
|
-
not_start_all: "no
|
59
|
-
end: "termina
|
60
|
-
end_any: "termina
|
61
|
-
end_all: "termina
|
62
|
-
not_end: "no termina
|
63
|
-
not_end_any: "no termina
|
64
|
-
not_end_all: "no termina
|
58
|
+
not_start_all: "no comienza con todos"
|
59
|
+
end: "termina en"
|
60
|
+
end_any: "termina en cualquier"
|
61
|
+
end_all: "termina en todos"
|
62
|
+
not_end: "no termina en"
|
63
|
+
not_end_any: "no termina en cualquier"
|
64
|
+
not_end_all: "no termina en todos"
|
65
65
|
'true': "es verdadero"
|
66
66
|
'false': "es falso"
|
67
|
-
present: "
|
67
|
+
present: "está presente"
|
68
68
|
blank: "está en blanco"
|
69
|
-
'null': "es
|
70
|
-
not_null: "no es
|
69
|
+
'null': "es nulo"
|
70
|
+
not_null: "no es nulo"
|
@@ -0,0 +1,70 @@
|
|
1
|
+
fa:
|
2
|
+
ransack:
|
3
|
+
search: "جستجو"
|
4
|
+
predicate: "پیش فرض"
|
5
|
+
and: "و"
|
6
|
+
or: "یا"
|
7
|
+
any: "هر کدام"
|
8
|
+
all: "همه"
|
9
|
+
combinator: "ترکیب کننده"
|
10
|
+
attribute: "ویژگی"
|
11
|
+
value: "مقدار"
|
12
|
+
condition: "شرایط"
|
13
|
+
sort: "مرتب سازی"
|
14
|
+
asc: "صعودی"
|
15
|
+
desc: "نزولی"
|
16
|
+
predicates:
|
17
|
+
eq: "مساوی با"
|
18
|
+
eq_any: "مساوی با حداقل یکی"
|
19
|
+
eq_all: "مساوی با همه"
|
20
|
+
not_eq: "غیر مساوی با"
|
21
|
+
not_eq_any: "غیر مساوی با هیچ کدام"
|
22
|
+
not_eq_all: "غیر مساوی با همه"
|
23
|
+
matches: "مشابهات"
|
24
|
+
matches_any: "شبیه حداقل یکی"
|
25
|
+
matches_all: "شبیه همه"
|
26
|
+
does_not_match: "بدون شباهت"
|
27
|
+
does_not_match_any: "شبیه یکی هم نیست"
|
28
|
+
does_not_match_all: "شبیه هیچ کدام نیست"
|
29
|
+
lt: "کمتر از"
|
30
|
+
lt_any: "کمتر از حداقل یکی"
|
31
|
+
lt_all: "کمتر از همه"
|
32
|
+
lteq: "کمتر یا مساوی با"
|
33
|
+
lteq_any: "کمتر یا مساوی با حداقل یکی"
|
34
|
+
lteq_all: "کمتر یا مساوی با همه"
|
35
|
+
gt: "بیشتر از"
|
36
|
+
gt_any: "بیشتر از حداقل یکی"
|
37
|
+
gt_all: "بیشتر از همه"
|
38
|
+
gteq: "بیشتر یا مساوی با"
|
39
|
+
gteq_any: "بیشتر یا مساوی با حداقل یکی"
|
40
|
+
gteq_all: "بیشتر یا مساوی با همه"
|
41
|
+
in: "در"
|
42
|
+
in_any: "در حداقل یکی"
|
43
|
+
in_all: "در همه"
|
44
|
+
not_in: "نه در"
|
45
|
+
not_in_any: "نه حتی در یکی"
|
46
|
+
not_in_all: "در هیچ کدام"
|
47
|
+
cont: "حاوی"
|
48
|
+
cont_any: "حاوی حداقل یکی"
|
49
|
+
cont_all: "حاوی همه"
|
50
|
+
not_cont: "حاوی این نمیشود"
|
51
|
+
not_cont_any: "حاوی حتی یکی هم نمیشود"
|
52
|
+
not_cont_all: "حاوی هیچ کدام نمیشود"
|
53
|
+
start: "شروع می شود با"
|
54
|
+
start_any: "شروع می شود با حداقل یکی"
|
55
|
+
start_all: "شروع می شود با همه"
|
56
|
+
not_start: "شروع نمی شود با"
|
57
|
+
not_start_any: "شروع نمی شود با حتی یکی"
|
58
|
+
not_start_all: "شروع نمی شود با هیچ کدام"
|
59
|
+
end: "به پایان می رسد با"
|
60
|
+
end_any: "به پایان می رسد با حداقل یکی"
|
61
|
+
end_all: "به پایان می رسد با همه"
|
62
|
+
not_end: "پایان نمی یابد با"
|
63
|
+
not_end_any: "پایان نمی یابد با حتی یکی"
|
64
|
+
not_end_all: "پایان نمی یابد با هیچ کدام"
|
65
|
+
'true': "درست است"
|
66
|
+
'false': "نادرست است"
|
67
|
+
present: "موجود است"
|
68
|
+
blank: "خالی است"
|
69
|
+
'null': "صفر است"
|
70
|
+
not_null: "صفر نیست"
|
@@ -0,0 +1,71 @@
|
|
1
|
+
fi:
|
2
|
+
ransack:
|
3
|
+
search: "haku"
|
4
|
+
predicate: "predikaatti"
|
5
|
+
and: "ja"
|
6
|
+
or: "tai"
|
7
|
+
any: "jokin"
|
8
|
+
all: "kaikki"
|
9
|
+
combinator: "kombinaattori"
|
10
|
+
attribute: "attribuutti"
|
11
|
+
value: "arvo"
|
12
|
+
condition: "ehto"
|
13
|
+
sort: "järjestys"
|
14
|
+
asc: "nouseva"
|
15
|
+
desc: "laskeva"
|
16
|
+
predicates:
|
17
|
+
eq: "sama kuin"
|
18
|
+
eq_any: "sama kuin jokin"
|
19
|
+
eq_all: "sama kuin kaikki"
|
20
|
+
not_eq: "eri kuin"
|
21
|
+
not_eq_any: "eri kuin jokin"
|
22
|
+
not_eq_all: "eri kuin kaikki"
|
23
|
+
matches: "täsmää"
|
24
|
+
matches_any: "täsmää jonkun kanssa"
|
25
|
+
matches_all: "täsmää kaikkien kanssa"
|
26
|
+
does_not_match: "ei täsmää"
|
27
|
+
does_not_match_any: "ei täsmää minkään kanssa"
|
28
|
+
does_not_match_all: "ei täsmää kaikkien kanssa"
|
29
|
+
lt: "vähemmän kuin"
|
30
|
+
lt_any: "vähemmän kuin jokin"
|
31
|
+
lt_all: "vähemmän kuin mikään"
|
32
|
+
lteq: "vähemmän tai sama kuin"
|
33
|
+
lteq_any: "vähemmän tai sama kuin jokin"
|
34
|
+
lteq_all: "vähemmän tai sama kuin mikään"
|
35
|
+
gt: "suurempi kuin"
|
36
|
+
gt_any: "suurempi kuin jokin"
|
37
|
+
gt_all: "suurempi kuin mikään"
|
38
|
+
gteq: "suurempi tai yhtä suuri kuin"
|
39
|
+
gteq_any: "suurempi tai yhtä suuri kuin jokin"
|
40
|
+
gteq_all: "suurempi tai yhtä suuri kuin mikään"
|
41
|
+
in: "kohteessa"
|
42
|
+
in_any: "jossakin kohteessa"
|
43
|
+
in_all: "kaikissa kohteissa"
|
44
|
+
not_in: "ei kohteessa"
|
45
|
+
not_in_any: "ei jossakin kohteista"
|
46
|
+
not_in_all: "ei missään kohteista"
|
47
|
+
cont: "sisältää"
|
48
|
+
cont_any: "sisältää jonkin"
|
49
|
+
cont_all: "sisältää kaikki"
|
50
|
+
not_cont: "ei sisällä"
|
51
|
+
not_cont_any: "ei sisällä jotakin"
|
52
|
+
not_cont_all: "ei sisällä mitään"
|
53
|
+
start: "alkaa"
|
54
|
+
start_any: "alkaa jollakin"
|
55
|
+
start_all: "alkaa kaikilla"
|
56
|
+
not_start: "ei ala"
|
57
|
+
not_start_any: "ei ala jollakin"
|
58
|
+
not_start_all: "ei ala millään"
|
59
|
+
end: "päättyy"
|
60
|
+
end_any: "päättyy jollakin"
|
61
|
+
end_all: "päättyy millään"
|
62
|
+
not_end: "ei pääty"
|
63
|
+
not_end_any: "ei pääty jollakin"
|
64
|
+
not_end_all: "ei pääty millään"
|
65
|
+
'true': "on tosi"
|
66
|
+
'false': "ei ole tosi"
|
67
|
+
present: "on läsnä"
|
68
|
+
blank: "on tyhjä"
|
69
|
+
'null': "on määrittämätön"
|
70
|
+
not_null: "on määritetty"
|
71
|
+
|
data/lib/ransack/locale/nl.yml
CHANGED
@@ -35,9 +35,9 @@ nl:
|
|
35
35
|
gt: "groter dan"
|
36
36
|
gt_any: "groter dan enig"
|
37
37
|
gt_all: "groter dan alle"
|
38
|
-
gteq: "groter dan
|
39
|
-
gteq_any: "groter dan
|
40
|
-
gteq_all: "groter dan
|
38
|
+
gteq: "groter dan of gelijk aan"
|
39
|
+
gteq_any: "groter dan of gelijk aan enig"
|
40
|
+
gteq_all: "groter dan of gelijk aan alle"
|
41
41
|
in: "in"
|
42
42
|
in_any: "in enig"
|
43
43
|
in_all: "in alle"
|
@@ -64,7 +64,7 @@ nl:
|
|
64
64
|
not_end_all: "eindigt niet met alle"
|
65
65
|
'true': "is waar"
|
66
66
|
'false': "is niet waar"
|
67
|
-
present: "is
|
67
|
+
present: "is aanwezig"
|
68
68
|
blank: "is afwezig"
|
69
69
|
'null': "is null"
|
70
70
|
not_null: "is niet null"
|
@@ -0,0 +1,70 @@
|
|
1
|
+
ru:
|
2
|
+
ransack:
|
3
|
+
search: "Поиск"
|
4
|
+
predicate: "predicate"
|
5
|
+
and: "и"
|
6
|
+
or: "или"
|
7
|
+
any: "любое"
|
8
|
+
all: "все"
|
9
|
+
combinator: "combinator"
|
10
|
+
attribute: "аттрибут"
|
11
|
+
value: "значение"
|
12
|
+
condition: "условие"
|
13
|
+
sort: "сортировка"
|
14
|
+
asc: "по возрастанию"
|
15
|
+
desc: "по убыванию"
|
16
|
+
predicates:
|
17
|
+
eq: "равный"
|
18
|
+
eq_any: "равный любому"
|
19
|
+
eq_all: "равный всем"
|
20
|
+
not_eq: "не равный любому"
|
21
|
+
not_eq_any: "не равный любому"
|
22
|
+
not_eq_all: "не равный всем"
|
23
|
+
matches: "совпадение"
|
24
|
+
matches_any: "совпадение любому"
|
25
|
+
matches_all: "совпадение всем"
|
26
|
+
does_not_match: "не совпадение"
|
27
|
+
does_not_match_any: "не совпадение любому"
|
28
|
+
does_not_match_all: "не совпадение всем"
|
29
|
+
lt: "меньше чем"
|
30
|
+
lt_any: "меньше чем любое"
|
31
|
+
lt_all: "меньше чем все"
|
32
|
+
lteq: "меньше чем или равен"
|
33
|
+
lteq_any: "меньше чем или равен любому"
|
34
|
+
lteq_all: "меньше чем или равен всем"
|
35
|
+
gt: "больше чем"
|
36
|
+
gt_any: "больше чем любое"
|
37
|
+
gt_all: "больше чем все"
|
38
|
+
gteq: "больше чем или равен"
|
39
|
+
gteq_any: "больше чем или равен любому"
|
40
|
+
gteq_all: "больше чем или равен всем"
|
41
|
+
in: "в"
|
42
|
+
in_any: "в любом из"
|
43
|
+
in_all: "во всех"
|
44
|
+
not_in: "нет в"
|
45
|
+
not_in_any: "не в каком из"
|
46
|
+
not_in_all: "нет во всех"
|
47
|
+
cont: "содержит"
|
48
|
+
cont_any: "содержит любое"
|
49
|
+
cont_all: "содержит все"
|
50
|
+
not_cont: "не содержит"
|
51
|
+
not_cont_any: "не содержит любое"
|
52
|
+
not_cont_all: "не содержит все"
|
53
|
+
start: "начинается с"
|
54
|
+
start_any: "начинается с любого"
|
55
|
+
start_all: "начинается с всего"
|
56
|
+
not_start: "не начинается с"
|
57
|
+
not_start_any: "не начинается с любого"
|
58
|
+
not_start_all: "не начинается со всего"
|
59
|
+
end: "кончается с"
|
60
|
+
end_any: "кончается с любого"
|
61
|
+
end_all: "кончается со всего"
|
62
|
+
not_end: "не кончается с"
|
63
|
+
not_end_any: "не кончается с любого"
|
64
|
+
not_end_all: "не кончается со всего"
|
65
|
+
'true': "верно"
|
66
|
+
'false': "не верно"
|
67
|
+
present: "настоящее"
|
68
|
+
blank: "пусто"
|
69
|
+
'null': "нулевой"
|
70
|
+
not_null: "не нулевой"
|
@@ -0,0 +1,70 @@
|
|
1
|
+
sk:
|
2
|
+
ransack:
|
3
|
+
search: "vyhľadávanie"
|
4
|
+
predicate: "predikát"
|
5
|
+
and: "a"
|
6
|
+
or: "alebo"
|
7
|
+
any: "akýkoľvek"
|
8
|
+
all: "každý"
|
9
|
+
combinator: "kombinátor"
|
10
|
+
attribute: "atribút"
|
11
|
+
value: "hodnota"
|
12
|
+
condition: "podmienka"
|
13
|
+
sort: "poradie"
|
14
|
+
asc: "vzostupne"
|
15
|
+
desc: "zostupne"
|
16
|
+
predicates:
|
17
|
+
eq: "sa rovná"
|
18
|
+
eq_any: "sa rovná akémukoľvek"
|
19
|
+
eq_all: "sa rovná všetkým"
|
20
|
+
not_eq: "sa nerovná"
|
21
|
+
not_eq_any: "sa nerovná akémukoľvek"
|
22
|
+
not_eq_all: "sa nerovná všetkým"
|
23
|
+
matches: "zodpovedá"
|
24
|
+
matches_any: "zodpovedá akémukoľvek"
|
25
|
+
matches_all: "zodpovedá všetkým"
|
26
|
+
does_not_match: "nezodpovedá"
|
27
|
+
does_not_match_any: "nezodpovedá akémukoľvek"
|
28
|
+
does_not_match_all: "nezodpovedá všetkým"
|
29
|
+
lt: "menší ako"
|
30
|
+
lt_any: "menší ako akýkoľvek"
|
31
|
+
lt_all: "menší ako všetky"
|
32
|
+
lteq: "menší alebo rovný"
|
33
|
+
lteq_any: "menší alebo rovný akémukoľvek"
|
34
|
+
lteq_all: "menší alebo rovný všetkým"
|
35
|
+
gt: "väčší ako"
|
36
|
+
gt_any: "väčší ako akýkoľvek"
|
37
|
+
gt_all: "väčší ako všetky"
|
38
|
+
gteq: "väčší alebo rovný"
|
39
|
+
gteq_any: "väčší alebo rovný akémukoľvek"
|
40
|
+
gteq_all: "väčší alebo rovný všetkým"
|
41
|
+
in: "v"
|
42
|
+
in_any: "v akejkoľvek"
|
43
|
+
in_all: "vo všetkých"
|
44
|
+
not_in: "nie je v"
|
45
|
+
not_in_any: "nie je v akejkoľvek"
|
46
|
+
not_in_all: "nie je vo všetkých"
|
47
|
+
cont: "obsahuje"
|
48
|
+
cont_any: "obsahuje akúkoľvek"
|
49
|
+
cont_all: "obsahuje všetky"
|
50
|
+
not_cont: "neobsahuje"
|
51
|
+
not_cont_any: "neobsahuje akúkoľvek"
|
52
|
+
not_cont_all: "neobsahuje všetky"
|
53
|
+
start: "začína na"
|
54
|
+
start_any: "začína s akoukoľvek"
|
55
|
+
start_all: "začína so všetkými"
|
56
|
+
not_start: "nezačíná s"
|
57
|
+
not_start_any: "nezačíná s akoukoľvek"
|
58
|
+
not_start_all: "nezačíná so všetkými"
|
59
|
+
end: "končí s"
|
60
|
+
end_any: "končí s akoukoľvek"
|
61
|
+
end_all: "končí so všetkými"
|
62
|
+
not_end: "nekončí s"
|
63
|
+
not_end_any: "nekončí s akoukoľvek"
|
64
|
+
not_end_all: "nekončí so všetkými"
|
65
|
+
'true': "je pravdivé"
|
66
|
+
'false': "nie je pravdivé"
|
67
|
+
present: "je vyplnené"
|
68
|
+
blank: "je prázdne"
|
69
|
+
'null': "je null"
|
70
|
+
not_null: "nie je null"
|
@@ -0,0 +1,70 @@
|
|
1
|
+
sv:
|
2
|
+
ransack:
|
3
|
+
search: "sök"
|
4
|
+
predicate: "predikat"
|
5
|
+
and: "och"
|
6
|
+
or: "eller"
|
7
|
+
any: "vilken som"
|
8
|
+
all: "alla"
|
9
|
+
combinator: "kombinator"
|
10
|
+
attribute: "attribut"
|
11
|
+
value: "värde"
|
12
|
+
condition: "villkor"
|
13
|
+
sort: "sortera"
|
14
|
+
asc: "stigande"
|
15
|
+
desc: "fallande"
|
16
|
+
predicates:
|
17
|
+
eq: "lika med"
|
18
|
+
eq_any: "lika med vilket som"
|
19
|
+
eq_all: "lika med alla"
|
20
|
+
not_eq: "inte lika med"
|
21
|
+
not_eq_any: "inte lika med någon"
|
22
|
+
not_eq_all: "inte lika med alla"
|
23
|
+
matches: "matchar"
|
24
|
+
matches_any: "matchar någon"
|
25
|
+
matches_all: "matchar alla"
|
26
|
+
does_not_match: "matchar inte"
|
27
|
+
does_not_match_any: "matchar inte någon"
|
28
|
+
does_not_match_all: "matchar inte alla"
|
29
|
+
lt: "mindre än"
|
30
|
+
lt_any: "mindre än någon"
|
31
|
+
lt_all: "mindre än alla"
|
32
|
+
lteq: "mindre än eller lika med"
|
33
|
+
lteq_any: "mindre än eller lika med någon"
|
34
|
+
lteq_all: "mindre än eller lika med alla"
|
35
|
+
gt: "större än"
|
36
|
+
gt_any: "större än någon"
|
37
|
+
gt_all: "större än alla"
|
38
|
+
gteq: "större än eller lika med"
|
39
|
+
gteq_any: "större än eller lika med någon"
|
40
|
+
gteq_all: "större än eller lika med alla"
|
41
|
+
in: "i"
|
42
|
+
in_any: "i någon"
|
43
|
+
in_all: "i alla"
|
44
|
+
not_in: "inte i"
|
45
|
+
not_in_any: "inte i någon"
|
46
|
+
not_in_all: "inte i alla"
|
47
|
+
cont: "innehåller"
|
48
|
+
cont_any: "innehåller någon"
|
49
|
+
cont_all: "innehåller alla"
|
50
|
+
not_cont: "innehåller inte"
|
51
|
+
not_cont_any: "innehåller inte någon"
|
52
|
+
not_cont_all: "innehåller inte alla"
|
53
|
+
start: "börjar med"
|
54
|
+
start_any: "börjar med någon"
|
55
|
+
start_all: "börjar med alla"
|
56
|
+
not_start: "börjar inte med"
|
57
|
+
not_start_any: "börjar inte med någon"
|
58
|
+
not_start_all: "börjar inte med alla"
|
59
|
+
end: "slutar med"
|
60
|
+
end_any: "slutar med någon"
|
61
|
+
end_all: "slutar med alla"
|
62
|
+
not_end: "slutar inte med"
|
63
|
+
not_end_any: "slutar inte med någon"
|
64
|
+
not_end_all: "slutar inte med alla"
|
65
|
+
'true': "är sant"
|
66
|
+
'false': "är falskt"
|
67
|
+
present: "existerar"
|
68
|
+
blank: "är tom"
|
69
|
+
'null': "är null"
|
70
|
+
not_null: "är inte null"
|
@@ -0,0 +1,70 @@
|
|
1
|
+
tr:
|
2
|
+
ransack:
|
3
|
+
search: "ara"
|
4
|
+
predicate: "doğrula"
|
5
|
+
and: "ve"
|
6
|
+
or: "veya"
|
7
|
+
any: "herhangi"
|
8
|
+
all: "hepsi"
|
9
|
+
combinator: "birleştirici"
|
10
|
+
attribute: "nitelik"
|
11
|
+
value: "değer"
|
12
|
+
condition: "şart"
|
13
|
+
sort: "sırala"
|
14
|
+
asc: "artan"
|
15
|
+
desc: "azalan"
|
16
|
+
predicates:
|
17
|
+
eq: "eşit"
|
18
|
+
eq_any: "herhangi birine eşit"
|
19
|
+
eq_all: "hepsine eşit"
|
20
|
+
not_eq: "eşit değil"
|
21
|
+
not_eq_any: "herhangi birine eşit değil"
|
22
|
+
not_eq_all: "hiçbirine eşit değil"
|
23
|
+
matches: "eşleşen"
|
24
|
+
matches_any: "herhangi biri ile eşleşen"
|
25
|
+
matches_all: "hepsi ile eşleşen"
|
26
|
+
does_not_match: "eşleşmeyen"
|
27
|
+
does_not_match_any: "herhangi biri ile eşleşmeyen"
|
28
|
+
does_not_match_all: "hiçbiri ile eşleşmeyen"
|
29
|
+
lt: "daha küçük"
|
30
|
+
lt_any: "herhangi birinden küçük"
|
31
|
+
lt_all: "hepsinden küçük"
|
32
|
+
lteq: "daha küçük veya eşit"
|
33
|
+
lteq_any: "daha küçük veya herhangi birine eşit"
|
34
|
+
lteq_all: "daha küçük veya hepsine eşit"
|
35
|
+
gt: "daha büyük "
|
36
|
+
gt_any: "herhangi birinden daha büyük"
|
37
|
+
gt_all: "hepsinden daha büyük"
|
38
|
+
gteq: "daha büyük veya eşit"
|
39
|
+
gteq_any: "daha büyük veya herhangi birine eşit"
|
40
|
+
gteq_all: "daha büyük veya hepsine eşit"
|
41
|
+
in: "içinde"
|
42
|
+
in_any: "herhangi birinde"
|
43
|
+
in_all: "hepsinde"
|
44
|
+
not_in: "içinde değil"
|
45
|
+
not_in_any: "herhangi birinde değil"
|
46
|
+
not_in_all: "hiçbirinde değil"
|
47
|
+
cont: "içeren"
|
48
|
+
cont_any: "herhangi birini içeren"
|
49
|
+
cont_all: "hepsini içeren"
|
50
|
+
not_cont: "içermeyen"
|
51
|
+
not_cont_any: "herhangi birini içermeyen"
|
52
|
+
not_cont_all: "hiçbirini birini içermeyen"
|
53
|
+
start: "ile başlayan"
|
54
|
+
start_any: "herhangi biriyle başlayan"
|
55
|
+
start_all: "hepsiyle başlayan"
|
56
|
+
not_start: "ile başlamayan"
|
57
|
+
not_start_any: "herhangi biriyle başlamayan"
|
58
|
+
not_start_all: "hiçbiriyle başlamayan"
|
59
|
+
end: "ile biten"
|
60
|
+
end_any: "herhangi biriyle biten"
|
61
|
+
end_all: "hepsi ile biten"
|
62
|
+
not_end: "ile bitmeyen"
|
63
|
+
not_end_any: "herhangi biriyle bitmeyen"
|
64
|
+
not_end_all: "hiçbiriyle bitmeyen"
|
65
|
+
'true': "doğru"
|
66
|
+
'false': "yanlış"
|
67
|
+
present: "mevcut"
|
68
|
+
blank: "boş"
|
69
|
+
'null': "geçersiz"
|
70
|
+
not_null: "geçerli"
|
@@ -50,18 +50,18 @@ zh-CN:
|
|
50
50
|
not_cont: "不包含"
|
51
51
|
not_cont_any: "不包含任意一个值"
|
52
52
|
not_cont_all: "不包含所有值"
|
53
|
-
start: "
|
54
|
-
start_any: "
|
55
|
-
start_all: "
|
56
|
-
not_start: "
|
57
|
-
not_start_any: "
|
58
|
-
not_start_all: "
|
59
|
-
end: "
|
60
|
-
end_any: "
|
61
|
-
end_all: "
|
62
|
-
not_end: "
|
63
|
-
not_end_any: "
|
64
|
-
not_end_all: "
|
53
|
+
start: "始于"
|
54
|
+
start_any: "始于任一值"
|
55
|
+
start_all: "始于任意值"
|
56
|
+
not_start: "非始于"
|
57
|
+
not_start_any: "非始于任一值"
|
58
|
+
not_start_all: "非始于任意值"
|
59
|
+
end: "止于"
|
60
|
+
end_any: "止于任一值"
|
61
|
+
end_all: "止于任意值"
|
62
|
+
not_end: "非止于"
|
63
|
+
not_end_any: "非止于任一值"
|
64
|
+
not_end_all: "非止于任意值"
|
65
65
|
'true': "等于true"
|
66
66
|
'false': "等于false"
|
67
67
|
present: "有值"
|
@@ -5,7 +5,7 @@ module Ransack
|
|
5
5
|
|
6
6
|
attr_reader :name, :ransacker_args
|
7
7
|
|
8
|
-
delegate :blank?, :present?,
|
8
|
+
delegate :blank?, :present?, :to => :name
|
9
9
|
delegate :engine, :to => :context
|
10
10
|
|
11
11
|
def initialize(context, name = nil, ransacker_args = [])
|
@@ -30,7 +30,7 @@ module Ransack
|
|
30
30
|
|
31
31
|
def type
|
32
32
|
if ransacker
|
33
|
-
|
33
|
+
ransacker.type
|
34
34
|
else
|
35
35
|
context.type_for(self)
|
36
36
|
end
|
@@ -127,7 +127,6 @@ module Ransack
|
|
127
127
|
alias :m= :combinator=
|
128
128
|
alias :m :combinator
|
129
129
|
|
130
|
-
|
131
130
|
# == build_attribute
|
132
131
|
#
|
133
132
|
# This method was originally called from Nodes::Grouping#new_condition
|
@@ -255,6 +254,13 @@ module Ransack
|
|
255
254
|
end
|
256
255
|
end
|
257
256
|
|
257
|
+
def attr_value_for_attribute(attr)
|
258
|
+
return attr.attr if ActiveRecord::Base.connection.adapter_name == "PostgreSQL"
|
259
|
+
|
260
|
+
predicate.case_insensitive ? attr.attr.lower : attr.attr
|
261
|
+
rescue
|
262
|
+
attr.attr
|
263
|
+
end
|
258
264
|
|
259
265
|
def default_type
|
260
266
|
predicate.type || (attributes.first && attributes.first.type)
|
@@ -49,11 +49,7 @@ module Ransack
|
|
49
49
|
alias :c= :conditions=
|
50
50
|
|
51
51
|
def [](key)
|
52
|
-
|
53
|
-
condition
|
54
|
-
else
|
55
|
-
nil
|
56
|
-
end
|
52
|
+
conditions.detect { |c| c.key == key.to_s }
|
57
53
|
end
|
58
54
|
|
59
55
|
def []=(key, value)
|
@@ -68,7 +64,6 @@ module Ransack
|
|
68
64
|
def respond_to?(method_id)
|
69
65
|
super or begin
|
70
66
|
method_name = method_id.to_s
|
71
|
-
writer = method_name.sub!(/\=$/, ''.freeze)
|
72
67
|
attribute_method?(method_name) ? true : false
|
73
68
|
end
|
74
69
|
end
|
@@ -113,7 +108,7 @@ module Ransack
|
|
113
108
|
alias :g= :groupings=
|
114
109
|
|
115
110
|
def method_missing(method_id, *args)
|
116
|
-
method_name = method_id.to_s
|
111
|
+
method_name = method_id.to_s.dup
|
117
112
|
writer = method_name.sub!(/\=$/, ''.freeze)
|
118
113
|
if attribute_method?(method_name)
|
119
114
|
if writer
|
@@ -191,7 +186,7 @@ module Ransack
|
|
191
186
|
end
|
192
187
|
|
193
188
|
def strip_predicate_and_index(str)
|
194
|
-
string = str
|
189
|
+
string = str[/(.+?)\(/, 1] || str.dup
|
195
190
|
Predicate.detect_and_strip_from_string!(string)
|
196
191
|
string
|
197
192
|
end
|
data/lib/ransack/nodes/sort.rb
CHANGED
@@ -9,7 +9,7 @@ module Ransack
|
|
9
9
|
class << self
|
10
10
|
def extract(context, str)
|
11
11
|
return unless str
|
12
|
-
attr, direction = str.split(/\s+/,2)
|
12
|
+
attr, direction = str.split(/\s+/, 2)
|
13
13
|
self.new(context).build(name: attr, dir: direction)
|
14
14
|
end
|
15
15
|
end
|
@@ -31,8 +31,8 @@ module Ransack
|
|
31
31
|
end
|
32
32
|
|
33
33
|
def name=(name)
|
34
|
-
@name = name
|
35
|
-
context.bind(self, name)
|
34
|
+
@name = context.ransackable_alias(name) || name
|
35
|
+
context.bind(self, @name)
|
36
36
|
end
|
37
37
|
|
38
38
|
def dir=(dir)
|