simple_drilldown 0.10.0 → 0.10.1

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: 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