ransack 4.1.1 → 4.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: dbeb7a329e22aabf90d2336f563ebfa162e0fa4a085fa5271896ed106d2d6612
4
- data.tar.gz: e65a2f50206b930faaf7d5fd554830c553fc0050777f98f493de8e99940e3c78
3
+ metadata.gz: f378bb864b0b4cb10cfe0f8a10959010fc31de18b161be838354d0c7e91aa451
4
+ data.tar.gz: d4bee8f5d8181cad27191fb7c0e88a5407e6fed26b203aa2f9ae297f26b8ad90
5
5
  SHA512:
6
- metadata.gz: 1c0ece8ec2de53c780769d572369442c93b0c4769fe8394baa32ad87d4ae2b7a2fdc66b2f1227499b7a07df80f24d3cf0671a72a33c988fe43c926e37a42dbe1
7
- data.tar.gz: fa6ba91dab6d66369595b8ddee0e46c80b5f1103ca179f67c0be75f78109555a15f784448441fb04c9d8f3afba92c04e56962d77eb4cc4870cff0ecc61f49a1e
6
+ metadata.gz: c1a09e345fb112d740bbd0e47ce0a0fd5d2ae843313306b1c9b4e55967a5a26383144c3df8515fe86d7730cb703c3fdfc5d95a70a6f34cda40e6a327937d7cad
7
+ data.tar.gz: cb5661601b8f4457d0369499e1dc61ee6b09c4c4035b413a25302f9d671deb28a9ba7356a3fcdfe1bce37f4393a6e5fdc606a65bc46c534e6a9d46504aab77a4
@@ -13,13 +13,13 @@ jobs:
13
13
  fail-fast: false
14
14
  matrix:
15
15
  rails:
16
+ - 7-2-stable
16
17
  - v7.1.0
17
18
  - v7.0.3
18
19
  - v6.1.6
19
20
  ruby:
20
21
  - 3.2.2
21
22
  - 3.1.4
22
- - 3.0.6
23
23
  env:
24
24
  DB: sqlite3
25
25
  RAILS: ${{ matrix.rails }}
@@ -39,13 +39,13 @@ jobs:
39
39
  fail-fast: false
40
40
  matrix:
41
41
  rails:
42
+ - 7-2-stable
42
43
  - v7.1.0
43
44
  - v7.0.3
44
45
  - v6.1.6
45
46
  ruby:
46
47
  - 3.2.2
47
48
  - 3.1.4
48
- - 3.0.6
49
49
  env:
50
50
  DB: mysql
51
51
  RAILS: ${{ matrix.rails }}
@@ -74,13 +74,13 @@ jobs:
74
74
  fail-fast: false
75
75
  matrix:
76
76
  rails:
77
+ - 7-2-stable
77
78
  - v7.1.0
78
79
  - v7.0.3
79
80
  - v6.1.6
80
81
  ruby:
81
82
  - 3.2.2
82
83
  - 3.1.4
83
- - 3.0.6
84
84
  env:
85
85
  DB: postgres
86
86
  RAILS: ${{ matrix.rails }}
data/CHANGELOG.md CHANGED
@@ -2,30 +2,36 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
- ## 🚀 Features
5
+ ## 4.2.0 - 2023-10-23
6
+
7
+ * Add Rails 7.2 support by @robinator and @gregmolnar
8
+
9
+ ## 4.1.0 - 2023-10-23
10
+
11
+ ### 🚀 Features
6
12
 
7
13
  * Add Rails 7.1.0 support by @yuki24 in https://github.com/activerecord-hackery/ransack/pull/1439
8
14
 
9
- ## 🐛 Bug Fixes
15
+ ### 🐛 Bug Fixes
10
16
 
11
17
  * Fix wrong table aliases in Rails 6.1 by @oneiros in https://github.com/activerecord-hackery/ransack/pull/1447
12
18
 
13
- ## 💦 Compatibility
19
+ ### 💦 Compatibility
14
20
 
15
21
  * Drop Ruby 2.7 support by @deivid-rodriguez in https://github.com/activerecord-hackery/ransack/pull/1449
16
22
 
17
- ## 📝 Documentation
23
+ ### 📝 Documentation
18
24
 
19
25
  * Update blog post link by @meg-gutshall in https://github.com/activerecord-hackery/ransack/pull/1425
20
26
  * Add namespaced example of Polymorphic search by @craigmcnamara in https://github.com/activerecord-hackery/ransack/pull/1422
21
27
  * Update sorting example to be self-contained by @kinduff in https://github.com/activerecord-hackery/ransack/pull/1442
22
28
 
23
- ## 💅 Polish
29
+ ### 💅 Polish
24
30
 
25
31
  * Minor updates for Rails 7.1 by @deivid-rodriguez in https://github.com/activerecord-hackery/ransack/pull/1448
26
32
  * Don't mention Ruby compatibility in contribution instructions by @deivid-rodriguez in https://github.com/activerecord-hackery/ransack/pull/1452
27
33
 
28
- ## 🏠 Internal
34
+ ### 🏠 Internal
29
35
 
30
36
  * 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
37
  * Bump webpack from 5.74.0 to 5.76.1 in /docs by @dependabot in https://github.com/activerecord-hackery/ransack/pull/1412
@@ -41,7 +47,7 @@
41
47
 
42
48
  ### 💥 Breaking Changes
43
49
 
44
- * **[SECURITY]** Require explict allowlisting of attributes and associations by @deivid-rodriguez in https://github.com/activerecord-hackery/ransack/pull/1400
50
+ * **[SECURITY]** Require explicit allowlisting of attributes and associations by @deivid-rodriguez in https://github.com/activerecord-hackery/ransack/pull/1400
45
51
  * Remove Polyamorous entrypoint by @scarroll32 in https://github.com/activerecord-hackery/ransack/pull/1370
46
52
  * Remove dead MongoDB code by @scarroll32 in https://github.com/activerecord-hackery/ransack/pull/1345
47
53
 
data/Gemfile CHANGED
@@ -15,7 +15,7 @@ rails_version = case rails
15
15
  end
16
16
 
17
17
  gem 'faker'
18
- gem 'sqlite3'
18
+ gem 'sqlite3', '~> 1.4'
19
19
  gem 'pg'
20
20
  gem 'pry'
21
21
  gem 'byebug'
data/README.md CHANGED
@@ -13,7 +13,7 @@ There are advanced searching solutions around, like ElasticSearch or Algolia. **
13
13
 
14
14
  Ready to move beyond the basics? Use **advanced features** like i18n and extensive configuration options.
15
15
 
16
- Ransack is supported for Rails 7.0, 6.1 on Ruby 3.0 and later.
16
+ Ransack is supported for Rails 7.2, 7.1, 7.0, 6.1 on Ruby 3.1 and later.
17
17
 
18
18
  ## Installation
19
19
 
data/docs/yarn.lock CHANGED
@@ -3669,21 +3669,21 @@ binary-extensions@^2.0.0:
3669
3669
  resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d"
3670
3670
  integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==
3671
3671
 
3672
- body-parser@1.20.0:
3673
- version "1.20.0"
3674
- resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.0.tgz#3de69bd89011c11573d7bfee6a64f11b6bd27cc5"
3675
- integrity sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==
3672
+ body-parser@1.20.2:
3673
+ version "1.20.2"
3674
+ resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.2.tgz#6feb0e21c4724d06de7ff38da36dad4f57a747fd"
3675
+ integrity sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==
3676
3676
  dependencies:
3677
3677
  bytes "3.1.2"
3678
- content-type "~1.0.4"
3678
+ content-type "~1.0.5"
3679
3679
  debug "2.6.9"
3680
3680
  depd "2.0.0"
3681
3681
  destroy "1.2.0"
3682
3682
  http-errors "2.0.0"
3683
3683
  iconv-lite "0.4.24"
3684
3684
  on-finished "2.4.1"
3685
- qs "6.10.3"
3686
- raw-body "2.5.1"
3685
+ qs "6.11.0"
3686
+ raw-body "2.5.2"
3687
3687
  type-is "~1.6.18"
3688
3688
  unpipe "1.0.0"
3689
3689
 
@@ -4146,6 +4146,11 @@ content-type@~1.0.4:
4146
4146
  resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b"
4147
4147
  integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==
4148
4148
 
4149
+ content-type@~1.0.5:
4150
+ version "1.0.5"
4151
+ resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918"
4152
+ integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==
4153
+
4149
4154
  convert-source-map@^1.7.0:
4150
4155
  version "1.8.0"
4151
4156
  resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369"
@@ -4158,10 +4163,10 @@ cookie-signature@1.0.6:
4158
4163
  resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c"
4159
4164
  integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==
4160
4165
 
4161
- cookie@0.5.0:
4162
- version "0.5.0"
4163
- resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b"
4164
- integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==
4166
+ cookie@0.6.0:
4167
+ version "0.6.0"
4168
+ resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.6.0.tgz#2798b04b071b0ecbff0dbb62a505a8efa4e19051"
4169
+ integrity sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==
4165
4170
 
4166
4171
  copy-text-to-clipboard@^3.0.1:
4167
4172
  version "3.0.1"
@@ -4851,16 +4856,16 @@ execa@^5.0.0:
4851
4856
  strip-final-newline "^2.0.0"
4852
4857
 
4853
4858
  express@^4.17.3:
4854
- version "4.18.1"
4855
- resolved "https://registry.yarnpkg.com/express/-/express-4.18.1.tgz#7797de8b9c72c857b9cd0e14a5eea80666267caf"
4856
- integrity sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==
4859
+ version "4.19.2"
4860
+ resolved "https://registry.yarnpkg.com/express/-/express-4.19.2.tgz#e25437827a3aa7f2a827bc8171bbbb664a356465"
4861
+ integrity sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==
4857
4862
  dependencies:
4858
4863
  accepts "~1.3.8"
4859
4864
  array-flatten "1.1.1"
4860
- body-parser "1.20.0"
4865
+ body-parser "1.20.2"
4861
4866
  content-disposition "0.5.4"
4862
4867
  content-type "~1.0.4"
4863
- cookie "0.5.0"
4868
+ cookie "0.6.0"
4864
4869
  cookie-signature "1.0.6"
4865
4870
  debug "2.6.9"
4866
4871
  depd "2.0.0"
@@ -4876,7 +4881,7 @@ express@^4.17.3:
4876
4881
  parseurl "~1.3.3"
4877
4882
  path-to-regexp "0.1.7"
4878
4883
  proxy-addr "~2.0.7"
4879
- qs "6.10.3"
4884
+ qs "6.11.0"
4880
4885
  range-parser "~1.2.1"
4881
4886
  safe-buffer "5.2.1"
4882
4887
  send "0.18.0"
@@ -7153,10 +7158,10 @@ pure-color@^1.2.0:
7153
7158
  resolved "https://registry.yarnpkg.com/pure-color/-/pure-color-1.3.0.tgz#1fe064fb0ac851f0de61320a8bf796836422f33e"
7154
7159
  integrity sha512-QFADYnsVoBMw1srW7OVKEYjG+MbIa49s54w1MA1EDY6r2r/sTcKKYqRX1f4GYvnXP7eN/Pe9HFcX+hwzmrXRHA==
7155
7160
 
7156
- qs@6.10.3:
7157
- version "6.10.3"
7158
- resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.3.tgz#d6cde1b2ffca87b5aa57889816c5f81535e22e8e"
7159
- integrity sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==
7161
+ qs@6.11.0:
7162
+ version "6.11.0"
7163
+ resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a"
7164
+ integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==
7160
7165
  dependencies:
7161
7166
  side-channel "^1.0.4"
7162
7167
 
@@ -7194,10 +7199,10 @@ range-parser@^1.2.1, range-parser@~1.2.1:
7194
7199
  resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031"
7195
7200
  integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==
7196
7201
 
7197
- raw-body@2.5.1:
7198
- version "2.5.1"
7199
- resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.1.tgz#fe1b1628b181b700215e5fd42389f98b71392857"
7200
- integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==
7202
+ raw-body@2.5.2:
7203
+ version "2.5.2"
7204
+ resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.2.tgz#99febd83b90e08975087e8f1f9419a149366b68a"
7205
+ integrity sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==
7201
7206
  dependencies:
