kuji-cube 1.5.7 → 1.5.8

Sign up to get free protection for your applications and to get access to all the features.
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: