kuji-cube 1.5.8 → 1.5.9

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.
Files changed (3) hide show
  1. data/lib/cube/cube.rb +13 -17
  2. data/lib/cube/version.rb +1 -1
  3. metadata +7 -7
data/lib/cube/cube.rb CHANGED
@@ -28,7 +28,11 @@ module XMLA
28
28
 
29
29
  def as_table
30
30
  return [table] if y_size == 0
31
- clean_table(table, y_size).reduce([]) { |result, row| result << row.flatten }
31
+ clean_table(table).reduce([]) { |result, row|
32
+ flat_row = row.flatten
33
+ result << flat_row unless flat_row.all?(&:blank?)
34
+ result
35
+ }
32
36
  end
33
37
 
34
38
  def axes
@@ -58,7 +62,9 @@ module XMLA
58
62
  cell_data[0]
59
63
  else
60
64
  (0...y_axe.size).reduce(header) do |result, j|
61
- result << ( y_axe[j] + (0...x_size).map { |i| cell_data[i + j + ((x_size - 1) * j)] })
65
+ values = (0...x_size).map { |i| cell_data[i + j + ((x_size - 1) * j)] }
66
+ result << ( y_axe[j] + values) if values.any?{|d| !d.blank? && !d[:value].blank? } && y_axe[j].any?{|d| !d.blank? }
67
+ result
62
68
  end
63
69
  end
64
70
  end
@@ -71,8 +77,8 @@ module XMLA
71
77
  def initialize(query, catalog)
72
78
  @query = query
73
79
  @catalog = catalog
74
- # @response.http.raw_body
75
80
  @response = get_response
81
+ # puts @response.http.raw_body
76
82
  self
77
83
  end
78
84
 
@@ -88,20 +94,10 @@ module XMLA
88
94
  end
89
95
 
90
96
  #cleanup table so items don't repeat (if they are same)
91
- def clean_table(table, number_of_colums)
92
- above_row = []
93
- #filter if they are not last column, and they are same as the item on the row above
94
- table.reduce([]) { |result, row|
95
- result << row.each_with_index.map do |item,i|
96
- if i == number_of_colums
97
- item
98
- else
99
- item == above_row[i] ? '' : item
100
- end
101
- end
102
- above_row = row
103
- result
104
- }
97
+ def clean_table(table)
98
+ table.uniq_by do |row|
99
+ row.map(&:hash).join
100
+ end
105
101
  end
106
102
 
107
103
  def cell_data
data/lib/cube/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Cube
2
- VERSION = "1.5.8"
2
+ VERSION = "1.5.9"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kuji-cube
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.8
4
+ version: 1.5.9
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -14,7 +14,7 @@ date: 2012-05-16 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: httpi
17
- requirement: &70357147224700 !ruby/object:Gem::Requirement
17
+ requirement: &70234149259900 !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - =
@@ -22,10 +22,10 @@ dependencies:
22
22
  version: 0.9.7
23
23
  type: :runtime
24
24
  prerelease: false
25
- version_requirements: *70357147224700
25
+ version_requirements: *70234149259900
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: wasabi
28
- requirement: &70357147224080 !ruby/object:Gem::Requirement
28
+ requirement: &70234149259280 !ruby/object:Gem::Requirement
29
29
  none: false
30
30
  requirements:
31
31
  - - =
@@ -33,10 +33,10 @@ dependencies:
33
33
  version: 2.0.0
34
34
  type: :runtime
35
35
  prerelease: false
36
- version_requirements: *70357147224080
36
+ version_requirements: *70234149259280
37
37
  - !ruby/object:Gem::Dependency
38
38
  name: savon
39
- requirement: &70357147223420 !ruby/object:Gem::Requirement
39
+ requirement: &70234149258620 !ruby/object:Gem::Requirement
40
40
  none: false
41
41
  requirements:
42
42
  - - =
@@ -44,7 +44,7 @@ dependencies:
44
44
  version: 0.9.7
45
45
  type: :runtime
46
46
  prerelease: false
47
- version_requirements: *70357147223420
47
+ version_requirements: *70234149258620
48
48
  description: Eases the pain I had to go through to get to the data out of XMLA based
49
49
  OLAP provider(Mondiran, Pentaho, icCube)
50
50
  email: