simple_drilldown 0.14.3 → 0.15.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: 84022afd7bb8dd36bfca2b285ddf9451f794848c41119745506f5cef2d700796
4
- data.tar.gz: 79bd64686fecaf97e94ae35bbae64a19ee08a229d9643e7d22d6932d0988dc20
3
+ metadata.gz: c75a32411dc7a49757b326fd1a8825bb670a37d445d0338d5278fc721752f45b
4
+ data.tar.gz: 9bfcc32200e6b63cd7ba969044fc8ef027110f11cb69ef52cdd29b4258fd5803
5
5
  SHA512:
6
- metadata.gz: 28350243c7fcbf93d18648a7b212b89d3762edff818068d2f6e6ee876841dfd1df8ce4e74910f42e2762c2c0336d661e96fbed5458ce739ac342468fb727f490
7
- data.tar.gz: 113ca437b9d800ef894e0a8ff6cdfecec7cdc70e21fd83721b1a527fae35b703a3564fd4d975adde78806b446bd92c34388d87a79ac388d100b0f0f4f6f060e4
6
+ metadata.gz: 34dbd1c41945059e2a9d952f6cfb3bb656437693dff75dfcd3f09a0b7c64a18f742d837caefe0706b6b28807cb0f66fe7eae76938d5d872a1281e815fd05047c
7
+ data.tar.gz: c8e788ae028fccdff2503b9e988562fc5fae24926272cd6981d97ed8fa5caf433d1b7204c3a1b426db62eed9b30e10f81f1535621367cabeea354c24c16faa3f
@@ -9,7 +9,7 @@
9
9
  @result[:rows].map do |r|
10
10
  {
11
11
  name: r[:value],
12
- data: r[:rows].map { |r2| [r2[:value], r2[@search.select_value]] }
12
+ data: r[:rows].map { |r2| [@dimensions[1][:label_method] ? @dimensions[1][:label_method].call(r2[:value]) : r2[:value], r2[@search.select_value]] }
13
13
  }
14
14
  end
15
15
  when 3
@@ -3,7 +3,9 @@
3
3
  def excel_header_row(sheet)
4
4
  padding_cells = @dimensions.empty? ? 1 : @dimensions.size
5
5
  row = (1...(padding_cells - 1)).map { |_n| nil }
6
- @search.fields.each_with_index { |field, _i| row << t(field, default: field.titleize) }
6
+ @search.fields.each do |field|
7
+ row << t(field, default: [:"attributes.#{field}", field.humanize])
8
+ end
7
9
  sheet.add_row row
8
10
  end
9
11
 
@@ -5,6 +5,8 @@ xml.Row do
5
5
  1.upto(padding_cells - 1) { |_n| xml.Cell('ss:StyleID' => 'Outer') }
6
6
 
7
7
  @search.fields.each_with_index do |field, i|
8
- xml.Cell('ss:Index' => (padding_cells + i).to_s) { xml.Data t(field), 'ss:Type' => 'String' }
8
+ xml.Cell('ss:Index' => (padding_cells + i).to_s) do
9
+ xml.Data t(field, default: [:"attributes.#{field}", field.humanize]), 'ss:Type' => 'String'
10
+ end
9
11
  end
10
12
  end
@@ -31,7 +31,7 @@ xml.Styles do
31
31
  xml.NumberFormat 'ss:Format' => '0.000'
32
32
  end
33
33
  xml.Style 'ss:ID' => 'NoDecimalNumberFormat' do
34
- xml.NumberFormat 'ss:Format' => "\#,\#\#0"
34
+ xml.NumberFormat 'ss:Format' => '#,##0'
35
35
  end
36
36
  xml.Style 'ss:ID' => 'Percent' do
37
37
  xml.NumberFormat 'ss:Format' => '0%'
@@ -44,7 +44,7 @@ xml.Styles do
44
44
  xml.Border 'ss:Position' => 'Bottom', 'ss:Weight' => '1'
