rgviz-rails 0.52 → 0.53
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.
- data/lib/rgviz_rails/executor.rb +6 -0
- data/spec/rgviz/executor_spec.rb +36 -0
- metadata +3 -3
data/lib/rgviz_rails/executor.rb
CHANGED
@@ -275,6 +275,7 @@ module Rgviz
|
|
275
275
|
if @group_bys.include?(original_column)
|
276
276
|
hash = {}
|
277
277
|
hash[:v] = key[group_i] unless @query.options && @query.options.no_values
|
278
|
+
hash[:v] = 0 if hash[:v].nil? && is_count_column(@query.select.columns[i])
|
278
279
|
|
279
280
|
format = @formats[original_column]
|
280
281
|
hash[:f] = format_value(@table.cols[i], format, hash[:v]) if format
|
@@ -288,6 +289,7 @@ module Rgviz
|
|
288
289
|
|
289
290
|
hash = {}
|
290
291
|
hash[:v] = v unless @query.options && @query.options.no_values
|
292
|
+
hash[:v] = 0 if hash[:v].nil? && is_count_column(@query.select.columns[i])
|
291
293
|
|
292
294
|
format = @formats[original_column]
|
293
295
|
hash[:f] = format_value(@table.cols[i], format, hash[:v]) if format
|
@@ -301,6 +303,10 @@ module Rgviz
|
|
301
303
|
end
|
302
304
|
end
|
303
305
|
|
306
|
+
def is_count_column(col)
|
307
|
+
col.is_a?(AggregateColumn) && col.function == AggregateColumn::Count
|
308
|
+
end
|
309
|
+
|
304
310
|
def column_id(col, i)
|
305
311
|
case col
|
306
312
|
when IdColumn
|
data/spec/rgviz/executor_spec.rb
CHANGED
@@ -471,6 +471,42 @@ describe Executor do
|
|
471
471
|
end
|
472
472
|
end
|
473
473
|
|
474
|
+
it "processes pivot with zeros instead of nulls in count", :focus => true do
|
475
|
+
Person.make :name => 'Eng', :birthday => '2000-01-12', :age => 1000
|
476
|
+
Person.make :name => 'Eng', :birthday => '2000-01-12', :age => 500
|
477
|
+
Person.make :name => 'Eng', :birthday => '2000-01-13', :age => 600
|
478
|
+
Person.make :name => 'Sales', :birthday => '2000-01-12', :age => 400
|
479
|
+
Person.make :name => 'Sales', :birthday => '2000-01-12', :age => 350
|
480
|
+
Person.make :name => 'Marketing', :birthday => '2000-01-13', :age => 800
|
481
|
+
|
482
|
+
table = exec 'select name, count(age) group by name pivot birthday order by name'
|
483
|
+
|
484
|
+
table.cols.length.should == 3
|
485
|
+
|
486
|
+
i = 0
|
487
|
+
[['c0', :string, 'name'],
|
488
|
+
['c1', :number, '2000-01-12 count(age)'],
|
489
|
+
['c2', :number, '2000-01-13 count(age)']].each do |id, type, label|
|
490
|
+
table.cols[i].id.should == id
|
491
|
+
table.cols[i].type.should == type
|
492
|
+
table.cols[i].label.should == label
|
493
|
+
i += 1
|
494
|
+
end
|
495
|
+
|
496
|
+
table.rows.length.should == 3
|
497
|
+
|
498
|
+
i = 0
|
499
|
+
[['Eng', 2, 1],
|
500
|
+
['Marketing', 0, 1],
|
501
|
+
['Sales', 2, 0]].each do |values|
|
502
|
+
table.rows[i].c.length.should == 3
|
503
|
+
values.each_with_index do |v, j|
|
504
|
+
table.rows[i].c[j].v.should == v
|
505
|
+
end
|
506
|
+
i += 1
|
507
|
+
end
|
508
|
+
end
|
509
|
+
|
474
510
|
# Formatting
|
475
511
|
it_processes_single_select_column 'false format false "%s is falsey"', 'c0', :boolean, false, 'false', 'false is falsey'
|
476
512
|
it_processes_single_select_column '1 format 1 "%.2f"', 'c0', :number, 1, '1', '1.00'
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rgviz-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: '0.
|
4
|
+
version: '0.53'
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -13,7 +13,7 @@ date: 2012-01-18 00:00:00.000000000Z
|
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rgviz
|
16
|
-
requirement: &
|
16
|
+
requirement: &70094420919240 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,7 +21,7 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70094420919240
|
25
25
|
description:
|
26
26
|
email: aborenszweig@manas.com.ar
|
27
27
|
executables: []
|