cell_set 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -27,7 +27,8 @@ module CellSet
27
27
  axis.cell_set = self
28
28
  axis
29
29
  elsif axis.is_a?(Hash)
30
- CellSetAxis.new(:cell_set => self).from_json(axis.to_json)
30
+ axis['cell_set'] = self
31
+ CellSetAxis.new(axis)
31
32
  else
32
33
  throw ArgumentError
33
34
  end
@@ -87,6 +88,7 @@ module CellSet
87
88
  k = 0
88
89
  @axes.each do |axis|
89
90
  coordinate = coordinates[k]
91
+ k += 1
90
92
  if coordinate < 0 || coordinate >= axis.positionCount
91
93
  throw IndexError, "Coordinate #{coordinate} of axis #{k} is out of range (#{bounds.join(", ")})"
92
94
  end
@@ -36,7 +36,7 @@ module CellSet
36
36
  @cell_set = if cell_set.is_a?(CellSet)
37
37
  cell_set
38
38
  elsif cell_set.is_a?(Hash)
39
- CellSet.new.from_json(cell_set.to_json)
39
+ CellSet.new(cell_set)
40
40
  else
41
41
  throw ArgumentError
42
42
  end
@@ -56,7 +56,7 @@ module CellSet
56
56
  if position.is_a?(Position)
57
57
  position
58
58
  elsif position.is_a?(Hash)
59
- Position.new.from_json(position.to_json)
59
+ Position.new(position)
60
60
  else
61
61
  throw ArgumentError
62
62
  end
@@ -37,7 +37,7 @@ module CellSet
37
37
  if member.is_a?(Member)
38
38
  member
39
39
  elsif member.is_a?(Hash)
40
- Member.new.from_json(member.to_json)
40
+ Member.new(member)
41
41
  else
42
42
  throw ArgumentError
43
43
  end
@@ -1,3 +1,3 @@
1
1
  module Version
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
data/lib/cell_set.rb CHANGED
@@ -13,11 +13,11 @@ end
13
13
  require "cell_set/#{file}"
14
14
  end
15
15
 
16
- %w(ruby).each do |file|
17
- require "mondrian/olap/cell_set/#{file}"
18
- end
19
-
20
16
  if RUBY_PLATFORM == "java"
17
+ %w(ruby).each do |file|
18
+ require "mondrian/olap/cell_set/#{file}"
19
+ end
20
+
21
21
  ActiveSupport.on_load(:cell_set_model) do
22
22
  Java::Mondrian::olap4j::MondrianOlap4jCellSet.send(:include, Mondrian::OLAP::CellSet::Ruby)
23
23
  Mondrian::OLAP::Result.send(:include, ::CellSet::Result)
@@ -79,6 +79,55 @@ describe CellSet::CellSet do
79
79
  end
80
80
  end
81
81
 
82
+ context "cells" do
83
+ let(:cellHash) do
84
+ {
85
+ "0" => {
86
+ "formatted_value" => "10.0",
87
+ "value" => 10.0
88
+ },
89
+ "4" => {
90
+ "formatted_value" => "11.0",
91
+ "value" => 11.0
92
+ },
93
+ "6" => {
94
+ "formatted_value" => "12.0",
95
+ "value" => 12.0
96
+ }
97
+ }
98
+ end
99
+
100
+ let(:cell_set) do
101
+ cell_set = Factory.build(:cell_set)
102
+
103
+ cell_set.axes = [0, 1].map do |ordinal|
104
+ axis = Factory.build(:cell_set_axis, :axis_ordinal => ordinal)
105
+ axis.should_receive(:positionCount).at_least(:once).and_return(5)
106
+ axis
107
+ end
108
+
109
+ cell_set.instance_variable_set(:@cellHash, cellHash)
110
+
111
+ cell_set
112
+ end
113
+
114
+ it "should have maxOrdinal" do
115
+ cell_set.maxOrdinal.should == 25
116
+ end
117
+
118
+ it "should have cells" do
119
+ cell_set.maxOrdinal.times do |num|
120
+ if cellHash.keys.include?(num.to_s)
121
+ cell_set.cell(num).value.should == cellHash[num.to_s]["value"]
122
+ cell_set.cell(cell_set.ordinalToCoordinates(num)).value == cellHash[num.to_s]["value"]
123
+ else
124
+ cell_set.cell(num).value.should be_nil
125
+ cell_set.cell(cell_set.ordinalToCoordinates(num)).value.should be_nil
126
+ end
127
+ end
128
+ end
129
+ end
130
+
82
131
  context "Serialization" do
83
132
  let(:column_position) do
84
133
  Factory.build(:position, :ordinal => 0)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cell_set
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-03-23 00:00:00.000000000Z
12
+ date: 2012-03-26 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport