kuji-cube 1.5.0

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.
@@ -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].&amp;[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].&amp;[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].&amp;[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].&amp;[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].&amp;[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].&amp;[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].&amp;[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].&amp;[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].&amp;[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].&amp;[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].&amp;[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].&amp;[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].&amp;[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].&amp;[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].&amp;[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].&amp;[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].&amp;[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].&amp;[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].&amp;[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].&amp;[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].&amp;[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].&amp;[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].&amp;[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].&amp;[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].&amp;[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].&amp;[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].&amp;[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].&amp;[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].&amp;[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].&amp;[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].&amp;[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].&amp;[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].&amp;[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].&amp;[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].&amp;[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].&amp;[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].&amp;[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].&amp;[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].&amp;[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].&amp;[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
@@ -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