activecube-graphql 0.1.17 → 0.1.21

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0e5804255ea980d0ad5383c66eeeaded38f3007606d2d881e67d9f82b39568ac
4
- data.tar.gz: 1629c4328d4fff2a208e148e8801e6e382cd14a83efb913f3d883fe685b5f254
3
+ metadata.gz: 40c5c73bc8f042d31fd5516c87bbccc1ad94793ae8dfee03f1218648bff42fa9
4
+ data.tar.gz: 4bbde86bc60f05b118f5d22f0327c40659a8a8ec046f427733313f86ae294d8a
5
5
  SHA512:
6
- metadata.gz: 9345993f7fd7a1dd3cabd1a5b8e5c61aec452af852ed6896a17f1342e21580f9d80ad520195344da9e4fae748345bee04beb7b17a261635856f409919f7e0a1e
7
- data.tar.gz: 558e40e26f530f0ea791f6aad3c94475f1be91dc99647542498b4215a082f5c332004ec7dfbaef9e4a25658eb9b1f805dfdb035f80ca887cdd07744f4ac5ac4c
6
+ metadata.gz: e4eb8de7db042ae4618cfbc0052f6e01f3756094d373ad755a76bac4bf86ca3d48bfabcbcf678cd600b4cd45e780f43c94baae3c2f8ea33e9b61808b7cb5e897
7
+ data.tar.gz: 1413b6df98ee24609fe9ebae8af7e57558708b9af97f5da09b1b8f7179318099954bf518e280ae731886ab9fd787161501a6ba81208ec8fa7698c16956df565c
@@ -11,24 +11,51 @@
11
11
  </content>
12
12
  <orderEntry type="jdk" jdkName="RVM: ruby-2.6.3" jdkType="RUBY_SDK" />
13
13
  <orderEntry type="sourceFolder" forTests="false" />
14
- <orderEntry type="library" scope="PROVIDED" name="activecube (v0.1.29, RVM: ruby-2.6.3) [gem]" level="application" />
15
- <orderEntry type="library" scope="PROVIDED" name="activemodel (v6.0.3.1, RVM: ruby-2.6.3) [gem]" level="application" />
16
- <orderEntry type="library" scope="PROVIDED" name="activerecord (v6.0.3.1, RVM: ruby-2.6.3) [gem]" level="application" />
17
- <orderEntry type="library" scope="PROVIDED" name="activesupport (v6.0.3.1, RVM: ruby-2.6.3) [gem]" level="application" />
14
+ <orderEntry type="library" scope="PROVIDED" name="activecube (v0.1.34, RVM: ruby-2.6.3) [gem]" level="application" />
15
+ <orderEntry type="library" scope="PROVIDED" name="activemodel (v6.1.4, RVM: ruby-2.6.3) [gem]" level="application" />
16
+ <orderEntry type="library" scope="PROVIDED" name="activerecord (v6.1.4, RVM: ruby-2.6.3) [gem]" level="application" />
17
+ <orderEntry type="library" scope="PROVIDED" name="activesupport (v6.1.4, RVM: ruby-2.6.3) [gem]" level="application" />
18
18
  <orderEntry type="library" scope="PROVIDED" name="bundler (v1.17.3, RVM: ruby-2.6.3) [gem]" level="application" />
19
- <orderEntry type="library" scope="PROVIDED" name="concurrent-ruby (v1.1.7, RVM: ruby-2.6.3) [gem]" level="application" />
19
+ <orderEntry type="library" scope="PROVIDED" name="concurrent-ruby (v1.1.9, RVM: ruby-2.6.3) [gem]" level="application" />
20
20
  <orderEntry type="library" scope="PROVIDED" name="diff-lcs (v1.3, RVM: ruby-2.6.3) [gem]" level="application" />
21
- <orderEntry type="library" scope="PROVIDED" name="graphql (v1.11.0, RVM: ruby-2.6.3) [gem]" level="application" />
22
- <orderEntry type="library" scope="PROVIDED" name="i18n (v1.8.5, RVM: ruby-2.6.3) [gem]" level="application" />
23
- <orderEntry type="library" scope="PROVIDED" name="minitest (v5.14.2, RVM: ruby-2.6.3) [gem]" level="application" />
21
+ <orderEntry type="library" scope="PROVIDED" name="graphql (v1.12.19, RVM: ruby-2.6.3) [gem]" level="application" />
22
+ <orderEntry type="library" scope="PROVIDED" name="i18n (v1.8.11, RVM: ruby-2.6.3) [gem]" level="application" />
23
+ <orderEntry type="library" scope="PROVIDED" name="minitest (v5.14.4, RVM: ruby-2.6.3) [gem]" level="application" />
24
24
  <orderEntry type="library" scope="PROVIDED" name="rake (v13.0.1, RVM: ruby-2.6.3) [gem]" level="application" />
25
25
  <orderEntry type="library" scope="PROVIDED" name="rspec (v3.9.0, RVM: ruby-2.6.3) [gem]" level="application" />
