blazer 1.8.0 → 1.8.2

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of blazer might be problematic. Click here for more details.

@@ -4,24 +4,13 @@ module Blazer
4
4
  class DataSource
5
5
  extend Forwardable
6
6
 
7
- attr_reader :id, :settings, :adapter, :adapter_instance
7
+ attr_reader :id, :settings
8
8
 
9
9
  def_delegators :adapter_instance, :schema, :tables, :preview_statement, :reconnect, :cost, :explain, :cancel
10
10
 
11
11
  def initialize(id, settings)
12
12
  @id = id
13
13
  @settings = settings
14
-
15
- unless settings["url"] || Rails.env.development? || settings["adapter"] == "bigquery"
16
- raise Blazer::Error, "Empty url for data source: #{id}"
17
- end
18
-
19
- @adapter_instance =
20
- if Blazer.adapters[adapter]
21
- Blazer.adapters[adapter].new(self)
22
- else
23
- raise Blazer::Error, "Unknown adapter"
24
- end
25
14
  end
26
15
 
27
16
  def adapter
@@ -154,9 +143,23 @@ module Blazer
154
143
 
155
144
  protected
156
145
 
146
+ def adapter_instance
147
+ @adapter_instance ||= begin
148
+ unless settings["url"] || Rails.env.development? || ["bigquery", "athena"].include?(settings["adapter"])
149
+ raise Blazer::Error, "Empty url for data source: #{id}"
150
+ end
151
+
152
+ unless Blazer.adapters[adapter]
153
+ raise Blazer::Error, "Unknown adapter"
154
+ end
155
+
156
+ Blazer.adapters[adapter].new(self)
157
+ end
158
+ end
159
+
157
160
  def run_statement_helper(statement, comment, run_id)
158
161
  start_time = Time.now
159
- columns, rows, error = @adapter_instance.run_statement(statement, comment)
162
+ columns, rows, error = adapter_instance.run_statement(statement, comment)
160
163
  duration = Time.now - start_time
161
164
 
162
165
  cache_data = nil
@@ -165,7 +168,7 @@ module Blazer
165
168
  cache_data = Marshal.dump([columns, rows, error, cache ? Time.now : nil]) rescue nil
166
169
  end
167
170
 
168
- if cache && cache_data && @adapter_instance.cachable?(statement)
171
+ if cache && cache_data && adapter_instance.cachable?(statement)
169
172
  Blazer.cache.write(statement_cache_key(statement), cache_data, expires_in: cache_expires_in.to_f * 60)
170
173
  end
171
174
 
@@ -183,7 +186,7 @@ module Blazer
183
186
  def detect_adapter
184
187
  schema = settings["url"].to_s.split("://").first
185
188
  case schema
186
- when "mongodb", "presto"
189
+ when "mongodb", "presto", "cassandra"
187
190
  schema
188
191
  else
189
192
  "sql"
data/lib/blazer/engine.rb CHANGED
@@ -12,22 +12,7 @@ module Blazer
12
12
  Blazer.user_name = Blazer.settings["user_name"] if Blazer.settings["user_name"]
13
13
  Blazer.from_email = Blazer.settings["from_email"] if Blazer.settings["from_email"]
14
14
  Blazer.before_action = Blazer.settings["before_action"] if Blazer.settings["before_action"]
15
-
16
- Blazer.user_class ||= Blazer.settings.key?("user_class") ? Blazer.settings["user_class"] : (User rescue nil)
17
- Blazer.user_method = Blazer.settings["user_method"]
18
- if Blazer.user_class
19
- Blazer.user_method ||= "current_#{Blazer.user_class.to_s.downcase.singularize}"
20
- end
21
-
22
15
  Blazer.check_schedules = Blazer.settings["check_schedules"] if Blazer.settings.key?("check_schedules")
23
-
24
- if Blazer.user_class
25
- options = Blazer::BELONGS_TO_OPTIONAL.merge(class_name: Blazer.user_class.to_s)
26
- Blazer::Query.belongs_to :creator, options
27
- Blazer::Dashboard.belongs_to :creator, options
28
- Blazer::Check.belongs_to :creator, options
29
- end
30
-
31
16
  Blazer.cache ||= Rails.cache
32
17
 
33
18
  Blazer.anomaly_checks = Blazer.settings["anomaly_checks"] || false
@@ -1,3 +1,3 @@
1
1
  module Blazer
2
- VERSION = "1.8.0"
2
+ VERSION = "1.8.2"
3
3
  end
metadata CHANGED
@@ -1,29 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: blazer
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.8.0
4
+ version: 1.8.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Kane
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-05-01 00:00:00.000000000 Z
11
+ date: 2018-02-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: rails
14
+ name: railties
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '0'
19
+ version: '4'
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'
26
+ version: '4'
27
+ - !ruby/object:Gem::Dependency
28
+ name: activerecord
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '4'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '4'
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: chartkick
29
43
  requirement: !ruby/object:Gem::Requirement
@@ -87,9 +101,12 @@ executables: []
87
101
  extensions: []
88
102
  extra_rdoc_files: []
89
103
  files:
104
+ - ".gitattributes"
90
105
  - ".gitignore"
91
106
  - CHANGELOG.md
107
+ - CONTRIBUTING.md
92
108
  - Gemfile
109
+ - ISSUE_TEMPLATE.md
93
110
  - LICENSE.txt
94
111
  - README.md
95
112
  - Rakefile
@@ -140,6 +157,7 @@ files:
140
157
  - app/models/blazer/dashboard.rb
141
158
  - app/models/blazer/dashboard_query.rb
142
159
  - app/models/blazer/query.rb
160
+ - app/models/blazer/record.rb
143
161
  - app/views/blazer/_nav.html.erb
144
162
  - app/views/blazer/_variables.html.erb
145
163
  - app/views/blazer/check_mailer/failing_checks.html.erb
@@ -163,9 +181,12 @@ files:
163
181
  - blazer.gemspec
164
182
  - config/routes.rb
165
183
  - lib/blazer.rb
184
+ - lib/blazer/adapters/athena_adapter.rb
166
185
  - lib/blazer/adapters/base_adapter.rb
167
186
  - lib/blazer/adapters/bigquery_adapter.rb
187
+ - lib/blazer/adapters/cassandra_adapter.rb
168
188
  - lib/blazer/adapters/drill_adapter.rb
189
+ - lib/blazer/adapters/druid_adapter.rb
169
190
  - lib/blazer/adapters/elasticsearch_adapter.rb
170
191
  - lib/blazer/adapters/mongodb_adapter.rb
171
192
  - lib/blazer/adapters/presto_adapter.rb
@@ -201,7 +222,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
201
222
  version: '0'
202
223
  requirements: []
203
224
  rubyforge_project:
204
- rubygems_version: 2.5.1
225
+ rubygems_version: 2.6.13
205
226
  signing_key:
206
227
  specification_version: 4
207
228
  summary: Explore your data with SQL. Easily create charts and dashboards, and share