45
45
  end
46
46
  xml.Interior 'ss:Color' => '#dedede', 'ss:Pattern' => 'Solid'
47
- xml.NumberFormat 'ss:Format' => "\#,\#\#0"
47
+ xml.NumberFormat 'ss:Format' => '#,##0'
48
48
  end
49
49
  xml.Style 'ss:ID' => 'Outer'
50
50
  xml.Style 'ss:ID' => 'ShortDate' do
@@ -117,6 +117,9 @@ module SimpleDrilldown
117
117
  end
118
118
  end
119
119
 
120
+ pretty_name = I18n.t(:"simple_drilldown.dimension.#{name}",
121
+ default: [:"simple_drilldown.#{name}", :"activerecord.models.#{name}", name.to_sym,
122
+ name.to_s.titleize])
120
123
  c_dimension_defs[name.to_s] = {
121
124
  includes: queries.inject(nil) do |a, e|
122
125
  i = e[:includes]
@@ -135,9 +138,7 @@ module SimpleDrilldown
135
138
  interval: interval,
136
139
  label_method: label_method,
137
140
  legal_values: legal_values,
138
- pretty_name: I18n.t(:"simple_drilldown.dimension.#{name}",
139
- default: [:"simple_drilldown.#{name}", :"activerecord.models.#{name}", name.to_sym,
140
- name.to_s.titleize]),
141
+ pretty_name: pretty_name,
141
142
  queries: queries,
142
143
  reverse: reverse,
143
144
  select_expression:
@@ -207,7 +208,7 @@ module SimpleDrilldown
207
208
  dimension_def[:queries].each do |query|
208
209
  next unless (where = query[:where])
209
210
 
210
- where_mapped = where.map { |e| e.respond_to?(:call) ? e.call : e }
211
+ where_mapped = [*where].map { |e| e.respond_to?(:call) ? e.call : e }
211
212
  condition_strings << where_mapped[0]
212
213
  condition_values += where_mapped[1..]
213
214
  end
@@ -265,7 +266,12 @@ module SimpleDrilldown
265
266
  include.each do |parent, child|
266
267
  sql << " #{make_join(joins, model, parent)}"
267
268
  ass = model.to_s.camelize.constantize.reflect_on_association parent
268
- sql << " #{make_join(joins, parent, child, ass.class_name.constantize)}"
269
+ sql << case ass.macro
270
+ when :has_many
271
+ " #{make_join(joins, ass.class_name.underscore, child, ass.class_name.constantize)}"
272
+ else
273
+ " #{make_join(joins, parent, child, ass.class_name.constantize)}"
274
+ end
269
275
  end
270
276
  sql
271
277
  when Symbol
@@ -634,6 +640,21 @@ module SimpleDrilldown
634
640
  instance_eval(&scope)
635
641
  end
636
642
 
643
+ # def merge(scope)
644
+ # @merged_scope = scope
645
+ # self
646
+ # end
647
+ #
648
+ # def includes(includes)
649
+ # @includes = includes
650
+ # self
651
+ # end
652
+ #
653
+ # def references(references)
654
+ # @references = references
655
+ # self
656
+ # end
657
+ #
637
658
  def order(order)
638
659
  @order = order
639
660
  self
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module SimpleDrilldown
4
- VERSION = '0.14.3'
4
+ VERSION = '0.15.0'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: simple_drilldown
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.14.3
4
+ version: 0.15.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Uwe Kubosch
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-10-03 00:00:00.000000000 Z
11
+ date: 2023-04-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: caxlsx_rails
@@ -145,7 +145,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
145
145
  - !ruby/object:Gem::Version
146
146
  version: '0'
147
147
  requirements: []
148
- rubygems_version: 3.3.7
148
+ rubygems_version: 3.4.6
149
149
  signing_key:
150
150
  specification_version: 4
151
151
  summary: Simple data warehouse and drilldown.