26
26
  <orderEntry type="library" scope="PROVIDED" name="rspec-core (v3.9.2, RVM: ruby-2.6.3) [gem]" level="application" />
27
27
  <orderEntry type="library" scope="PROVIDED" name="rspec-expectations (v3.9.2, RVM: ruby-2.6.3) [gem]" level="application" />
28
28
  <orderEntry type="library" scope="PROVIDED" name="rspec-mocks (v3.9.1, RVM: ruby-2.6.3) [gem]" level="application" />
29
29
  <orderEntry type="library" scope="PROVIDED" name="rspec-support (v3.9.3, RVM: ruby-2.6.3) [gem]" level="application" />
30
- <orderEntry type="library" scope="PROVIDED" name="thread_safe (v0.3.6, RVM: ruby-2.6.3) [gem]" level="application" />
31
- <orderEntry type="library" scope="PROVIDED" name="tzinfo (v1.2.7, RVM: ruby-2.6.3) [gem]" level="application" />
32
- <orderEntry type="library" scope="PROVIDED" name="zeitwerk (v2.4.0, RVM: ruby-2.6.3) [gem]" level="application" />
30
+ <orderEntry type="library" scope="PROVIDED" name="tzinfo (v2.0.4, RVM: ruby-2.6.3) [gem]" level="application" />
31
+ <orderEntry type="library" scope="PROVIDED" name="zeitwerk (v2.5.1, RVM: ruby-2.6.3) [gem]" level="application" />
32
+ </component>
33
+ <component name="RakeTasksCache">
34
+ <option name="myRootTask">
35
+ <RakeTaskImpl id="rake">
36
+ <subtasks>
37
+ <RakeTaskImpl description="Build activecube-graphql-0.1.19.gem into the pkg directory" fullCommand="build" id="build" />
38
+ <RakeTaskImpl description="Remove any temporary products" fullCommand="clean" id="clean" />
39
+ <RakeTaskImpl description="Remove any generated files" fullCommand="clobber" id="clobber" />
40
+ <RakeTaskImpl description="Build and install activecube-graphql-0.1.19.gem into system gems" fullCommand="install" id="install" />
41
+ <RakeTaskImpl id="install">
42
+ <subtasks>
43
+ <RakeTaskImpl description="Build and install activecube-graphql-0.1.19.gem into system gems without network access" fullCommand="install:local" id="local" />
44
+ </subtasks>
45
+ </RakeTaskImpl>
46
+ <RakeTaskImpl description="Create tag v0.1.19 and build and push activecube-graphql-0.1.19.gem to rubygems.org" fullCommand="release[remote]" id="release[remote]" />
47
+ <RakeTaskImpl description="Run RSpec code examples" fullCommand="spec" id="spec" />
48
+ <RakeTaskImpl description="" fullCommand="default" id="default" />
49
+ <RakeTaskImpl description="" fullCommand="release" id="release" />
50
+ <RakeTaskImpl id="release">
51
+ <subtasks>
52
+ <RakeTaskImpl description="" fullCommand="release:guard_clean" id="guard_clean" />
53
+ <RakeTaskImpl description="" fullCommand="release:rubygem_push" id="rubygem_push" />
54
+ <RakeTaskImpl description="" fullCommand="release:source_control_push" id="source_control_push" />
55
+ </subtasks>
56
+ </RakeTaskImpl>
57
+ </subtasks>
58
+ </RakeTaskImpl>
59
+ </option>
33
60
  </component>
34
61
  </module>
data/Gemfile.lock CHANGED
@@ -1,32 +1,32 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- activecube-graphql (0.1.16)
5
- activecube (~> 0.1.30)
4
+ activecube-graphql (0.1.20)
5
+ activecube (~> 0.1.28)
6
6
  graphql (~> 1.10)
7
7
 
8
8
  GEM
9
9
  remote: https://rubygems.org/
10
10
  specs:
11
- activecube (0.1.30)
11
+ activecube (0.1.34)
12
12
  activerecord (>= 5.2)
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)
13
+ activemodel (6.1.4)
14
+ activesupport (= 6.1.4)
15
+ activerecord (6.1.4)
16
+ activemodel (= 6.1.4)
17
+ activesupport (= 6.1.4)
18
+ activesupport (6.1.4)
19
19
  concurrent-ruby (~> 1.0, >= 1.0.2)
20
- i18n (>= 0.7, < 2)
21
- minitest (~> 5.1)
22
- tzinfo (~> 1.1)
23
- zeitwerk (~> 2.2, >= 2.2.2)
24
- concurrent-ruby (1.1.7)
20
+ i18n (>= 1.6, < 2)
21
+ minitest (>= 5.1)
22
+ tzinfo (~> 2.0)
23
+ zeitwerk (~> 2.3)
24
+ concurrent-ruby (1.1.9)
25
25
  diff-lcs (1.3)
26
- graphql (1.11.0)
27
- i18n (1.8.5)
26
+ graphql (1.12.19)
27
+ i18n (1.8.11)
28
28
  concurrent-ruby (~> 1.0)
29
- minitest (5.14.2)
29
+ minitest (5.14.4)
30
30
  rake (13.0.1)
31
31
  rspec (3.9.0)
32
32
  rspec-core (~> 3.9.0)
@@ -41,10 +41,9 @@ GEM
41
41
  diff-lcs (>= 1.2.0, < 2.0)
42
42
  rspec-support (~> 3.9.0)
43
43
  rspec-support (3.9.3)
44
- thread_safe (0.3.6)
45
- tzinfo (1.2.7)
46
- thread_safe (~> 0.1)
47
- zeitwerk (2.4.0)
44
+ tzinfo (2.0.4)
45
+ concurrent-ruby (~> 1.0)
46
+ zeitwerk (2.5.1)
48
47
 
49
48
  PLATFORMS
50
49
  ruby
@@ -48,6 +48,8 @@ module Activecube
48
48
 
49
49
  def execute_query tree, ctx
50
50
  cube_query = tree.build_query
51
+ cube_query.user_agent = ctx[:sql_user_agent] || 'Ruby/Activecube Graphql'
52
+
51
53
  ctx[:sql_io].puts(cube_query.to_sql) if ctx[:sql_io].respond_to?(:puts)
52
54
  cube_query.query
53
55
  end
@@ -6,6 +6,7 @@ module Activecube
6
6
 
7
7
  TYPENAME = '__typename'
8
8
  KEY_FIELD_PREFIX = '_aq.'
9
+ NULLABLE_OPERATORS = [:eq,:not_eq,:is,:not]
9
10
 
10
11
  attr_reader :arguments, :ast_node, :cube, :parent, :name, :definition, :key,
11
12
  :children, :metric, :dimension, :field, :context_node
@@ -18,10 +19,11 @@ module Activecube
18
19
  @key = parent ? (parent.key ? "#{parent.key}.#{name}" : KEY_FIELD_PREFIX+name ) : nil
19
20
 
20
21
  @context_node = context_node
21
- @arguments = context_node.arguments.to_h
22
-
23
22
  @ast_node = context_node.ast_node
24
23
 
24
+ @arguments = sort_node_arguments ast_node, context_node.arguments.to_h
25
+
26
+
25
27
  if parent
26
28
  @definition = context_node.definitions.first.name
27
29
  if parent.dimension
@@ -43,6 +45,22 @@ module Activecube
43
45
 
44
46
  end
45
47
 
48
+ def sort_node_arguments ast_node, arguments
49
+ if (options = arguments['options']).kind_of?(Hash)
50
+ options_keys = context_node.ast_node.arguments.detect{|x| x.name=='options'}.value.arguments.map{|x|
51
+ x.name.underscore.to_sym
52
+ }
53
+ arguments['options'] = Hash[
54
+ options_keys.collect{|key|
55
+ raise "Unmatched key #{key}" unless options[key]
56
+ [key, options[key]]
57
+ }
58
+
59
+ ]
60
+ end
61
+ arguments
62
+ end
63
+
46
64
  def union?
47
65
  context_node.return_type.kind_of? GraphQL::UnionType
48
66
  end
@@ -114,11 +132,15 @@ module Activecube
114
132
  hash.each_pair do |operator, arg|
115
133
  selector = cube.selectors[k]
116
134
  raise Activecube::InputArgumentError, "#{selector} does not handle method '#{operator}' for #{element} '#{k}'" unless selector.respond_to?(operator)
117
- element = element.when( selector.send(operator, arg) ) unless arg.nil?
135
+ element = element.when( selector.send(operator, arg) ) if applicable_operator?(operator, arg)
118
136
  end
119
137
  element
120
138
  end
121
139
 
140
+ def applicable_operator? operator, arg
141
+ !arg.nil? || NULLABLE_OPERATORS.include?(operator)
142
+ end
143
+
122
144
  def apply_or_selector element, value
123
145
  selectors = value.collect{|v| make_selector v }.compact
124
146
  element.when( Activecube::Query::Selector.or(selectors) )
@@ -1,5 +1,5 @@
1
1
  module Activecube
2
2
  module Graphql
3
- VERSION = "0.1.17"
3
+ VERSION = "0.1.21"
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.17
4
+ version: 0.1.21
5
5
  platform: ruby
6
6
  authors:
7
7
  - Aleksey Studnev
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-11-30 00:00:00.000000000 Z
11
+ date: 2021-11-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activecube
@@ -114,7 +114,7 @@ homepage: https://github.com/bitquery/activecube-graphql
114
114
  licenses:
115
115
  - MIT
116
116
  metadata: {}
117
- post_install_message:
117
+ post_install_message:
118
118
  rdoc_options: []
119
119
  require_paths:
120
120
  - lib
@@ -130,7 +130,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
130
130
  version: '0'
131
131
  requirements: []
132
132
  rubygems_version: 3.0.4
133
- signing_key:
133
+ signing_key:
134
134
  specification_version: 4
135
135
  summary: Multi-Dimensional Queries using GraphQL
136
136
  test_files: []