activecube-graphql 0.1.8 → 0.1.9
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/activecube-graphql.gemspec +1 -1
- data/lib/activecube/graphql/parse_tree.rb +28 -2
- data/lib/activecube/graphql/version.rb +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 40ff0b342c70ef9d40d3b0d5a10962abb56a4e522f0d0e049cf2f081541ba1a8
|
4
|
+
data.tar.gz: 85f3d371fcac7ca148cadda4c3441d95d6608cac8339dc36b6398dab967d289f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d3bc3d55060c29221aef2279c3d2dad86febef7ba831acdf5f89ae9b541059e9d544214ced2d439bcd8ab1bc08142f3e43caad59633371da5ed1a85c95d379f5
|
7
|
+
data.tar.gz: daecbfad367c123665d3f3355d8214fd66e2f9774b1f09e4555f510e2932fca926548826f09e494d5f63aaf39f9bc2aa7ce04504c712c6e0fc67dd92cce9b4c8
|
data/activecube-graphql.gemspec
CHANGED
@@ -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.
|
27
|
+
spec.add_runtime_dependency 'activecube', '~> 0.1.15'
|
28
28
|
spec.add_runtime_dependency 'graphql', '~> 1.10'
|
29
29
|
|
30
30
|
spec.add_development_dependency "bundler", "~> 1.17"
|
@@ -74,10 +74,15 @@ module Activecube
|
|
74
74
|
query
|
75
75
|
end
|
76
76
|
|
77
|
+
private
|
78
|
+
|
77
79
|
def apply_args element, args = self.arguments
|
78
80
|
args && args.each_pair do |key, value|
|
79
81
|
k = key.to_sym
|
80
|
-
|
82
|
+
has_selectors = element.respond_to?(:selectors)
|
83
|
+
if has_selectors && k==:any
|
84
|
+
element = apply_or_selector element, value
|
85
|
+
elsif has_selectors && (selector = cube.selectors[k])
|
81
86
|
if value.kind_of? Hash
|
82
87
|
element = apply_selector element, k, value
|
83
88
|
elsif value.kind_of? Array
|
@@ -112,7 +117,28 @@ module Activecube
|
|
112
117
|
element
|
113
118
|
end
|
114
119
|
|
115
|
-
|
120
|
+
def apply_or_selector element, value
|
121
|
+
selectors = value.collect{|v| make_selector v }.compact
|
122
|
+
element.when( Activecube::Query::Selector.or(selectors) )
|
123
|
+
end
|
124
|
+
|
125
|
+
def make_selector hash
|
126
|
+
raise Activecube::InputArgumentError, "Hash expected for selector, #{v} found instead" unless hash.kind_of?(Hash)
|
127
|
+
selectors = hash.to_a.collect{|attr, expressions|
|
128
|
+
k = attr.to_s.camelize(:lower).to_sym
|
129
|
+
expressions.collect{|expression|
|
130
|
+
expression.to_a.collect{|c|
|
131
|
+
operator, arg = c
|
132
|
+
selector = cube.selectors[k]
|
133
|
+
raise Activecube::InputArgumentError, "Selector not found for '#{k}'" unless selector
|
134
|
+
raise Activecube::InputArgumentError, "#{selector} does not handle method '#{operator}' '#{k}'" unless selector.respond_to?(operator)
|
135
|
+
selector.send(operator, arg) unless arg.nil?
|
136
|
+
selector
|
137
|
+
}
|
138
|
+
}
|
139
|
+
}.flatten
|
140
|
+
Activecube::Query::Selector.and(selectors)
|
141
|
+
end
|
116
142
|
|
117
143
|
def apply_to_array(element, k, selector, value)
|
118
144
|
|
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.
|
4
|
+
version: 0.1.9
|
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-04-
|
11
|
+
date: 2020-04-16 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.
|
19
|
+
version: 0.1.15
|
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.
|
26
|
+
version: 0.1.15
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: graphql
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|