activecube 0.1.31 → 0.1.35

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: 6c706faf950e642b3216ee5bce134ae45c9ad1047395825426897961a2bf357e
4
- data.tar.gz: eb49f277b4fe9ade7817fd9b3d69389ec0879ae3a92004c5d2fa85a2a19a1d70
3
+ metadata.gz: 946404c43c88aa42570d8224b1e2419298eb04f5b2ca3294e874a2ef394b26ec
4
+ data.tar.gz: 6e282374863673eed33448f0685360707ef0ab76e97c407dd9558ed3b4c3534c
5
5
  SHA512:
6
- metadata.gz: 5754c7e2658c9456bee51c66f21ca42da0f7198bf155b06386e845745da098c282a89cd4c388d3581421d0c9e89704accd2249c45b3c30ff32e72744d0b52fbe
7
- data.tar.gz: e5ff2a9a0ac8706dae669b7c0355f2e04ff5f6bb2ca7415253ada1fe76d1036dbdcd8d5b9202b3c10cd19996184b52498fecd7debf4be4547af01f3b27a0e36b
6
+ metadata.gz: 5e19e4c1aded7105504bf70ca2696aff4ff92b691e665685f01fd1bfca5274fe9719e2dbd07c6912d15a869a3e65b6c8b23b429177820d293511ce4641541e87
7
+ data.tar.gz: 74b03d055b8a68508ca2230ded3feb74d8f4a20ef5e717d73cf8c356c7d5f2c28865b9c53944956d355441d3e9af8aeba562a1a7411dd106fb22ca7b35cf931b
data/.idea/workspace.xml CHANGED
@@ -10,7 +10,9 @@
10
10
  <select />
11
11
  </component>
12
12
  <component name="ChangeListManager">
13
- <list default="true" id="77368870-4045-496a-9737-2c7f83086a16" name="Default Changelist" comment="initial implementation" />
13
+ <list default="true" id="77368870-4045-496a-9737-2c7f83086a16" name="Default Changelist" comment="initial implementation">
14
+ <change beforePath="$PROJECT_DIR$/Gemfile.lock" beforeDir="false" afterPath="$PROJECT_DIR$/Gemfile.lock" afterDir="false" />
15
+ </list>
14
16
  <option name="SHOW_DIALOG" value="false" />
15
17
  <option name="HIGHLIGHT_CONFLICTS" value="true" />
16
18
  <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
@@ -26,6 +28,8 @@
26
28
  <option name="showLibraryContents" value="true" />
27
29
  </component>
28
30
  <component name="PropertiesComponent">
31
+ <property name="RunOnceActivity.OpenProjectViewOnStart" value="true" />
32
+ <property name="RunOnceActivity.ShowReadmeOnStart" value="true" />
29
33
  <property name="WebServerToolWindowFactoryState" value="false" />
30
34
  <property name="last_opened_file_path" value="$PROJECT_DIR$/lib/activecube" />
31
35
  <property name="node.js.detected.package.eslint" value="true" />
@@ -46,6 +50,7 @@
46
50
  <recent name="$PROJECT_DIR$/lib/activecube" />
47
51
  </key>
48
52
  </component>
53
+ <component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="application-level" UseSingleDictionary="true" transferred="true" />
49
54
  <component name="SpringUtil" SPRING_PRE_LOADER_OPTION="true" RAKE_SPRING_PRE_LOADER_OPTION="true" RAILS_SPRING_PRE_LOADER_OPTION="true" />
50
55
  <component name="SvnConfiguration">
51
56
  <configuration />
@@ -58,6 +63,7 @@
58
63
  <option name="presentableId" value="Default" />
59
64
  <updated>1581885096407</updated>
60
65
  <workItem from="1581885099890" duration="3547000" />
66
+ <workItem from="1621436559886" duration="39000" />
61
67
  </task>
62
68
  <task id="LOCAL-00001" summary="initial commit">
63
69
  <created>1581885128091</created>
@@ -98,7 +104,7 @@
98
104
  <servers />
99
105
  </component>
100
106
  <component name="TypeScriptGeneratedFilesManager">
101
- <option name="version" value="2" />
107
+ <option name="version" value="3" />
102
108
  </component>
103
109
  <component name="Vcs.Log.Tabs.Properties">
104
110
  <option name="TAB_STATES">
@@ -110,6 +116,7 @@
110
116
  </entry>
111
117
  </map>
112
118
  </option>
119
+ <option name="oldMeFiltersMigrated" value="true" />
113
120
  </component>
114
121
  <component name="VcsManagerConfiguration">
115
122
  <MESSAGE value="initial commit" />
data/Gemfile.lock CHANGED
@@ -9,7 +9,7 @@ GIT
9
9
  PATH
10
10
  remote: .
11
11
  specs:
12
- activecube (0.1.30)
12
+ activecube (0.1.34)
13
13
  activerecord (>= 5.2)
14
14
 
15
15
  GEM
@@ -14,7 +14,7 @@ module Activecube
14
14
  end
15
15
 
16
16
  def matches? query, measures
17
- !required || (fields - query.column_names(measures)).empty?
17
+ !required || (fields - query.column_names_required(measures)).empty?
18
18
  end
19
19
  end
20
20
  end
@@ -16,6 +16,8 @@ module Activecube::Query
16
16
  include ChainAppender
17
17
 
18
18
  attr_reader :cube, :slices, :measures, :selectors, :options, :tables, :sql
19
+ attr_accessor :user_agent
20
+
19
21
  def initialize cube, slices = [], measures = [], selectors = [], options = [], model_tables = nil
20
22
  @cube = cube
21
23
  @slices = slices
@@ -92,7 +94,11 @@ module Activecube::Query
92
94
 
93
95
  def query
94
96
  sql = to_query.to_sql
95
- @composed.connection.exec_query(sql)
97
+ connection = @composed.connection
98
+ if user_agent
99
+ connection.headers = {'User-Agent': user_agent}
100
+ end
101
+ connection.exec_query(sql)
96
102
  end
97
103
 
98
104
  def to_query
@@ -107,6 +113,10 @@ module Activecube::Query
107
113
  (measures + slices + selectors).map(&:required_column_names).flatten.uniq
108
114
  end
109
115
 
116
+ def column_names_required measures = self.measures
117
+ (measures + slices + selectors.select{|s| !s.kind_of?(Selector::CombineSelector)}).map(&:required_column_names).flatten.uniq
118
+ end
119
+
110
120
  def selector_column_names measures = self.measures
111
121
  (measures.map(&:selectors) + slices.map(&:selectors) + selectors).flatten.map(&:required_column_names).flatten.uniq
112
122
  end
@@ -22,9 +22,6 @@ module Activecube::Query
22
22
  "#{definition.class.name}(#{key})"
23
23
  end
24
24
 
25
-
26
- private
27
-
28
25
  def append_with! model, cube_query, table, query
29
26
 
30
27
  if definition.respond_to?(:with_expression) &&
@@ -36,8 +33,13 @@ module Activecube::Query
36
33
  query
37
34
  end
38
35
 
36
+ private
37
+
38
+
39
+
39
40
  def try_append_with(query, key, expr)
40
41
  expr = Arel.sql(expr) if expr.kind_of?(String)
42
+ query = query.where(Arel.sql('1')) unless query.respond_to?(:ast)
41
43
  if (with = query.ast.with)
42
44
  existing = with.expr.detect{|expr| expr.right==key }
43
45
  if existing
@@ -32,7 +32,11 @@ module Activecube::Query
32
32
  end
33
33
 
34
34
  def append_query model, cube_query, arel_table, query
35
- query = append_with!(model, cube_query, arel_table, query)
35
+
36
+ @selectors.each do |s|
37
+ query = s.append_with!(model, cube_query, arel_table, query)
38
+ end
39
+
36
40
  query.where expression(model, arel_table, cube_query)
37
41
  end
38
42
 
@@ -111,6 +115,7 @@ module Activecube::Query
111
115
  end
112
116
 
113
117
  def append_query model, cube_query, table, query
118
+ query = append_with!(model, cube_query, table, query)
114
119
  query.where(expression model, table, cube_query)
115
120
  end
116
121
 
@@ -1,3 +1,3 @@
1
1
  module Activecube
2
- VERSION = "0.1.31"
2
+ VERSION = "0.1.35"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activecube
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.31
4
+ version: 0.1.35
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: 2021-03-19 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: activerecord
@@ -126,7 +126,7 @@ homepage: https://github.com/bitquery/activecube
126
126
  licenses:
127
127
  - MIT
128
128
  metadata: {}
129
- post_install_message:
129
+ post_install_message:
130
130
  rdoc_options: []
131
131
  require_paths:
132
132
  - lib
@@ -142,7 +142,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
142
142
  version: '0'
143
143
  requirements: []
144
144
  rubygems_version: 3.0.4
145
- signing_key:
145
+ signing_key:
146
146
  specification_version: 4
147
147
  summary: Multi-Dimensional Queries with Rails
148
148
  test_files: []