mondrian-rest 0.7.8-java → 0.7.9-java
Sign up to get free protection for your applications and to get access to all the features.
- 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
|