activecube 0.1.33 → 0.1.37

Sign up to get free protection for your applications and to get access to all the features.
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>