kuji-cube 1.5.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.document +5 -0
- data/.gitignore +53 -0
- data/.rspec +2 -0
- data/Gemfile +15 -0
- data/Gemfile.lock +82 -0
- data/LICENSE.txt +20 -0
- data/README.md +69 -0
- data/Rakefile +38 -0
- data/kuji-cube.gemspec +28 -0
- data/lib/cube/cube.rb +154 -0
- data/lib/cube/olap_result.rb +13 -0
- data/lib/cube/version.rb +3 -0
- data/lib/cube/xmla.rb +9 -0
- data/lib/cube.rb +2 -0
- data/lib/wsdl/xmla.xml +104 -0
- data/spec/cassettes/.yml +40 -0
- data/spec/cassettes/formatted_values.yml +183 -0
- data/spec/cassettes/kvartovi_u_recima.yml +167 -0
- data/spec/cassettes/kvatovi_u_koloni.yml +169 -0
- data/spec/cassettes/member_query.yml +331 -0
- data/spec/cassettes/mondrian_broj_intervencija.yml +269 -0
- data/spec/cassettes/mondrian_jedan_red_odgovor.yml +171 -0
- data/spec/cassettes/mondrian_nula_redaka.yml +159 -0
- data/spec/cassettes/mondrian_scalar_value.yml +166 -0
- data/spec/cassettes/mondrian_vrati_samo_jedan_broj.yml +166 -0
- data/spec/cassettes/razlog_prijave_i_kvart.yml +219 -0
- data/spec/cube_spec.rb +143 -0
- data/spec/spec_helper.rb +53 -0
- metadata +112 -0
@@ -0,0 +1,219 @@
|
|
1
|
+
---
|
2
|
+
- !ruby/struct:VCR::HTTPInteraction
|
3
|
+
request: !ruby/struct:VCR::Request
|
4
|
+
method: :post
|
5
|
+
uri: http://localhost:8282/icCube/xmla
|
6
|
+
body: ! "<?xml version=\"1.0\" encoding=\"UTF-8\"?><env:Envelope xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\"
|
7
|
+
xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:wsdl=\"http://tempuri.org/wsdl/\"
|
8
|
+
xmlns:env=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:ins0=\"http://tempuri.org/type\"><env:Body><Execute
|
9
|
+
xmlns=\"urn:schemas-microsoft-com:xml-analysis\"><Command> <Statement> <![CDATA[
|
10
|
+
select [Measures].[Broj] on COLUMNS, non empty topcount ( [Razlog prijave].[Razlog].children
|
11
|
+
* [Lokacija].[Kvart].children , 20, [Measures].[Broj] ) on ROWS from [GOSJAR]
|
12
|
+
]]> </Statement> </Command> <Properties> <PropertyList> <Catalog>GOSJAR</Catalog>\n
|
13
|
+
\ <Format>Multidimensional</Format> <AxisFormat>TupleFormat</AxisFormat>
|
14
|
+
</PropertyList> </Properties></Execute></env:Body></env:Envelope>"
|
15
|
+
headers:
|
16
|
+
soapaction:
|
17
|
+
- ! '"urn:schemas-microsoft-com:xml-analysis:Execute"'
|
18
|
+
content-type:
|
19
|
+
- text/xml;charset=UTF-8
|
20
|
+
content-length:
|
21
|
+
- '788'
|
22
|
+
response: !ruby/struct:VCR::Response
|
23
|
+
status: !ruby/struct:VCR::ResponseStatus
|
24
|
+
code: 200
|
25
|
+
message: OK
|
26
|
+
headers:
|
27
|
+
expires:
|
28
|
+
- Thu, 01-Jan-1970 00:00:00 GMT
|
29
|
+
set-cookie:
|
30
|
+
- JSESSIONID=17ppia5d4a6s4ye5e3kyuvczs;Path=/
|
31
|
+
content-type:
|
32
|
+
- text/xml; charset=utf-8
|
33
|
+
transfer-encoding:
|
34
|
+
- chunked
|
35
|
+
server:
|
36
|
+
- Jetty(6.1.25)
|
37
|
+
body: ! '<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Header><Session
|
38
|
+
SessionId="0015d5a5-fa0b-4c32-ad94-36f4c1a79b55" xmlns="urn:schemas-microsoft-com:xml-analysis"/></soap:Header><soap:Body><ExecuteResponse
|
39
|
+
xmlns="urn:schemas-microsoft-com:xml-analysis"><return><root xmlns="urn:schemas-microsoft-com:xml-analysis:mddataset"
|
40
|
+
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><xs:schema
|
41
|
+
targetNamespace="urn:schemas-microsoft-com:xml-analysis:mddataset" elementFormDefault="qualified"
|
42
|
+
xmlns="urn:schemas-microsoft-com:xml-analysis:mddataset" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:complexType
|
43
|
+
name="MemberType"> <xs:sequence> <xs:any namespace="##targetNamespace"
|
44
|
+
minOccurs="0" maxOccurs="unbounded" processContents="skip"/> </xs:sequence> <xs:attribute
|
45
|
+
name="Hierarchy" type="xs:string"/> </xs:complexType> <xs:complexType
|
46
|
+
name="PropType"> <xs:sequence> <xs:element name="Default"
|
47
|
+
minOccurs="0"/> </xs:sequence> <xs:attribute name="name" type="xs:string"
|
48
|
+
use="required"/> <xs:attribute name="type" type="xs:QName"/> </xs:complexType> <xs:complexType
|
49
|
+
name="TupleType"> <xs:sequence> <xs:element name="Member"
|
50
|
+
type="MemberType" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <xs:complexType
|
51
|
+
name="MembersType"> <xs:sequence> <xs:element name="Member"
|
52
|
+
type="MemberType" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> <xs:attribute
|
53
|
+
name="Hierarchy" type="xs:string" use="required"/> </xs:complexType> <xs:complexType
|
54
|
+
name="TuplesType"> <xs:sequence> <xs:element name="Tuple"
|
55
|
+
type="TupleType" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <xs:group
|
56
|
+
name="SetType"> <xs:choice> <xs:element name="Members" type="MembersType"/> <xs:element
|
57
|
+
name="Tuples" type="TuplesType"/> <xs:element name="CrossProduct"
|
58
|
+
type="SetListType"/> <xs:element name="Union"> <xs:complexType> <xs:group
|
59
|
+
ref="SetType" minOccurs="0" maxOccurs="unbounded"/> </xs:complexType> </xs:element> </xs:choice> </xs:group> <xs:complexType
|
60
|
+
name="SetListType"> <xs:group ref="SetType" minOccurs="0" maxOccurs="unbounded"/> <xs:attribute
|
61
|
+
name="Size" type="xs:unsignedInt"/> </xs:complexType> <xs:complexType
|
62
|
+
name="OlapInfo"> <xs:sequence> <xs:element name="CubeInfo"> <xs:complexType> <xs:sequence> <xs:element
|
63
|
+
name="Cube" maxOccurs="unbounded"> <xs:complexType> <xs:sequence> <xs:element
|
64
|
+
name="CubeName" type="xs:string"/> <xs:element
|
65
|
+
name="LastDataUpdate" minOccurs="0" type="xs:dateTime"/> <xs:element
|
66
|
+
name="LastSchemaUpdate" minOccurs="0" type="xs:dateTime"/> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:element
|
67
|
+
name="AxesInfo"> <xs:complexType> <xs:sequence> <xs:element
|
68
|
+
name="AxisInfo" maxOccurs="unbounded"> <xs:complexType> <xs:sequence> <xs:element
|
69
|
+
name="HierarchyInfo" minOccurs="0" maxOccurs="unbounded"> <xs:complexType> <xs:sequence> <xs:any
|
70
|
+
namespace="##targetNamespace" minOccurs="0" maxOccurs="unbounded" processContents="skip"/> </xs:sequence> <xs:attribute
|
71
|
+
name="name" type="xs:string" use="required"/> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute
|
72
|
+
name="name" type="xs:string"/> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:element
|
73
|
+
name="CellInfo"> <xs:complexType> <xs:choice
|
74
|
+
minOccurs="0" maxOccurs="unbounded"> <xs:any namespace="##targetNamespace"
|
75
|
+
minOccurs="0" maxOccurs="unbounded" processContents="skip"/> </xs:choice> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> <xs:complexType
|
76
|
+
name="Axes"> <xs:sequence> <xs:element name="Axis" maxOccurs="unbounded"> <xs:complexType> <xs:group
|
77
|
+
ref="SetType" minOccurs="0" maxOccurs="unbounded"/> <xs:attribute
|
78
|
+
name="name" type="xs:string"/> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> <xs:complexType
|
79
|
+
name="CellData"> <xs:sequence> <xs:element name="Cell" minOccurs="0"
|
80
|
+
maxOccurs="unbounded"> <xs:complexType> <xs:sequence> <xs:any
|
81
|
+
namespace="##targetNamespace" minOccurs="0" maxOccurs="unbounded" processContents="skip"/> </xs:sequence> <xs:attribute
|
82
|
+
name="CellOrdinal" type="xs:unsignedInt" use="required"/> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> <xs:element
|
83
|
+
name="root"> <xs:complexType> <xs:sequence> <xs:any
|
84
|
+
namespace="http://www.w3.org/2001/XMLSchema" processContents="strict" minOccurs="0"/> <xs:element
|
85
|
+
name="OlapInfo" type="OlapInfo" minOccurs="0"/> <xs:element name="Axes"
|
86
|
+
type="Axes" minOccurs="0"/> <xs:element name="CellData" type="CellData"
|
87
|
+
minOccurs="0"/> </xs:sequence> </xs:complexType> </xs:element></xs:schema>
|
88
|
+
|
89
|
+
<OlapInfo><CubeInfo><Cube><CubeName>GOSJAR</CubeName><LastDataUpdate xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">2012-02-09T09:45:32</LastDataUpdate><LastSchemaUpdate
|
90
|
+
xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">2012-02-09T09:45:32</LastSchemaUpdate></Cube></CubeInfo><AxesInfo><AxisInfo
|
91
|
+
name="Axis0"><HierarchyInfo name="[Measures]"><UName name="[Measures].[MEMBER_UNIQUE_NAME]"
|
92
|
+
type="xsd:string"/><Caption name="[Measures].[MEMBER_CAPTION]" type="xsd:string"/><LName
|
93
|
+
name="[Measures].[LEVEL_UNIQUE_NAME]" type="xsd:string"/><LNum name="[Measures].[LEVEL_NUMBER]"
|
94
|
+
type="xsd:int"/><DisplayInfo name="[Measures].[DISPLAY_INFO]" type="xsd:unsignedInt"/></HierarchyInfo></AxisInfo><AxisInfo
|
95
|
+
name="Axis1"><HierarchyInfo name="[Razlog prijave].[Razlog]"><UName name="[Razlog
|
96
|
+
prijave].[Razlog].[MEMBER_UNIQUE_NAME]" type="xsd:string"/><Caption name="[Razlog
|
97
|
+
prijave].[Razlog].[MEMBER_CAPTION]" type="xsd:string"/><LName name="[Razlog
|
98
|
+
prijave].[Razlog].[LEVEL_UNIQUE_NAME]" type="xsd:string"/><LNum name="[Razlog
|
99
|
+
prijave].[Razlog].[LEVEL_NUMBER]" type="xsd:int"/><DisplayInfo name="[Razlog
|
100
|
+
prijave].[Razlog].[DISPLAY_INFO]" type="xsd:unsignedInt"/></HierarchyInfo><HierarchyInfo
|
101
|
+
name="[Lokacija].[Kvart]"><UName name="[Lokacija].[Kvart].[MEMBER_UNIQUE_NAME]"
|
102
|
+
type="xsd:string"/><Caption name="[Lokacija].[Kvart].[MEMBER_CAPTION]" type="xsd:string"/><LName
|
103
|
+
name="[Lokacija].[Kvart].[LEVEL_UNIQUE_NAME]" type="xsd:string"/><LNum name="[Lokacija].[Kvart].[LEVEL_NUMBER]"
|
104
|
+
type="xsd:int"/><DisplayInfo name="[Lokacija].[Kvart].[DISPLAY_INFO]" type="xsd:unsignedInt"/></HierarchyInfo></AxisInfo><AxisInfo
|
105
|
+
name="SlicerAxis"><HierarchyInfo name="[Vrsta].[Vrsta]"><UName name="[Vrsta].[Vrsta].[MEMBER_UNIQUE_NAME]"
|
106
|
+
type="xsd:string"/><Caption name="[Vrsta].[Vrsta].[MEMBER_CAPTION]" type="xsd:string"/><LName
|
107
|
+
name="[Vrsta].[Vrsta].[LEVEL_UNIQUE_NAME]" type="xsd:string"/><LNum name="[Vrsta].[Vrsta].[LEVEL_NUMBER]"
|
108
|
+
type="xsd:int"/><DisplayInfo name="[Vrsta].[Vrsta].[DISPLAY_INFO]" type="xsd:unsignedInt"/></HierarchyInfo><HierarchyInfo
|
109
|
+
name="[Ulica].[ulica]"><UName name="[Ulica].[ulica].[MEMBER_UNIQUE_NAME]" type="xsd:string"/><Caption
|
110
|
+
name="[Ulica].[ulica].[MEMBER_CAPTION]" type="xsd:string"/><LName name="[Ulica].[ulica].[LEVEL_UNIQUE_NAME]"
|
111
|
+
type="xsd:string"/><LNum name="[Ulica].[ulica].[LEVEL_NUMBER]" type="xsd:int"/><DisplayInfo
|
112
|
+
name="[Ulica].[ulica].[DISPLAY_INFO]" type="xsd:unsignedInt"/></HierarchyInfo><HierarchyInfo
|
113
|
+
name="[Produkt].[Produkt]"><UName name="[Produkt].[Produkt].[MEMBER_UNIQUE_NAME]"
|
114
|
+
type="xsd:string"/><Caption name="[Produkt].[Produkt].[MEMBER_CAPTION]" type="xsd:string"/><LName
|
115
|
+
name="[Produkt].[Produkt].[LEVEL_UNIQUE_NAME]" type="xsd:string"/><LNum name="[Produkt].[Produkt].[LEVEL_NUMBER]"
|
116
|
+
type="xsd:int"/><DisplayInfo name="[Produkt].[Produkt].[DISPLAY_INFO]" type="xsd:unsignedInt"/></HierarchyInfo></AxisInfo></AxesInfo><CellInfo><Value
|
117
|
+
name="VALUE"/><FmtValue name="FORMATTED_VALUE" type="xsd:string"/><CellOrdinal
|
118
|
+
name="CELL_ORDINAL" type="xsd:unsignedInt"/></CellInfo></OlapInfo><Axes><Axis
|
119
|
+
name="Axis0"><Tuples><Tuple><Member Hierarchy="[Measures]"><UName>[Measures].[Broj]</UName><Caption>Broj</Caption><LName>[Measures].[MeasuresLevel]</LName><LNum>0</LNum><DisplayInfo>0</DisplayInfo></Member></Tuple></Tuples></Axis><Axis
|
120
|
+
name="Axis1"><Tuples><Tuple><Member Hierarchy="[Razlog prijave].[Razlog]"><UName>[Razlog
|
121
|
+
prijave].[razlog].&[1]</UName><Caption>Ne radi svjetiljka</Caption><LName>[Razlog
|
122
|
+
prijave].[Razlog].[razlog]</LName><LNum>1</LNum><DisplayInfo>0</DisplayInfo></Member><Member
|
123
|
+
Hierarchy="[Lokacija].[Kvart]"><UName>[Lokacija].[kvar].&[11]</UName><Caption>NOVI
|
124
|
+
ZAGREB – ZAPAD</Caption><LName>[Lokacija].[Kvart].[kvar]</LName><LNum>1</LNum><DisplayInfo>0</DisplayInfo></Member></Tuple><Tuple><Member
|
125
|
+
Hierarchy="[Razlog prijave].[Razlog]"><UName>[Razlog prijave].[razlog].&[1]</UName><Caption>Ne
|
126
|
+
radi svjetiljka</Caption><LName>[Razlog prijave].[Razlog].[razlog]</LName><LNum>1</LNum><DisplayInfo>131072</DisplayInfo></Member><Member
|
127
|
+
Hierarchy="[Lokacija].[Kvart]"><UName>[Lokacija].[kvar].&[15]</UName><Caption>GORNJA
|
128
|
+
DUBRAVA</Caption><LName>[Lokacija].[Kvart].[kvar]</LName><LNum>1</LNum><DisplayInfo>131072</DisplayInfo></Member></Tuple><Tuple><Member
|
129
|
+
Hierarchy="[Razlog prijave].[Razlog]"><UName>[Razlog prijave].[razlog].&[1]</UName><Caption>Ne
|
130
|
+
radi svjetiljka</Caption><LName>[Razlog prijave].[Razlog].[razlog]</LName><LNum>1</LNum><DisplayInfo>131072</DisplayInfo></Member><Member
|
131
|
+
Hierarchy="[Lokacija].[Kvart]"><UName>[Lokacija].[kvar].&[20]</UName><Caption>SESVETE</Caption><LName>[Lokacija].[Kvart].[kvar]</LName><LNum>1</LNum><DisplayInfo>131072</DisplayInfo></Member></Tuple><Tuple><Member
|
132
|
+
Hierarchy="[Razlog prijave].[Razlog]"><UName>[Razlog prijave].[razlog].&[1]</UName><Caption>Ne
|
133
|
+
radi svjetiljka</Caption><LName>[Razlog prijave].[Razlog].[razlog]</LName><LNum>1</LNum><DisplayInfo>131072</DisplayInfo></Member><Member
|
134
|
+
Hierarchy="[Lokacija].[Kvart]"><UName>[Lokacija].[kvar].&[10]</UName><Caption>NOVI
|
135
|
+
ZAGREB – ISTOK</Caption><LName>[Lokacija].[Kvart].[kvar]</LName><LNum>1</LNum><DisplayInfo>131072</DisplayInfo></Member></Tuple><Tuple><Member
|
136
|
+
Hierarchy="[Razlog prijave].[Razlog]"><UName>[Razlog prijave].[razlog].&[1]</UName><Caption>Ne
|
137
|
+
radi svjetiljka</Caption><LName>[Razlog prijave].[Razlog].[razlog]</LName><LNum>1</LNum><DisplayInfo>131072</DisplayInfo></Member><Member
|
138
|
+
Hierarchy="[Lokacija].[Kvart]"><UName>[Lokacija].[kvar].&[8]</UName><Caption>MAKSIMIR</Caption><LName>[Lokacija].[Kvart].[kvar]</LName><LNum>1</LNum><DisplayInfo>131072</DisplayInfo></Member></Tuple><Tuple><Member
|
139
|
+
Hierarchy="[Razlog prijave].[Razlog]"><UName>[Razlog prijave].[razlog].&[1]</UName><Caption>Ne
|
140
|
+
radi svjetiljka</Caption><LName>[Razlog prijave].[Razlog].[razlog]</LName><LNum>1</LNum><DisplayInfo>131072</DisplayInfo></Member><Member
|
141
|
+
Hierarchy="[Lokacija].[Kvart]"><UName>[Lokacija].[kvar].&[6]</UName><Caption>GORNJI
|
142
|
+
GRAD – MEDVEŠČAK</Caption><LName>[Lokacija].[Kvart].[kvar]</LName><LNum>1</LNum><DisplayInfo>131072</DisplayInfo></Member></Tuple><Tuple><Member
|
143
|
+
Hierarchy="[Razlog prijave].[Razlog]"><UName>[Razlog prijave].[razlog].&[1]</UName><Caption>Ne
|
144
|
+
radi svjetiljka</Caption><LName>[Razlog prijave].[Razlog].[razlog]</LName><LNum>1</LNum><DisplayInfo>131072</DisplayInfo></Member><Member
|
145
|
+
Hierarchy="[Lokacija].[Kvart]"><UName>[Lokacija].[kvar].&[13]</UName><Caption>TREŠNJEVKA
|
146
|
+
– JUG</Caption><LName>[Lokacija].[Kvart].[kvar]</LName><LNum>1</LNum><DisplayInfo>131072</DisplayInfo></Member></Tuple><Tuple><Member
|
147
|
+
Hierarchy="[Razlog prijave].[Razlog]"><UName>[Razlog prijave].[razlog].&[1]</UName><Caption>Ne
|
148
|
+
radi svjetiljka</Caption><LName>[Razlog prijave].[Razlog].[razlog]</LName><LNum>1</LNum><DisplayInfo>131072</DisplayInfo></Member><Member
|
149
|
+
Hierarchy="[Lokacija].[Kvart]"><UName>[Lokacija].[kvar].&[7]</UName><Caption>TRNJE</Caption><LName>[Lokacija].[Kvart].[kvar]</LName><LNum>1</LNum><DisplayInfo>131072</DisplayInfo></Member></Tuple><Tuple><Member
|
150
|
+
Hierarchy="[Razlog prijave].[Razlog]"><UName>[Razlog prijave].[razlog].&[1]</UName><Caption>Ne
|
151
|
+
radi svjetiljka</Caption><LName>[Razlog prijave].[Razlog].[razlog]</LName><LNum>1</LNum><DisplayInfo>131072</DisplayInfo></Member><Member
|
152
|
+
Hierarchy="[Lokacija].[Kvart]"><UName>[Lokacija].[kvar].&[9]</UName><Caption>PEŠČENICA
|
153
|
+
- ŽITNJAK</Caption><LName>[Lokacija].[Kvart].[kvar]</LName><LNum>1</LNum><DisplayInfo>131072</DisplayInfo></Member></Tuple><Tuple><Member
|
154
|
+
Hierarchy="[Razlog prijave].[Razlog]"><UName>[Razlog prijave].[razlog].&[1]</UName><Caption>Ne
|
155
|
+
radi svjetiljka</Caption><LName>[Razlog prijave].[Razlog].[razlog]</LName><LNum>1</LNum><DisplayInfo>131072</DisplayInfo></Member><Member
|
156
|
+
Hierarchy="[Lokacija].[Kvart]"><UName>[Lokacija].[kvar].&[18]</UName><Caption>PODSUSED
|
157
|
+
– VRAPČE</Caption><LName>[Lokacija].[Kvart].[kvar]</LName><LNum>1</LNum><DisplayInfo>131072</DisplayInfo></Member></Tuple><Tuple><Member
|
158
|
+
Hierarchy="[Razlog prijave].[Razlog]"><UName>[Razlog prijave].[razlog].&[1]</UName><Caption>Ne
|
159
|
+
radi svjetiljka</Caption><LName>[Razlog prijave].[Razlog].[razlog]</LName><LNum>1</LNum><DisplayInfo>131072</DisplayInfo></Member><Member
|
160
|
+
Hierarchy="[Lokacija].[Kvart]"><UName>[Lokacija].[kvar].&[14]</UName><Caption>ČRNOMEREC</Caption><LName>[Lokacija].[Kvart].[kvar]</LName><LNum>1</LNum><DisplayInfo>131072</DisplayInfo></Member></Tuple><Tuple><Member
|
161
|
+
Hierarchy="[Razlog prijave].[Razlog]"><UName>[Razlog prijave].[razlog].&[1]</UName><Caption>Ne
|
162
|
+
radi svjetiljka</Caption><LName>[Razlog prijave].[Razlog].[razlog]</LName><LNum>1</LNum><DisplayInfo>131072</DisplayInfo></Member><Member
|
163
|
+
Hierarchy="[Lokacija].[Kvart]"><UName>[Lokacija].[kvar].&[5]</UName><Caption>DONJI
|
164
|
+
GRAD</Caption><LName>[Lokacija].[Kvart].[kvar]</LName><LNum>1</LNum><DisplayInfo>131072</DisplayInfo></Member></Tuple><Tuple><Member
|
165
|
+
Hierarchy="[Razlog prijave].[Razlog]"><UName>[Razlog prijave].[razlog].&[1]</UName><Caption>Ne
|
166
|
+
radi svjetiljka</Caption><LName>[Razlog prijave].[Razlog].[razlog]</LName><LNum>1</LNum><DisplayInfo>131072</DisplayInfo></Member><Member
|
167
|
+
Hierarchy="[Lokacija].[Kvart]"><UName>[Lokacija].[kvar].&[16]</UName><Caption>DONJA
|
168
|
+
DUBRAVA</Caption><LName>[Lokacija].[Kvart].[kvar]</LName><LNum>1</LNum><DisplayInfo>131072</DisplayInfo></Member></Tuple><Tuple><Member
|
169
|
+
Hierarchy="[Razlog prijave].[Razlog]"><UName>[Razlog prijave].[razlog].&[3]</UName><Caption>Ne
|
170
|
+
radi više svjetiljki</Caption><LName>[Razlog prijave].[Razlog].[razlog]</LName><LNum>1</LNum><DisplayInfo>131072</DisplayInfo></Member><Member
|
171
|
+
Hierarchy="[Lokacija].[Kvart]"><UName>[Lokacija].[kvar].&[11]</UName><Caption>NOVI
|
172
|
+
ZAGREB – ZAPAD</Caption><LName>[Lokacija].[Kvart].[kvar]</LName><LNum>1</LNum><DisplayInfo>131072</DisplayInfo></Member></Tuple><Tuple><Member
|
173
|
+
Hierarchy="[Razlog prijave].[Razlog]"><UName>[Razlog prijave].[razlog].&[3]</UName><Caption>Ne
|
174
|
+
radi više svjetiljki</Caption><LName>[Razlog prijave].[Razlog].[razlog]</LName><LNum>1</LNum><DisplayInfo>131072</DisplayInfo></Member><Member
|
175
|
+
Hierarchy="[Lokacija].[Kvart]"><UName>[Lokacija].[kvar].&[10]</UName><Caption>NOVI
|
176
|
+
ZAGREB – ISTOK</Caption><LName>[Lokacija].[Kvart].[kvar]</LName><LNum>1</LNum><DisplayInfo>131072</DisplayInfo></Member></Tuple><Tuple><Member
|
177
|
+
Hierarchy="[Razlog prijave].[Razlog]"><UName>[Razlog prijave].[razlog].&[3]</UName><Caption>Ne
|
178
|
+
radi više svjetiljki</Caption><LName>[Razlog prijave].[Razlog].[razlog]</LName><LNum>1</LNum><DisplayInfo>131072</DisplayInfo></Member><Member
|
179
|
+
Hierarchy="[Lokacija].[Kvart]"><UName>[Lokacija].[kvar].&[7]</UName><Caption>TRNJE</Caption><LName>[Lokacija].[Kvart].[kvar]</LName><LNum>1</LNum><DisplayInfo>131072</DisplayInfo></Member></Tuple><Tuple><Member
|
180
|
+
Hierarchy="[Razlog prijave].[Razlog]"><UName>[Razlog prijave].[razlog].&[37]</UName><Caption>Redovna
|
181
|
+
izmjena</Caption><LName>[Razlog prijave].[Razlog].[razlog]</LName><LNum>1</LNum><DisplayInfo>131072</DisplayInfo></Member><Member
|
182
|
+
Hierarchy="[Lokacija].[Kvart]"><UName>[Lokacija].[kvar].&[13]</UName><Caption>TREŠNJEVKA
|
183
|
+
– JUG</Caption><LName>[Lokacija].[Kvart].[kvar]</LName><LNum>1</LNum><DisplayInfo>131072</DisplayInfo></Member></Tuple><Tuple><Member
|
184
|
+
Hierarchy="[Razlog prijave].[Razlog]"><UName>[Razlog prijave].[razlog].&[1]</UName><Caption>Ne
|
185
|
+
radi svjetiljka</Caption><LName>[Razlog prijave].[Razlog].[razlog]</LName><LNum>1</LNum><DisplayInfo>131072</DisplayInfo></Member><Member
|
186
|
+
Hierarchy="[Lokacija].[Kvart]"><UName>[Lokacija].[kvar].&[12]</UName><Caption>TREŠNJEVKA
|
187
|
+
– SJEVER</Caption><LName>[Lokacija].[Kvart].[kvar]</LName><LNum>1</LNum><DisplayInfo>131072</DisplayInfo></Member></Tuple><Tuple><Member
|
188
|
+
Hierarchy="[Razlog prijave].[Razlog]"><UName>[Razlog prijave].[razlog].&[3]</UName><Caption>Ne
|
189
|
+
radi više svjetiljki</Caption><LName>[Razlog prijave].[Razlog].[razlog]</LName><LNum>1</LNum><DisplayInfo>131072</DisplayInfo></Member><Member
|
190
|
+
Hierarchy="[Lokacija].[Kvart]"><UName>[Lokacija].[kvar].&[20]</UName><Caption>SESVETE</Caption><LName>[Lokacija].[Kvart].[kvar]</LName><LNum>1</LNum><DisplayInfo>131072</DisplayInfo></Member></Tuple><Tuple><Member
|
191
|
+
Hierarchy="[Razlog prijave].[Razlog]"><UName>[Razlog prijave].[razlog].&[37]</UName><Caption>Redovna
|
192
|
+
izmjena</Caption><LName>[Razlog prijave].[Razlog].[razlog]</LName><LNum>1</LNum><DisplayInfo>131072</DisplayInfo></Member><Member
|
193
|
+
Hierarchy="[Lokacija].[Kvart]"><UName>[Lokacija].[kvar].&[15]</UName><Caption>GORNJA
|
194
|
+
DUBRAVA</Caption><LName>[Lokacija].[Kvart].[kvar]</LName><LNum>1</LNum><DisplayInfo>131072</DisplayInfo></Member></Tuple></Tuples></Axis><Axis
|
195
|
+
name="SlicerAxis"><Tuples><Tuple><Member Hierarchy="[Vrsta].[Vrsta]"><UName>[Vrsta].[Vrsta
|
196
|
+
prijave]</UName><Caption>Vrsta prijave</Caption><LName>[Vrsta].[Vrsta].[All-L]</LName><LNum>0</LNum><DisplayInfo>5</DisplayInfo></Member><Member
|
197
|
+
Hierarchy="[Ulica].[ulica]"><UName>[Ulica].[Ulice].[Ulica]</UName><Caption>Ulica</Caption><LName>[Ulica].[ulica].[Ulice]</LName><LNum>0</LNum><DisplayInfo>5092</DisplayInfo></Member><Member
|
198
|
+
Hierarchy="[Produkt].[Produkt]"><UName>[Produkt].[All-M]</UName><Caption>All-M</Caption><LName>[Produkt].[Produkt].[All-L]</LName><LNum>0</LNum><DisplayInfo>15</DisplayInfo></Member></Tuple></Tuples></Axis></Axes><CellData><Cell
|
199
|
+
CellOrdinal="0"><Value xsi:type="xsd:long">1401</Value><FmtValue>1401</FmtValue></Cell><Cell
|
200
|
+
CellOrdinal="1"><Value xsi:type="xsd:long">1383</Value><FmtValue>1383</FmtValue></Cell><Cell
|
201
|
+
CellOrdinal="2"><Value xsi:type="xsd:long">1316</Value><FmtValue>1316</FmtValue></Cell><Cell
|
202
|
+
CellOrdinal="3"><Value xsi:type="xsd:long">1208</Value><FmtValue>1208</FmtValue></Cell><Cell
|
203
|
+
CellOrdinal="4"><Value xsi:type="xsd:long">1043</Value><FmtValue>1043</FmtValue></Cell><Cell
|
204
|
+
CellOrdinal="5"><Value xsi:type="xsd:long">994</Value><FmtValue>994</FmtValue></Cell><Cell
|
205
|
+
CellOrdinal="6"><Value xsi:type="xsd:long">955</Value><FmtValue>955</FmtValue></Cell><Cell
|
206
|
+
CellOrdinal="7"><Value xsi:type="xsd:long">837</Value><FmtValue>837</FmtValue></Cell><Cell
|
207
|
+
CellOrdinal="8"><Value xsi:type="xsd:long">823</Value><FmtValue>823</FmtValue></Cell><Cell
|
208
|
+
CellOrdinal="9"><Value xsi:type="xsd:long">821</Value><FmtValue>821</FmtValue></Cell><Cell
|
209
|
+
CellOrdinal="10"><Value xsi:type="xsd:long">717</Value><FmtValue>717</FmtValue></Cell><Cell
|
210
|
+
CellOrdinal="11"><Value xsi:type="xsd:long">677</Value><FmtValue>677</FmtValue></Cell><Cell
|
211
|
+
CellOrdinal="12"><Value xsi:type="xsd:long">635</Value><FmtValue>635</FmtValue></Cell><Cell
|
212
|
+
CellOrdinal="13"><Value xsi:type="xsd:long">631</Value><FmtValue>631</FmtValue></Cell><Cell
|
213
|
+
CellOrdinal="14"><Value xsi:type="xsd:long">620</Value><FmtValue>620</FmtValue></Cell><Cell
|
214
|
+
CellOrdinal="15"><Value xsi:type="xsd:long">602</Value><FmtValue>602</FmtValue></Cell><Cell
|
215
|
+
CellOrdinal="16"><Value xsi:type="xsd:long">597</Value><FmtValue>597</FmtValue></Cell><Cell
|
216
|
+
CellOrdinal="17"><Value xsi:type="xsd:long">581</Value><FmtValue>581</FmtValue></Cell><Cell
|
217
|
+
CellOrdinal="18"><Value xsi:type="xsd:long">580</Value><FmtValue>580</FmtValue></Cell><Cell
|
218
|
+
CellOrdinal="19"><Value xsi:type="xsd:long">575</Value><FmtValue>575</FmtValue></Cell></CellData></root></return></ExecuteResponse></soap:Body></soap:Envelope>'
|
219
|
+
http_version: '1.1'
|
data/spec/cube_spec.rb
ADDED
@@ -0,0 +1,143 @@
|
|
1
|
+
#encoding: utf-8
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
|
5
|
+
|
6
|
+
|
7
|
+
describe XMLA::Cube do
|
8
|
+
it 'supports multiple items on x axis' do
|
9
|
+
configure_icube
|
10
|
+
VCR.use_cassette('kvatovi_u_koloni') do
|
11
|
+
result = XMLA::Cube.execute("select [Lokacija].[Kvart].children on COLUMNS, [Measures].[Broj] on ROWS from [GOSJAR]")
|
12
|
+
result.rows.count.should == 1
|
13
|
+
result.header.count.should == 18
|
14
|
+
result.rows.join('|').should == "Broj|1422|2259|2148|2733|2004|2607|2829|1611|2581|1945|3602|1356|1696|2327|1228|3186|"
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
it 'supports multiple items on y axis' do
|
19
|
+
configure_icube
|
20
|
+
VCR.use_cassette('kvartovi_u_recima') do
|
21
|
+
result = XMLA::Cube.execute("select [Measures].[Broj] on COLUMNS, non empty topcount( [Lokacija].[Kvart].children, 100, [Measures].[Broj]) on ROWS from [GOSJAR]")
|
22
|
+
result.rows.count.should == 16
|
23
|
+
result.header.join('|').should == '|Broj'
|
24
|
+
result.rows[5].join('|').should == 'TRESNJEVKA - JUG|2607'
|
25
|
+
result.rows[15].join('|').should == 'PODSLJEME|1228'
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
it 'support multiple items on y axis and multiple items on x axis' do
|
30
|
+
configure_icube
|
31
|
+
VCR.use_cassette('razlog_prijave_i_kvart') do
|
32
|
+
result = XMLA::Cube.execute("select [Measures].[Broj] on COLUMNS, non empty topcount ( [Razlog prijave].[Razlog].children * [Lokacija].[Kvart].children , 20, [Measures].[Broj] ) on ROWS from [GOSJAR]")
|
33
|
+
result.rows.count.should == 20
|
34
|
+
result.header.join('|').should == "||Broj"
|
35
|
+
result.rows[1].join('|').should == "|GORNJA DUBRAVA|1383"
|
36
|
+
result.rows[19].join('|').should == "Redovna izmjena|GORNJA DUBRAVA|575"
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
it 'check if request is correct - to fix that bug with class varables not beign visible inside the block' do
|
41
|
+
configure_icube
|
42
|
+
XMLA::Cube.send(:request_body, "SELECT", "GOSJAR").gsub("\n","").gsub(" ", "").should ==
|
43
|
+
"<Command><Statement><![CDATA[SELECT]]></Statement></Command><Properties><PropertyList><Catalog>GOSJAR</Catalog>
|
44
|
+
<Format>Multidimensional</Format><AxisFormat>TupleFormat</AxisFormat></PropertyList></Properties>".gsub("\n","").gsub(" ","")
|
45
|
+
end
|
46
|
+
|
47
|
+
it 'should connect to mondrian' do
|
48
|
+
configure_mondrian
|
49
|
+
|
50
|
+
VCR.use_cassette('mondrian_broj_intervencija') do
|
51
|
+
result = XMLA::Cube.execute("SELECT NON EMPTY {Hierarchize({[Measures].[Broj intervencija]})} ON COLUMNS, NON EMPTY {Hierarchize({[Gradska cetvrt].[Gradska cetvrt].Members})} ON ROWS FROM [Kvarovi]")
|
52
|
+
result.rows.count.should == 16
|
53
|
+
result.header.join('|').should == "|Broj intervencija"
|
54
|
+
result.rows[1].join('|').should == "GORNJI GRAD – MEDVEŠČAK|2,259"
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
it 'should handle the case with only one row in result' do
|
59
|
+
configure_mondrian
|
60
|
+
|
61
|
+
VCR.use_cassette('mondrian_jedan_red_odgovor') do
|
62
|
+
result = XMLA::Cube.execute <<-MDX
|
63
|
+
SELECT NON EMPTY {Hierarchize({[Measures].[Broj intervencija]})} ON COLUMNS,
|
64
|
+
non empty ( { Filter (Hierarchize({[Razlog prijave].children}), [Measures].[Broj intervencija] >= 7000 )}) ON ROWS
|
65
|
+
FROM [Kvarovi]
|
66
|
+
MDX
|
67
|
+
result.rows.count.should == 1
|
68
|
+
result.header.join('|').should == "|Broj intervencija"
|
69
|
+
result.rows[0].join('|').should == "Ne radi svjetiljka|14442"
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
|
74
|
+
it 'should handle the case with zero rows in result' do
|
75
|
+
configure_mondrian
|
76
|
+
|
77
|
+
VCR.use_cassette('mondrian_nula_redaka') do
|
78
|
+
result = XMLA::Cube.execute <<-MDX
|
79
|
+
SELECT NON EMPTY {Hierarchize({[Measures].[Broj intervencija]})} ON COLUMNS,
|
80
|
+
non empty ( { Filter (Hierarchize({[Razlog prijave].children}), [Measures].[Broj intervencija] >= 15000 )}) ON ROWS
|
81
|
+
FROM [Kvarovi]
|
82
|
+
MDX
|
83
|
+
result.rows.count.should == 0
|
84
|
+
result.rows[0].should == nil
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
88
|
+
it 'should handle when scalar value is returned' do
|
89
|
+
configure_mondrian
|
90
|
+
|
91
|
+
VCR.use_cassette('mondrian_scalar_value') do
|
92
|
+
result = XMLA::Cube.execute_scalar <<-MDX
|
93
|
+
SELECT {Hierarchize({[Measures].[Rok otklona]})} ON COLUMNS
|
94
|
+
FROM [Kvarovi]
|
95
|
+
WHERE [Vrijeme prijave].[2011]
|
96
|
+
MDX
|
97
|
+
result.should == 7.356
|
98
|
+
end
|
99
|
+
|
100
|
+
end
|
101
|
+
|
102
|
+
|
103
|
+
it "should return formatted value if available" do
|
104
|
+
configure_mondrian
|
105
|
+
|
106
|
+
VCR.use_cassette('formatted_values') do
|
107
|
+
result = XMLA::Cube.execute <<-MDX
|
108
|
+
SELECT { [Measures].[Scope 1 Carbon] } on COLUMNS,
|
109
|
+
{ [Category].[Energy].Children } on ROWS
|
110
|
+
FROM [Carbon]
|
111
|
+
WHERE [Date].[Year].[2009]
|
112
|
+
MDX
|
113
|
+
result.rows[0][1].should == "3,813,012"
|
114
|
+
result.rows[1][1].should == "3,046,551"
|
115
|
+
end
|
116
|
+
|
117
|
+
end
|
118
|
+
|
119
|
+
describe "getting the members only" do
|
120
|
+
before { configure_mondrian }
|
121
|
+
|
122
|
+
it "should allow queries with just column" do
|
123
|
+
VCR.use_cassette('member_query', :match_requests_on => [:body]) do
|
124
|
+
result = XMLA::Cube.execute_members <<-MDX
|
125
|
+
SELECT { [Category].[Energy].Children } on COLUMNS
|
126
|
+
FROM [Carbon]
|
127
|
+
MDX
|
128
|
+
result.should == [[["Electricity"], ["Natural Gas"]]]
|
129
|
+
end
|
130
|
+
end
|
131
|
+
|
132
|
+
it "should allow queries with just column" do
|
133
|
+
VCR.use_cassette('member_query', :match_requests_on => [:body] ) do
|
134
|
+
result = XMLA::Cube.execute_members <<-MDX
|
135
|
+
SELECT { [Category].[Energy].Children } on COLUMNS,
|
136
|
+
{ [Entity].LastChild } on ROWS
|
137
|
+
FROM [Carbon]
|
138
|
+
MDX
|
139
|
+
result.should == [[["Electricity"], ["Natural Gas"]], [["Wrythe Green Surgery - General Practitioner"]]]
|
140
|
+
end
|
141
|
+
end
|
142
|
+
end
|
143
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,53 @@
|
|
1
|
+
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
2
|
+
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
3
|
+
|
4
|
+
require 'rspec'
|
5
|
+
require 'cube'
|
6
|
+
require 'webmock'
|
7
|
+
require 'vcr'
|
8
|
+
|
9
|
+
begin
|
10
|
+
require 'ruby-debug'
|
11
|
+
rescue
|
12
|
+
puts "debugger not found!"
|
13
|
+
end
|
14
|
+
|
15
|
+
|
16
|
+
# def configure_mondrian
|
17
|
+
# XMLA.configure do |c|
|
18
|
+
# c.endpoint = "http://localhost:8080/mondrian/xmla"
|
19
|
+
# c.catalog = "Husky"
|
20
|
+
# end
|
21
|
+
# end
|
22
|
+
|
23
|
+
|
24
|
+
def configure_icube
|
25
|
+
XMLA.configure do |c|
|
26
|
+
c.endpoint = "http://localhost:8282/icCube/xmla"
|
27
|
+
c.catalog = "GOSJAR"
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
def configure_mondrian
|
32
|
+
XMLA.configure do |c|
|
33
|
+
c.endpoint = "http://localhost:8383/mondrian/xmla"
|
34
|
+
c.catalog = "GOSJAR"
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
|
39
|
+
VCR.config do |c|
|
40
|
+
c.default_cassette_options = { :record => :none }
|
41
|
+
c.cassette_library_dir = 'spec/cassettes'
|
42
|
+
c.stub_with :webmock
|
43
|
+
end
|
44
|
+
|
45
|
+
|
46
|
+
# Requires supporting files with custom matchers and macros, etc,
|
47
|
+
# in ./support/ and its subdirectories.
|
48
|
+
Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
|
49
|
+
|
50
|
+
RSpec.configure do |config|
|
51
|
+
config.filter_run :focus => true
|
52
|
+
config.run_all_when_everything_filtered = true
|
53
|
+
end
|
metadata
ADDED
@@ -0,0 +1,112 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: kuji-cube
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.5.0
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- drKreso
|
9
|
+
- stellard
|
10
|
+
autorequire:
|
11
|
+
bindir: bin
|
12
|
+
cert_chain: []
|
13
|
+
date: 2012-05-16 00:00:00.000000000 Z
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: savon
|
17
|
+
requirement: &70216168646180 !ruby/object:Gem::Requirement
|
18
|
+
none: false
|
19
|
+
requirements:
|
20
|
+
- - ! '>='
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: '0'
|
23
|
+
type: :runtime
|
24
|
+
prerelease: false
|
25
|
+
version_requirements: *70216168646180
|
26
|
+
- !ruby/object:Gem::Dependency
|
27
|
+
name: webmock
|
28
|
+
requirement: &70216168645660 !ruby/object:Gem::Requirement
|
29
|
+
none: false
|
30
|
+
requirements:
|
31
|
+
- - ! '>='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: *70216168645660
|
37
|
+
description: Eases the pain I had to go through to get to the data out of XMLA based
|
38
|
+
OLAP provider(Mondiran, Pentaho, icCube)
|
39
|
+
email:
|
40
|
+
- kresimir.bojcic@gmail.com
|
41
|
+
- scott@kujilabs.com
|
42
|
+
executables: []
|
43
|
+
extensions: []
|
44
|
+
extra_rdoc_files: []
|
45
|
+
files:
|
46
|
+
- .document
|
47
|
+
- .gitignore
|
48
|
+
- .rspec
|
49
|
+
- Gemfile
|
50
|
+
- Gemfile.lock
|
51
|
+
- LICENSE.txt
|
52
|
+
- README.md
|
53
|
+
- Rakefile
|
54
|
+
- kuji-cube.gemspec
|
55
|
+
- lib/cube.rb
|
56
|
+
- lib/cube/cube.rb
|
57
|
+
- lib/cube/olap_result.rb
|
58
|
+
- lib/cube/version.rb
|
59
|
+
- lib/cube/xmla.rb
|
60
|
+
- lib/wsdl/xmla.xml
|
61
|
+
- spec/cassettes/.yml
|
62
|
+
- spec/cassettes/formatted_values.yml
|
63
|
+
- spec/cassettes/kvartovi_u_recima.yml
|
64
|
+
- spec/cassettes/kvatovi_u_koloni.yml
|
65
|
+
- spec/cassettes/member_query.yml
|
66
|
+
- spec/cassettes/mondrian_broj_intervencija.yml
|
67
|
+
- spec/cassettes/mondrian_jedan_red_odgovor.yml
|
68
|
+
- spec/cassettes/mondrian_nula_redaka.yml
|
69
|
+
- spec/cassettes/mondrian_scalar_value.yml
|
70
|
+
- spec/cassettes/mondrian_vrati_samo_jedan_broj.yml
|
71
|
+
- spec/cassettes/razlog_prijave_i_kvart.yml
|
72
|
+
- spec/cube_spec.rb
|
73
|
+
- spec/spec_helper.rb
|
74
|
+
homepage: http://github.com/kujilabs/cube
|
75
|
+
licenses:
|
76
|
+
- MIT
|
77
|
+
post_install_message:
|
78
|
+
rdoc_options: []
|
79
|
+
require_paths:
|
80
|
+
- lib
|
81
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
82
|
+
none: false
|
83
|
+
requirements:
|
84
|
+
- - ! '>='
|
85
|
+
- !ruby/object:Gem::Version
|
86
|
+
version: '0'
|
87
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
88
|
+
none: false
|
89
|
+
requirements:
|
90
|
+
- - ! '>='
|
91
|
+
- !ruby/object:Gem::Version
|
92
|
+
version: '0'
|
93
|
+
requirements: []
|
94
|
+
rubyforge_project:
|
95
|
+
rubygems_version: 1.8.6
|
96
|
+
signing_key:
|
97
|
+
specification_version: 3
|
98
|
+
summary: Get's the data from OLAP cube via XMLA(Mondiran, Pentaho, icCube)
|
99
|
+
test_files:
|
100
|
+
- spec/cassettes/.yml
|
101
|
+
- spec/cassettes/formatted_values.yml
|
102
|
+
- spec/cassettes/kvartovi_u_recima.yml
|
103
|
+
- spec/cassettes/kvatovi_u_koloni.yml
|
104
|
+
- spec/cassettes/member_query.yml
|
105
|
+
- spec/cassettes/mondrian_broj_intervencija.yml
|
106
|
+
- spec/cassettes/mondrian_jedan_red_odgovor.yml
|
107
|
+
- spec/cassettes/mondrian_nula_redaka.yml
|
108
|
+
- spec/cassettes/mondrian_scalar_value.yml
|
109
|
+
- spec/cassettes/mondrian_vrati_samo_jedan_broj.yml
|
110
|
+
- spec/cassettes/razlog_prijave_i_kvart.yml
|
111
|
+
- spec/cube_spec.rb
|
112
|
+
- spec/spec_helper.rb
|