ransack 4.1.1 → 4.2.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 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: []