activecube-graphql 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 70fc67a7b3e554daec4571dbf025259ea90a132e86fc50d631322c2a39a75631
4
- data.tar.gz: 0eb39688b70e8a042ef2f39f21f4909e934037001cb42f67370fb5d162ce85df
3
+ metadata.gz: 992470f7a32c278749b214f1ca73dece8ec582286fcc97d379b16a7f1775b455
4
+ data.tar.gz: df5e4a79dff0740f6c37b3e08a7ebec7b73fd214c41b70b9a46c78d2fad1d13c
5
5
  SHA512:
6
- metadata.gz: 780293f1d8ead61547734a77c2222449388a6af845fc5c73d5f19e7cb0b9e5cc0f8d7ac048584ad0f16b3ec6b1e3cb58fa0f81b661616ebcefa50370a4fc0c6b
7
- data.tar.gz: 14e018eaa4b571fd3d630cabb9cc1ef2ec51fbbf1650391c69c3f6ded87ed5c9699d77e4b47a4c28547e590e2ab3a7433065a432b0df6d69b70947bd797d227e
6
+ metadata.gz: 223daebf247315236a08e766250661dcbf6d09891b2993c40f059b626b0a7ad23757b3fae948419259ea01235d7ee0f3e3c6407b587217a38d8efeef06bddbe3
7
+ data.tar.gz: d4d084eb7d84489972e03fdde6bf715e25ff85d5e825cfd0de5af998bad72127dc7f35fa779b20d3925b760966d984b16ecc0b70601bf8440f0cfee9deae36b5
@@ -1,5 +1,8 @@
1
1
  <?xml version="1.0" encoding="UTF-8"?>
2
2
  <module type="RUBY_MODULE" version="4">
3
+ <component name="ModuleRunConfigurationManager">
4
+ <shared />
5
+ </component>
3
6
  <component name="NewModuleRootManager">
4
7
  <content url="file://$MODULE_DIR$">
5
8
  <sourceFolder url="file://$MODULE_DIR$/features" isTestSource="true" />
@@ -8,7 +11,7 @@
8
11
  </content>
9
12
  <orderEntry type="jdk" jdkName="RVM: ruby-2.6.3" jdkType="RUBY_SDK" />
10
13
  <orderEntry type="sourceFolder" forTests="false" />
11
- <orderEntry type="library" scope="PROVIDED" name="activecube (v0.1.2, RVM: ruby-2.6.3) [gem]" level="application" />
14
+ <orderEntry type="library" scope="PROVIDED" name="activecube (v0.1.3, RVM: ruby-2.6.3) [gem]" level="application" />
12
15
  <orderEntry type="library" scope="PROVIDED" name="activemodel (v6.0.2.1, RVM: ruby-2.6.3) [gem]" level="application" />
13
16
  <orderEntry type="library" scope="PROVIDED" name="activerecord (v6.0.2.1, RVM: ruby-2.6.3) [gem]" level="application" />
14
17
  <orderEntry type="library" scope="PROVIDED" name="activesupport (v6.0.2.1, RVM: ruby-2.6.3) [gem]" level="application" />
data/Gemfile.lock CHANGED
@@ -1,14 +1,14 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- activecube-graphql (0.1.0)
5
- activecube (~> 0.1.2)
4
+ activecube-graphql (0.1.1)
5
+ activecube (~> 0.1.3)
6
6
  graphql (~> 1.9)
7
7
 
8
8
  GEM
9
9
  remote: https://rubygems.org/
10
10
  specs:
11
- activecube (0.1.2)
11
+ activecube (0.1.3)
12
12
  activerecord (>= 5.2)
13
13
  activemodel (6.0.2.1)
14
14
  activesupport (= 6.0.2.1)
@@ -24,7 +24,7 @@ to query cubes}
24
24
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
25
25
  spec.require_paths = ["lib"]
26
26
 
27
- spec.add_runtime_dependency 'activecube', '~> 0.1.2'
27
+ spec.add_runtime_dependency 'activecube', '~> 0.1.3'
28
28
  spec.add_runtime_dependency 'graphql', '~> 1.9'
29
29
 
30
30
  spec.add_development_dependency "bundler", "~> 1.17"
@@ -21,9 +21,11 @@ module Activecube
21
21
  if parent
22
22
  @definition = context_node.definitions.first.name
23
23
  if parent.dimension
24
- @field = @definition
24
+ @dimension = parent.dimension
25
+ @field = (parent.field || dimension)[definition.to_sym]
26
+ raise ArgumentError, "#{definition} not implemented for #{key} in cube #{cube.name}" unless @field
25
27
  elsif parent.metric
26
- raise ArgumentError, "Unexpected metric #{key} for cube #{cube.name}"
28
+ raise ArgumentError, "Unexpected metric #{key} in cube #{cube.name}"
27
29
  else
28
30
  if !(@metric = cube.metrics[definition.to_sym]) && !(@dimension = cube.dimensions[definition.to_sym])
29
31
  raise ArgumentError, "Metric or dimension #{definition} for #{key} not defined for cube #{cube.name}"
@@ -42,11 +44,9 @@ module Activecube
42
44
  if parent
43
45
 
44
46
  if metric
45
- query = measure(metric, query)
46
- end
47
-
48
- if dimension
49
- query = slice(dimension, query)
47
+ query = query.measure({key => apply_args(metric)})
48
+ elsif dimension && children.empty?
49
+ query = query.slice({key => apply_args(field || dimension)})
50
50
  end
51
51
 
52
52
  else
@@ -61,20 +61,6 @@ module Activecube
61
61
  query
62
62
  end
63
63
 
64
- def measure metric, query
65
- query.measure({key => apply_args(metric)})
66
- end
67
-
68
- def slice dimension, query
69
- if children.empty?
70
- query.slice({key => apply_args(dimension)})
71
- else
72
- query.slice Hash[children.collect do |field|
73
- [field.key, field.apply_args(dimension[field.field.to_sym])]
74
- end]
75
- end
76
- end
77
-
78
64
  def apply_args element, args = self.arguments
79
65
  args && args.each_pair do |key, value|
80
66
  k = key.to_sym
@@ -1,5 +1,5 @@
1
1
  module Activecube
2
2
  module Graphql
3
- VERSION = "0.1.0"
3
+ VERSION = "0.1.1"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activecube-graphql
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Aleksey Studnev
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-02-22 00:00:00.000000000 Z
11
+ date: 2020-02-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activecube
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 0.1.2
19
+ version: 0.1.3
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 0.1.2
26
+ version: 0.1.3
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: graphql
29
29
  requirement: !ruby/object:Gem::Requirement