simple_drilldown 0.10.0 → 0.10.1
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/lib/simple_drilldown/controller.rb +5 -5
- data/lib/simple_drilldown/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 67475c124f66b63918120130bef9a0d96d911c061c1e81853229088d2a1bba32
|
4
|
+
data.tar.gz: c73d08fec7a08faac6ae93e9a38ce4a351f056c50339d1473fc5ed20da4ce44e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ac86c2eb185285bfd9a5f27c90e4c99600a029778595956d99a55ff1d92248c3052d1765227c98368c7a709a16f8d840b46cf09db178d522e9d9ef30f4bde0f9
|
7
|
+
data.tar.gz: 988d82b766671b72d4df71a705feb68aef5b7ac8eef66987136712bb276b760985e5c3b5b4af4942eefea1dce3c34547acdf1e7e6f0c3c97dcbab6d3d90f4b51
|
@@ -267,8 +267,8 @@ module SimpleDrilldown
|
|
267
267
|
fk_col = ass.options[:foreign_key] || "#{model}_id"
|
268
268
|
sql = +"LEFT JOIN #{include_table} #{include_alias} ON #{include_alias}.#{fk_col} = #{model_table}.id"
|
269
269
|
sql << " AND #{include_alias}.deleted_at IS NULL" if ass.klass.paranoid?
|
270
|
-
if ass.scope && (
|
271
|
-
ass_order
|
270
|
+
if ass.scope && (base_ass_order = ScopeHolder.new(ass.scope).to_s)
|
271
|
+
/^(?<ass_order>\S*)(?<ass_order_desc>\s+DESC)?/i =~ base_ass_order
|
272
272
|
ass_order_prefixed = ass_order.dup
|
273
273
|
ActiveRecord::Base.connection.columns(include_table).map(&:name).each do |cname|
|
274
274
|
ass_order_prefixed.gsub!(/\b#{cname}\b/, "#{include_alias}.#{cname}")
|
@@ -276,10 +276,10 @@ module SimpleDrilldown
|
|
276
276
|
paranoid_clause = 'AND t2.deleted_at IS NULL' if ass.klass.paranoid?
|
277
277
|
# FIXME(uwe): Should we add "where" from the ScopeHolder here as well?
|
278
278
|
# Ref: SimpleDrilldown::Changes#changes_for
|
279
|
-
|
280
|
-
SELECT MIN(#{ass_order}) FROM #{include_table} t2 WHERE t2.#{fk_col} = #{model_table}.id #{paranoid_clause}
|
279
|
+
aggregate_query = <<~SQL
|
280
|
+
SELECT #{ass_order_desc ? :MAX : :MIN}(#{ass_order}) FROM #{include_table} t2 WHERE t2.#{fk_col} = #{model_table}.id #{paranoid_clause}
|
281
281
|
SQL
|
282
|
-
sql << " AND #{ass_order_prefixed} = (#{
|
282
|
+
sql << " AND #{ass_order_prefixed} = (#{aggregate_query})"
|
283
283
|
end
|
284
284
|
sql
|
285
285
|
else
|