7202
7207
  bytes "3.1.2"
7203
7208
  http-errors "2.0.0"
@@ -0,0 +1,55 @@
1
+ module Polyamorous
2
+ module JoinAssociationExtensions
3
+ # Same as #join_constraints, but instead of constructing tables from the
4
+ # given block, uses the ones passed
5
+ def join_constraints_with_tables(foreign_table, foreign_klass, join_type, alias_tracker, tables)
6
+ joins = []
7
+ chain = []
8
+
9
+ reflection.chain.each.with_index do |reflection, i|
10
+ table = tables[i]
11
+
12
+ @table ||= table
13
+ chain << [reflection, table]
14
+ end
15
+
16
+ base_klass.with_connection do |connection|
17
+ # The chain starts with the target table, but we want to end with it here (makes
18
+ # more sense in this context), so we reverse
19
+ chain.reverse_each do |reflection, table|
20
+ klass = reflection.klass
21
+
22
+ join_scope = reflection.join_scope(table, foreign_table, foreign_klass)
23
+
24
+ unless join_scope.references_values.empty?
25
+ join_dependency = join_scope.construct_join_dependency(
26
+ join_scope.eager_load_values | join_scope.includes_values, Arel::Nodes::OuterJoin
27
+ )
28
+ join_scope.joins!(join_dependency)
29
+ end
30
+
31
+ arel = join_scope.arel(alias_tracker.aliases)
32
+ nodes = arel.constraints.first
33
+
34
+ if nodes.is_a?(Arel::Nodes::And)
35
+ others = nodes.children.extract! do |node|
36
+ !Arel.fetch_attribute(node) { |attr| attr.relation.name == table.name }
37
+ end
38
+ end
39
+
40
+ joins << table.create_join(table, table.create_on(nodes), join_type)
41
+
42
+ if others && !others.empty?
43
+ joins.concat arel.join_sources
44
+ append_constraints(connection, joins.last, others)
45
+ end
46
+
47
+ # The current table in this iteration becomes the foreign table in the next
48
+ foreign_table, foreign_klass = table, klass
49
+ end
50
+
51
+ joins
52
+ end
53
+ end
54
+ end
55
+ end
@@ -15,6 +15,10 @@ if defined?(::ActiveRecord)
15
15
  require 'polyamorous/activerecord/join_dependency'
16
16
  require 'polyamorous/activerecord/reflection'
17
17
 
18
+ if ::ActiveRecord.version > ::Gem::Version.new("7.1")
19
+ require "polyamorous/activerecord/join_association_7_2"
20
+ end
21
+
18
22
  ActiveRecord::Reflection::AbstractReflection.send(:prepend, Polyamorous::ReflectionExtensions)
19
23
 
20
24
  Polyamorous::JoinDependency.send(:prepend, Polyamorous::JoinDependencyExtensions)
@@ -110,7 +110,7 @@ module Ransack
110
110
  #
111
111
  def join_sources
112
112
  base, joins = begin
113
- alias_tracker = ::ActiveRecord::Associations::AliasTracker.create(self.klass.connection, @object.table.name, [])
113
+ alias_tracker = @object.alias_tracker
114
114
  constraints = @join_dependency.join_constraints(@object.joins_values, alias_tracker, @object.references_values)
115
115
 
116
116
  [
@@ -278,7 +278,7 @@ module Ransack
278
278
 
279
279
  join_list = join_nodes + convert_join_strings_to_ast(relation.table, string_joins)
280
280
 
281
- alias_tracker = ::ActiveRecord::Associations::AliasTracker.create(self.klass.connection, relation.table.name, join_list)
281
+ alias_tracker = relation.alias_tracker(join_list)
282
282
  join_dependency = Polyamorous::JoinDependency.new(relation.klass, relation.table, association_joins, Arel::Nodes::OuterJoin)
283
283
  join_dependency.instance_variable_set(:@alias_tracker, alias_tracker)
284
284
  join_nodes.each do |join|
@@ -152,16 +152,16 @@ module Ransack
152
152
  end
153
153
 
154
154
  def ransackable_alias(str)
155
- klass._ransack_aliases.fetch(str, str)
155
+ klass._ransack_aliases.fetch(str, klass._ransack_aliases.fetch(str.to_sym, str))
156
156
  end
157
157
 
158
158
  def ransackable_attribute?(str, klass)
159
- klass.ransackable_attributes(auth_object).include?(str) ||
160
- klass.ransortable_attributes(auth_object).include?(str)
159
+ klass.ransackable_attributes(auth_object).any? { |s| s.to_sym == str.to_sym } ||
160
+ klass.ransortable_attributes(auth_object).any? { |s| s.to_sym == str.to_sym }
161
161
  end
162
162
 
163
163
  def ransackable_association?(str, klass)
164
- klass.ransackable_associations(auth_object).include? str
164
+ klass.ransackable_associations(auth_object).any? { |s| s.to_sym == str.to_sym }
165
165
  end
166
166
 
167
167
  def ransackable_scope?(str, klass)
@@ -1,3 +1,3 @@
1
1
  module Ransack
2
- VERSION = '4.1.1'
2
+ VERSION = '4.2.0'
3
3
  end
data/lib/ransack.rb CHANGED
@@ -21,6 +21,7 @@ require 'ransack/ransacker'
21
21
  require 'ransack/translate'
22
22
  require 'ransack/active_record'
23
23
  require 'ransack/context'
24
+ require 'ransack/version'
24
25
 
25
26
  ActiveSupport.on_load(:action_controller) do
26
27
  require 'ransack/helpers'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ransack
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.1.1
4
+ version: 4.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ernie Miller
@@ -12,7 +12,7 @@ authors:
12
12
  autorequire:
13
13
  bindir: bin
14
14
  cert_chain: []
15
- date: 2023-10-29 00:00:00.000000000 Z
15
+ date: 2024-07-10 00:00:00.000000000 Z
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
18
  name: activerecord
@@ -141,6 +141,7 @@ files:
141
141
  - docs/static/logo/ransack.svg
142
142
  - docs/yarn.lock
143
143
  - lib/polyamorous/activerecord/join_association.rb
144
+ - lib/polyamorous/activerecord/join_association_7_2.rb
144
145
  - lib/polyamorous/activerecord/join_dependency.rb
145
146
  - lib/polyamorous/activerecord/reflection.rb
146
147
  - lib/polyamorous/join.rb
@@ -243,34 +244,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
243
244
  - !ruby/object:Gem::Version
244
245
  version: '0'
245
246
  requirements: []
246
- rubygems_version: 3.4.10
247
+ rubygems_version: 3.5.3
247
248
  signing_key:
248
249
  specification_version: 4
249
250
  summary: Object-based searching for Active Record.
250
- test_files:
251
- - spec/blueprints/articles.rb
252
- - spec/blueprints/comments.rb
253
- - spec/blueprints/notes.rb
254
- - spec/blueprints/people.rb
255
- - spec/blueprints/tags.rb
256
- - spec/console.rb
257
- - spec/helpers/polyamorous_helper.rb
258
- - spec/helpers/ransack_helper.rb
259
- - spec/polyamorous/activerecord_compatibility_spec.rb
260
- - spec/polyamorous/join_association_spec.rb
261
- - spec/polyamorous/join_dependency_spec.rb
262
- - spec/polyamorous/join_spec.rb
263
- - spec/ransack/adapters/active_record/base_spec.rb
264
- - spec/ransack/adapters/active_record/context_spec.rb
265
- - spec/ransack/configuration_spec.rb
266
- - spec/ransack/helpers/form_builder_spec.rb
267
- - spec/ransack/helpers/form_helper_spec.rb
268
- - spec/ransack/nodes/condition_spec.rb
269
- - spec/ransack/nodes/grouping_spec.rb
270
- - spec/ransack/nodes/value_spec.rb
271
- - spec/ransack/predicate_spec.rb
272
- - spec/ransack/search_spec.rb
273
- - spec/ransack/translate_spec.rb
274
- - spec/spec_helper.rb
275
- - spec/support/en.yml
276
- - spec/support/schema.rb
251
+ test_files: []