activecube-graphql 0.1.8 → 0.1.13
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/Gemfile.lock +18 -18
- data/activecube-graphql.gemspec +1 -1
- data/lib/activecube/graphql/parse_tree.rb +28 -2
- data/lib/activecube/graphql/response_builder.rb +2 -1
- 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: 69d003fbb6f3968b2e25390e2b4177fd46ec075415f47644f7a0947237800275
|
4
|
+
data.tar.gz: a46404f52537cb50f19f2ccc99af7a0f866742e0ef27297b1606ea3cface3fee
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b9021ccee3198ebd7bc25aed42bee1b13689da056a5100e56a42d99ee7dc7dac1d5f8213c412ff972a1149ee39c0b5f88b928c30922919d77113b7fe022de774
|
7
|
+
data.tar.gz: 67b421e11ae30b5127da95da2f964683fb389b7d527cc2429272f30139e90a9256854442534d0846eb58408c38517160558a66e31ad15de630ef753e97489869
|
data/Gemfile.lock
CHANGED
@@ -1,50 +1,50 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
activecube-graphql (0.1.
|
5
|
-
activecube (~> 0.1.
|
4
|
+
activecube-graphql (0.1.12)
|
5
|
+
activecube (~> 0.1.15)
|
6
6
|
graphql (~> 1.10)
|
7
7
|
|
8
8
|
GEM
|
9
9
|
remote: https://rubygems.org/
|
10
10
|
specs:
|
11
|
-
activecube (0.1.
|
11
|
+
activecube (0.1.26)
|
12
12
|
activerecord (>= 5.2)
|
13
|
-
activemodel (6.0.
|
14
|
-
activesupport (= 6.0.
|
15
|
-
activerecord (6.0.
|
16
|
-
activemodel (= 6.0.
|
17
|
-
activesupport (= 6.0.
|
18
|
-
activesupport (6.0.
|
13
|
+
activemodel (6.0.3.1)
|
14
|
+
activesupport (= 6.0.3.1)
|
15
|
+
activerecord (6.0.3.1)
|
16
|
+
activemodel (= 6.0.3.1)
|
17
|
+
activesupport (= 6.0.3.1)
|
18
|
+
activesupport (6.0.3.1)
|
19
19
|
concurrent-ruby (~> 1.0, >= 1.0.2)
|
20
20
|
i18n (>= 0.7, < 2)
|
21
21
|
minitest (~> 5.1)
|
22
22
|
tzinfo (~> 1.1)
|
23
|
-
zeitwerk (~> 2.2)
|
23
|
+
zeitwerk (~> 2.2, >= 2.2.2)
|
24
24
|
concurrent-ruby (1.1.6)
|
25
25
|
diff-lcs (1.3)
|
26
|
-
graphql (1.
|
27
|
-
i18n (1.8.
|
26
|
+
graphql (1.11.0)
|
27
|
+
i18n (1.8.3)
|
28
28
|
concurrent-ruby (~> 1.0)
|
29
|
-
minitest (5.14.
|
29
|
+
minitest (5.14.1)
|
30
30
|
rake (13.0.1)
|
31
31
|
rspec (3.9.0)
|
32
32
|
rspec-core (~> 3.9.0)
|
33
33
|
rspec-expectations (~> 3.9.0)
|
34
34
|
rspec-mocks (~> 3.9.0)
|
35
|
-
rspec-core (3.9.
|
36
|
-
rspec-support (~> 3.9.
|
37
|
-
rspec-expectations (3.9.
|
35
|
+
rspec-core (3.9.2)
|
36
|
+
rspec-support (~> 3.9.3)
|
37
|
+
rspec-expectations (3.9.2)
|
38
38
|
diff-lcs (>= 1.2.0, < 2.0)
|
39
39
|
rspec-support (~> 3.9.0)
|
40
40
|
rspec-mocks (3.9.1)
|
41
41
|
diff-lcs (>= 1.2.0, < 2.0)
|
42
42
|
rspec-support (~> 3.9.0)
|
43
|
-
rspec-support (3.9.
|
43
|
+
rspec-support (3.9.3)
|
44
44
|
thread_safe (0.3.6)
|
45
45
|
tzinfo (1.2.7)
|
46
46
|
thread_safe (~> 0.1)
|
47
|
-
zeitwerk (2.3.
|
47
|
+
zeitwerk (2.3.1)
|
48
48
|
|
49
49
|
PLATFORMS
|
50
50
|
ruby
|
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.kind_of?(Array) ? expressions : [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
|
|
@@ -97,7 +97,8 @@ module Activecube::Graphql
|
|
97
97
|
|
98
98
|
def simple_value response_class, definition, element
|
99
99
|
index = @key_map[element.key]
|
100
|
-
node_type = element.context_node.definition.type.name
|
100
|
+
node_type = element.context_node.definition.type.try(:of_type).try(:name) ||
|
101
|
+
element.context_node.definition.type.try(:name)
|
101
102
|
response_class.class_eval do
|
102
103
|
define_method definition.underscore do |**rest_of_options|
|
103
104
|
convert_type node_type, @row[index]
|
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.13
|
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-
|
11
|
+
date: 2020-08-03 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
|