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.
- 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
|