kuji-cube 1.5.7 → 1.5.8

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/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- kuji-cube (1.5.5)
4
+ kuji-cube (1.5.7)
5
5
  httpi (= 0.9.7)
6
6
  savon (= 0.9.7)
7
7
  wasabi (= 2.0.0)
@@ -27,7 +27,6 @@ GEM
27
27
  linecache19 (0.5.13)
28
28
  ruby_core_source (>= 0.1.4)
29
29
  nokogiri (1.5.5)
30
- nokogiri (1.5.5-java)
31
30
  nori (1.1.0)
32
31
  rack (1.4.1)
33
32
  rbx-require-relative (0.0.9)
data/lib/cube/cube.rb CHANGED
@@ -23,10 +23,10 @@ module XMLA
23
23
  end
24
24
 
25
25
  def Cube.execute_scalar(query, catalog = XMLA.catalog)
26
- BigDecimal.new Cube.new(query, catalog).as_table[0]
26
+ BigDecimal.new Cube.new(query, catalog).as_table[0][:value]
27
27
  end
28
28
 
29
- def as_table
29
+ def as_table
30
30
  return [table] if y_size == 0
31
31
  clean_table(table, y_size).reduce([]) { |result, row| result << row.flatten }
32
32
  end
@@ -37,12 +37,13 @@ module XMLA
37
37
  result << tuple(axe).reduce([]) { |y, member|
38
38
  data = (member[0] == :member) ? member[1] : member[:member]
39
39
  if ( data.class == Hash || data.size == 1 )
40
- # y << [data[:caption].strip].flatten
40
+ # y << [data[:caption].strip].flatten
41
41
  y << [data].flatten
42
+ # y << [Hash[*data.map{|d| [d.first,d.last.to_s]}.flatten]].flatten
42
43
  else
43
44
  y << data.select { |item_data| item_data.class == Hash }.reduce([]) do |z,item_data|
44
- z << item_data
45
- # z << item_data[:caption].strip
45
+ z << [item_data].flatten
46
+ # z << item_data[:caption].strip
46
47
  end
47
48
  end
48
49
  }
@@ -57,7 +58,7 @@ module XMLA
57
58
  cell_data[0]
58
59
  else
59
60
  (0...y_axe.size).reduce(header) do |result, j|
60
- result << ( y_axe[j] + (0...x_size).map { |i| cell_data[i + j] })
61
+ result << ( y_axe[j] + (0...x_size).map { |i| cell_data[i + j + ((x_size - 1) * j)] })
61
62
  end
62
63
  end
63
64
  end
@@ -70,6 +71,7 @@ module XMLA
70
71
  def initialize(query, catalog)
71
72
  @query = query
72
73
  @catalog = catalog
74
+ # @response.http.raw_body
73
75
  @response = get_response
74
76
  self
75
77
  end
@@ -92,9 +94,9 @@ module XMLA
92
94
  table.reduce([]) { |result, row|
93
95
  result << row.each_with_index.map do |item,i|
94
96
  if i == number_of_colums
95
- item
97
+ item
96
98
  else
97
- item == above_row[i] ? '' : item
99
+ item == above_row[i] ? '' : item
98
100
  end
99
101
  end
100
102
  above_row = row
@@ -104,16 +106,15 @@ module XMLA
104
106
 
105
107
  def cell_data
106
108
  cell_data = @response.to_hash[:execute_response][:return][:root][:cell_data]
107
- return [""] if cell_data.nil?
108
- @data ||= cell_data.reduce([]) do |data, cell|
109
- cell[1].reduce(data) do |data, value|
110
- # data << (value.class == Hash ? (value[:fmt_value] || value[:value]) : value[1] )
111
- data << (value.class == Hash ? value : {:value => value[1]} )
109
+ return {} if cell_data.nil?
110
+ @data ||= [(cell_data[:cell])].flatten.reduce({}) do |data,cell|
111
+ data.tap do|data|
112
+ data[cell.delete(:@cell_ordinal).to_i] = cell.class == Hash ? cell : {:value => cell[1]} rescue debugger
112
113
  end
113
114
  end
114
115
  end
115
116
 
116
- def tuple axe
117
+ def tuple axe
117
118
  axe[:tuples].nil? ? [] : axe[:tuples][:tuple]
118
119
  end
119
120
 
@@ -121,15 +122,15 @@ module XMLA
121
122
  @response.to_hash[:execute_response][:return][:root][:axes][:axis]
122
123
  end
123
124
 
124
- def x_axe
125
- @x_axe ||= axes[0]
125
+ def x_axe
126
+ @x_axe ||= axes[0]
126
127
  end
127
128
 
128
129
  def y_axe
129
130
  @y_axe ||= axes[1]
130
131
  end
131
132
 
132
- def y_size
133
+ def y_size
133
134
  (y_axe.nil? || y_axe[0].nil?) ? 0 : y_axe[0].size
134
135
  end
135
136
 
@@ -140,14 +141,14 @@ module XMLA
140
141
  def Cube.request_body(query, catalog)
141
142
  <<-REQUEST
142
143
  <Command>
143
- <Statement> <![CDATA[ #{query} ]]> </Statement>
144
+ <Statement> <![CDATA[ #{query} ]]> </Statement>
144
145
  </Command>
145
146
  <Properties>
146
- <PropertyList>
147
+ <PropertyList>
147
148
  <Catalog>#{catalog}</Catalog>
148
- <Format>Multidimensional</Format>
149
+ <Format>Multidimensional</Format>
149
150
  <AxisFormat>TupleFormat</AxisFormat>
150
- </PropertyList>
151
+ </PropertyList>
151
152
  </Properties>
152
153
  REQUEST
153
154
  end
data/lib/cube/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Cube
2
- VERSION = "1.5.7"
2
+ VERSION = "1.5.8"
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.7
4
+ version: 1.5.8
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: &70299165166140 !ruby/object:Gem::Requirement
17
+ requirement: &70357147224700 !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: *70299165166140
25
+ version_requirements: *70357147224700
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: wasabi
28
- requirement: &70299165165520 !ruby/object:Gem::Requirement
28
+ requirement: &70357147224080 !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: *70299165165520
36
+ version_requirements: *70357147224080
37
37
  - !ruby/object:Gem::Dependency
38
38
  name: savon
39
- requirement: &70299165164860 !ruby/object:Gem::Requirement
39
+ requirement: &70357147223420 !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: *70299165164860
47
+ version_requirements: *70357147223420
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: