activecube 0.1.33 → 0.1.37

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: bbaa14405e9c29b3b3eb2458f1375dcc2d932ddb86c61e0f486a07d67f838d5b
4
- data.tar.gz: 0e56082c87edf486f5c189f16a20db4a7c068cf45f97aa2ae2b2fb7925b82a5b
3
+ metadata.gz: 259cc692bdf919f12e969df5bb9527627e5a6d8776d2a0e9e87dfcd6be31eb3a
4
+ data.tar.gz: 441797734d3dd76ace51754bbeedf2bb12a28faa69047a53c798603c6af203bc
5
5
  SHA512:
6
- metadata.gz: b315cbd17b2f46fa949e626eedc8cdd4c17dce3b6e7f990d513c1b9931e16d07dca70fd473b816fe949e22b25b17ab03183f4613461506df3d3cad4669b5eb01
7
- data.tar.gz: 7744a85886a797315b8793edf6b65fbb7ca13d59e9a6667aa8f23187078f5f0af2a51941fac4456f09991485d9320416905092c488cd6f0e3c14c3112e24eb4b
6
+ metadata.gz: 5db00ce826c957c7dcc79e1a642b98519d5691520221c91bbb736ef741895fc97fb9608173482daf4845545ced42a1012030f16d6055323af47be7d4ffab70e7
7
+ data.tar.gz: 139443eca675eea3125b3e357a6dd707698d45f026f14b801442f52ee4c98628f6b9f4bf74b889209c5e3c6d31c1a1e5753a6052d8d1bf8604b1dec21fd5aaa2
data/.gitignore CHANGED
@@ -1,3 +1,4 @@
1
+ /.idea/
1
2
  /.bundle/
2
3
  /.yardoc
3
4
  /_yardoc/
data/Gemfile.lock CHANGED
@@ -9,7 +9,7 @@ GIT
9
9
  PATH
10
10
  remote: .
11
11
  specs:
12
- activecube (0.1.32)
12
+ activecube (0.1.36)
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 :stats
20
+
19
21
  def initialize cube, slices = [], measures = [], selectors = [], options = [], model_tables = nil
20
22
  @cube = cube
21
23
  @slices = slices
@@ -91,8 +93,15 @@ module Activecube::Query
91
93
 
92
94
 
93
95
  def query
94
- sql = to_query.to_sql
95
- @composed.connection.exec_query(sql)
96
+ composed_query = to_query
97
+ connection = @composed.connection
98
+ if connection.respond_to?(:with_statistics)
99
+ connection.with_statistics(stats) do
100
+ connection.exec_query(composed_query.to_sql)
101
+ end
102
+ else
103
+ connection.exec_query(composed_query.to_sql)
104
+ end
96
105
  end
97
106
 
98
107
  def to_query
@@ -107,6 +116,10 @@ module Activecube::Query
107
116
  (measures + slices + selectors).map(&:required_column_names).flatten.uniq
108
117
  end
109
118
 
119
+ def column_names_required measures = self.measures
120
+ (measures + slices + selectors.select{|s| !s.kind_of?(Selector::CombineSelector)}).map(&:required_column_names).flatten.uniq
121
+ end
122
+
110
123
  def selector_column_names measures = self.measures
111
124
  (measures.map(&:selectors) + slices.map(&:selectors) + selectors).flatten.map(&:required_column_names).flatten.uniq
112
125
  end
@@ -1,3 +1,3 @@
1
1
  module Activecube
2
- VERSION = "0.1.33"
2
+ VERSION = "0.1.37"
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.33
4
+ version: 0.1.37
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: 2022-02-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -76,7 +76,6 @@ extensions: []
76
76
  extra_rdoc_files: []
77
77
  files:
78
78
  - ".gitignore"
79
- - ".idea/workspace.xml"
80
79
  - ".rspec"
81
80
  - ".travis.yml"
82
81
  - CODE_OF_CONDUCT.md
@@ -126,7 +125,7 @@ homepage: https://github.com/bitquery/activecube
126
125
  licenses:
127
126
  - MIT
128
127
  metadata: {}
129
- post_install_message:
128
+ post_install_message:
130
129
  rdoc_options: []
131
130
  require_paths:
132
131
  - lib
@@ -142,7 +141,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
142
141
  version: '0'
143
142
  requirements: []
144
143
  rubygems_version: 3.0.4
145
- signing_key:
144
+ signing_key:
146
145
  specification_version: 4
147
146
  summary: Multi-Dimensional Queries with Rails
148
147
  test_files: []
data/.idea/workspace.xml DELETED
@@ -1,145 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="BranchesTreeState">
4
- <expand>
5
- <path>
6
- <item name="ROOT" type="e8cecc67:BranchNodeDescriptor" />
7
- <item name="LOCAL_ROOT" type="e8cecc67:BranchNodeDescriptor" />
8
- </path>
9
- </expand>
10
- <select />
11
- </component>
12
- <component name="ChangeListManager">
13
- <list default="true" id="77368870-4045-496a-9737-2c7f83086a16" name="Default Changelist" comment="initial implementation" />
14
- <option name="SHOW_DIALOG" value="false" />
15
- <option name="HIGHLIGHT_CONFLICTS" value="true" />
16
- <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
17
- <option name="LAST_RESOLUTION" value="IGNORE" />
18
- </component>
19
- <component name="Git.Settings">
20
- <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
21
- </component>
22
- <component name="ProjectId" id="1Xu9Qappwp8FcqKJZrxzkXK80UI" />
23
- <component name="ProjectLevelVcsManager" settingsEditedManually="true" />
24
- <component name="ProjectViewState">
25
- <option name="hideEmptyMiddlePackages" value="true" />
26
- <option name="showLibraryContents" value="true" />
27
- </component>
28
- <component name="PropertiesComponent">
29
- <property name="WebServerToolWindowFactoryState" value="false" />
30
- <property name="last_opened_file_path" value="$PROJECT_DIR$/lib/activecube" />
31
- <property name="node.js.detected.package.eslint" value="true" />
32
- <property name="node.js.detected.package.tslint" value="true" />
33
- <property name="node.js.path.for.package.eslint" value="project" />
34
- <property name="node.js.path.for.package.tslint" value="project" />
35
- <property name="node.js.selected.package.eslint" value="(autodetect)" />
36
- <property name="node.js.selected.package.tslint" value="(autodetect)" />
37
- <property name="nodejs_interpreter_path.stuck_in_default_project" value="undefined stuck path" />
38
- <property name="nodejs_npm_path_reset_for_default_project" value="true" />
39
- <property name="settings.editor.selected.configurable" value="preferences.lookFeel" />
40
- </component>
41
- <component name="RecentsManager">
42
- <key name="MoveFile.RECENT_KEYS">
43
- <recent name="$PROJECT_DIR$/lib/activecube" />
44
- </key>
45
- <key name="CopyFile.RECENT_KEYS">
46
- <recent name="$PROJECT_DIR$/lib/activecube" />
47
- </key>
48
- </component>
49
- <component name="SpringUtil" SPRING_PRE_LOADER_OPTION="true" RAKE_SPRING_PRE_LOADER_OPTION="true" RAILS_SPRING_PRE_LOADER_OPTION="true" />
50
- <component name="SvnConfiguration">
51
- <configuration />
52
- </component>
53
- <component name="TaskManager">
54
- <task active="true" id="Default" summary="Default task">
55
- <changelist id="77368870-4045-496a-9737-2c7f83086a16" name="Default Changelist" comment="" />
56
- <created>1581885096407</created>
57
- <option name="number" value="Default" />
58
- <option name="presentableId" value="Default" />
59
- <updated>1581885096407</updated>
60
- <workItem from="1581885099890" duration="3547000" />
61
- </task>
62
- <task id="LOCAL-00001" summary="initial commit">
63
- <created>1581885128091</created>
64
- <option name="number" value="00001" />
65
- <option name="presentableId" value="LOCAL-00001" />
66
- <option name="project" value="LOCAL" />
67
- <updated>1581885128091</updated>
68
- </task>
69
- <task id="LOCAL-00002" summary="initial implementation">
70
- <created>1581885329956</created>
71
- <option name="number" value="00002" />
72
- <option name="presentableId" value="LOCAL-00002" />
73
- <option name="project" value="LOCAL" />
74
- <updated>1581885329956</updated>
75
- </task>
76
- <task id="LOCAL-00003" summary="initial implementation">
77
- <created>1581886068687</created>
78
- <option name="number" value="00003" />
79
- <option name="presentableId" value="LOCAL-00003" />
80
- <option name="project" value="LOCAL" />
81
- <updated>1581886068687</updated>
82
- </task>
83
- <task id="LOCAL-00004" summary="initial implementation">
84
- <created>1581888304903</created>
85
- <option name="number" value="00004" />
86
- <option name="presentableId" value="LOCAL-00004" />
87
- <option name="project" value="LOCAL" />
88
- <updated>1581888304904</updated>
89
- </task>
90
- <task id="LOCAL-00005" summary="initial implementation">
91
- <created>1581888510999</created>
92
- <option name="number" value="00005" />
93
- <option name="presentableId" value="LOCAL-00005" />
94
- <option name="project" value="LOCAL" />
95
- <updated>1581888510999</updated>
96
- </task>
97
- <option name="localTasksCounter" value="6" />
98
- <servers />
99
- </component>
100
- <component name="TypeScriptGeneratedFilesManager">
101
- <option name="version" value="2" />
102
- </component>
103
- <component name="Vcs.Log.Tabs.Properties">
104
- <option name="TAB_STATES">
105
- <map>
106
- <entry key="MAIN">
107
- <value>
108
- <State />
109
- </value>
110
- </entry>
111
- </map>
112
- </option>
113
- </component>
114
- <component name="VcsManagerConfiguration">
115
- <MESSAGE value="initial commit" />
116
- <MESSAGE value="initial implementation" />
117
- <option name="LAST_COMMIT_MESSAGE" value="initial implementation" />
118
- </component>
119
- <component name="WindowStateProjectService">
120
- <state width="1207" height="48" key="GridCell.Tab.0.bottom" timestamp="1581888894138">
121
- <screen x="0" y="23" width="1440" height="786" />
122
- </state>
123
- <state width="1207" height="48" key="GridCell.Tab.0.bottom/0.23.1440.786@0.23.1440.786" timestamp="1581888894138" />
124
- <state width="1207" height="48" key="GridCell.Tab.0.center" timestamp="1581888894135">
125
- <screen x="0" y="23" width="1440" height="786" />
126
- </state>
127
- <state width="1207" height="48" key="GridCell.Tab.0.center/0.23.1440.786@0.23.1440.786" timestamp="1581888894135" />
128
- <state width="1207" height="48" key="GridCell.Tab.0.left" timestamp="1581888894133">
129
- <screen x="0" y="23" width="1440" height="786" />
130
- </state>
131
- <state width="1207" height="48" key="GridCell.Tab.0.left/0.23.1440.786@0.23.1440.786" timestamp="1581888894133" />
132
- <state width="1207" height="48" key="GridCell.Tab.0.right" timestamp="1581888894136">
133
- <screen x="0" y="23" width="1440" height="786" />
134
- </state>
135
- <state width="1207" height="48" key="GridCell.Tab.0.right/0.23.1440.786@0.23.1440.786" timestamp="1581888894136" />
136
- <state x="537" y="156" key="Vcs.Push.Dialog.v2" timestamp="1581888518182">
137
- <screen x="0" y="23" width="1440" height="786" />
138
- </state>
139
- <state x="537" y="156" key="Vcs.Push.Dialog.v2/0.23.1440.786@0.23.1440.786" timestamp="1581888518182" />
140
- <state x="352" y="201" width="819" height="558" key="find.popup" timestamp="1581885294826">
141
- <screen x="0" y="23" width="1440" height="786" />
142
- </state>
143
- <state x="352" y="201" width="819" height="558" key="find.popup/0.23.1440.786@0.23.1440.786" timestamp="1581885294826" />
144
- </component>
145
- </project>