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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5f10c93cd2049eaa829e29002181350220b204776e6144abdf9ccb4a099f0410
4
- data.tar.gz: 78f94e8d4d20eec48892fbd917fbc7b72d563d4707aac2c85b94c491f66e884c
3
+ metadata.gz: 67475c124f66b63918120130bef9a0d96d911c061c1e81853229088d2a1bba32
4
+ data.tar.gz: c73d08fec7a08faac6ae93e9a38ce4a351f056c50339d1473fc5ed20da4ce44e
5
5
  SHA512:
6
- metadata.gz: c95c74daefab61fe569b0aa45717d11a47d47a5ffd77e885cfbcc3b3b22063a50e9ba8609b7d128445984417eda7eafe85f21344f9b4831059fe368662e4fac7
7
- data.tar.gz: 3432bc0565e8fef78ff48a9dffb0f73dfd95872ba233fb91987942667878e55c1b326367998e7f8cc9f3d6a05d655c663b731167bdc4d2a55df426aa5b142bd8
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 && (ass_order = ScopeHolder.new(ass.scope).to_s)
271
- ass_order = ass_order.sub(/ DESC\s*$/i, '')
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
- min_query = <<~SQL
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} = (#{min_query})"
282
+ sql << " AND #{ass_order_prefixed} = (#{aggregate_query})"
283
283
  end
284
284
  sql
285
285
  else
@@ -1,3 +1,3 @@
1
1
  module SimpleDrilldown
2
- VERSION = '0.10.0'
2
+ VERSION = '0.10.1'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: simple_drilldown
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.10.0
4
+ version: 0.10.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Uwe Kubosch