mondrian-rest 0.7.8-java → 0.7.9-java
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.
- checksums.yaml +4 -4
- data/lib/mondrian_rest/query_helper.rb +23 -3
- data/lib/mondrian_rest/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fbd9d6692bb827f1b325d682e9df7872a83be6a5085b0af4ceb41cc4194b59d7
|
4
|
+
data.tar.gz: 8e1d250c08c9c88adec227560d816ee79afe1f6c236f0ab31fa5574e981d3d81
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cc64f9b2911c3e3e7b4142ec91a2796a83190e4abb00a0cb340b0a841d0f706ff43aade8dad0c833e54273b9a4672cf7f2a53223281e4febf9e92fd15bbdaadb
|
7
|
+
data.tar.gz: 55e965893aec267dd80d1acac550d0b9b85443e36485357468c1c27dcc3e7851205dfef6bc0afcc2b0025786b3a2f07f1448da254cb2c3c826f763724e5c32bb
|
@@ -21,13 +21,18 @@ module Mondrian::REST
|
|
21
21
|
begin
|
22
22
|
return cube.member(member_exp)
|
23
23
|
rescue Java::JavaLang::IllegalArgumentException
|
24
|
-
error!("Illegal
|
24
|
+
error!("Illegal expression: #{member_exp}", 400)
|
25
25
|
end
|
26
26
|
end
|
27
27
|
|
28
|
+
def get_named_set(cube, named_set_exp)
|
29
|
+
nss = cube.named_sets
|
30
|
+
nss.find { |ns| ns.name == named_set_exp }
|
31
|
+
end
|
32
|
+
|
28
33
|
##
|
29
34
|
# Parses a string containing a 'cut' expression
|
30
|
-
# It can be a set (`{Dim.Mem, Dim2.Mem2}`), a range (`([Time].[Year].[1997]:[Time].[Year].[1998])`)
|
35
|
+
# It can be a set (`{Dim.Mem, Dim2.Mem2}`), a range (`([Time].[Year].[1997]:[Time].[Year].[1998])`), a member identifier (`[Time].[Year].[1998]`) or a NamedSet.
|
31
36
|
def parse_cut(cube, cut_expr)
|
32
37
|
p = mdx_parser.parseExpression(cut_expr)
|
33
38
|
|
@@ -70,6 +75,13 @@ module Mondrian::REST
|
|
70
75
|
error!("Illegal cut: " + cut_expr, 400)
|
71
76
|
end
|
72
77
|
when org.olap4j.mdx.IdentifierNode
|
78
|
+
|
79
|
+
# does cut_expr look like a NamedSet?
|
80
|
+
s = get_named_set(cube, cut_expr)
|
81
|
+
if !s.nil?
|
82
|
+
return { level: nil, cut: cut_expr, type: :named_set }
|
83
|
+
end
|
84
|
+
|
73
85
|
# if `cut_expr` looks like a member, check that it's level is
|
74
86
|
# equal to `level`
|
75
87
|
m = get_member(cube, cut_expr)
|
@@ -177,6 +189,7 @@ module Mondrian::REST
|
|
177
189
|
cut[:cut]
|
178
190
|
end
|
179
191
|
elsif cut = slicer_axis.find { |lvl, cut|
|
192
|
+
next if cut[:type] == :named_set
|
180
193
|
qa.raw_level.hierarchy == lvl.hierarchy && lvl.depth < qa.depth
|
181
194
|
}
|
182
195
|
slicer_axis.delete(cut[0])
|
@@ -217,7 +230,14 @@ module Mondrian::REST
|
|
217
230
|
|
218
231
|
# slicer axes (cut)
|
219
232
|
if slicer_axis.size >= 1
|
220
|
-
|
233
|
+
puts slicer_axis.inspect
|
234
|
+
query = query.where(slicer_axis.values.map { |v|
|
235
|
+
if v[:type] == :named_set
|
236
|
+
"[#{v[:cut]}]"
|
237
|
+
else
|
238
|
+
v[:cut]
|
239
|
+
end
|
240
|
+
}.join(' * '))
|
221
241
|
end
|
222
242
|
query
|
223
243
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mondrian-rest
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.7.
|
4
|
+
version: 0.7.9
|
5
5
|
platform: java
|
6
6
|
authors:
|
7
7
|
- Manuel Aristarán
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-11-
|
11
|
+
date: 2017-11-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
requirement: !ruby/object:Gem::Requirement
|