blazer 1.7.8 → 1.7.9
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +6 -0
- data/README.md +12 -0
- data/app/assets/javascripts/blazer/Chart.js +4054 -2310
- data/app/assets/javascripts/blazer/stupidtable.js +1 -1
- data/app/helpers/blazer/base_helper.rb +1 -1
- data/app/models/blazer/check.rb +11 -1
- data/app/views/blazer/checks/index.html.erb +1 -1
- data/app/views/blazer/queries/run.html.erb +1 -1
- data/lib/blazer.rb +2 -0
- data/lib/blazer/adapters/drill_adapter.rb +34 -0
- data/lib/blazer/version.rb +1 -1
- metadata +3 -2
@@ -95,7 +95,7 @@
|
|
95
95
|
return parseInt(a.replace(/,/g, ''), 10) - parseInt(b.replace(/,/g, ''), 10);
|
96
96
|
},
|
97
97
|
"float": function(a, b) {
|
98
|
-
return parseFloat(a) - parseFloat(b);
|
98
|
+
return (parseFloat(a) || 0) - (parseFloat(b) || 0);
|
99
99
|
},
|
100
100
|
"string": function(a, b) {
|
101
101
|
if (a < b) return -1;
|
@@ -33,7 +33,7 @@ module Blazer
|
|
33
33
|
end
|
34
34
|
|
35
35
|
def blazer_js_var(name, value)
|
36
|
-
"var #{name} = #{blazer_json_escape(value.to_json)}".html_safe
|
36
|
+
"var #{name} = #{blazer_json_escape(value.to_json(root: false))};".html_safe
|
37
37
|
end
|
38
38
|
|
39
39
|
JSON_ESCAPE = { '&' => '\u0026', '>' => '\u003e', '<' => '\u003c', "\u2028" => '\u2028', "\u2029" => '\u2029' }
|
data/app/models/blazer/check.rb
CHANGED
@@ -4,6 +4,7 @@ module Blazer
|
|
4
4
|
belongs_to :query
|
5
5
|
|
6
6
|
validates :query_id, presence: true
|
7
|
+
validate :validate_emails
|
7
8
|
|
8
9
|
before_validation :set_state
|
9
10
|
before_validation :fix_emails
|
@@ -72,7 +73,16 @@ module Blazer
|
|
72
73
|
def fix_emails
|
73
74
|
# some people like doing ; instead of ,
|
74
75
|
# but we know what they mean, so let's fix it
|
75
|
-
|
76
|
+
# also, some people like to use whitespace
|
77
|
+
if emails.present?
|
78
|
+
self.emails = emails.strip.gsub(/[;\s]/, ",").gsub(/,+/, ", ")
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
def validate_emails
|
83
|
+
unless split_emails.all? { |e| e =~ /\A\S+@\S+\.\S+\z/ }
|
84
|
+
errors.add(:base, "Invalid emails")
|
85
|
+
end
|
76
86
|
end
|
77
87
|
end
|
78
88
|
end
|
@@ -19,7 +19,7 @@
|
|
19
19
|
<td><%= link_to check.query.name, check.query %> <span class="text-muted"><%= check.try(:check_type).to_s.gsub("_", " ") %></span></td>
|
20
20
|
<td>
|
21
21
|
<% if check.state %>
|
22
|
-
<small class="check-state <%= check.state.parameterize("_") %>"><%= check.state.upcase %></small>
|
22
|
+
<small class="check-state <%= check.state.parameterize.gsub("-", "_") %>"><%= check.state.upcase %></small>
|
23
23
|
<% end %>
|
24
24
|
</td>
|
25
25
|
<td><%= check.schedule if check.respond_to?(:schedule) %></td>
|
@@ -28,7 +28,7 @@
|
|
28
28
|
<%= pluralize(@rows.size, "row") %>
|
29
29
|
|
30
30
|
<% @checks.select(&:state).each do |check| %>
|
31
|
-
· <small class="check-state <%= check.state.parameterize("_") %>"><%= link_to check.state.upcase, edit_check_path(check) %></small>
|
31
|
+
· <small class="check-state <%= check.state.parameterize.gsub("-", "_") %>"><%= link_to check.state.upcase, edit_check_path(check) %></small>
|
32
32
|
<% if check.try(:message) %>
|
33
33
|
· <%= check.message %>
|
34
34
|
<% end %>
|
data/lib/blazer.rb
CHANGED
@@ -7,6 +7,7 @@ require "blazer/data_source"
|
|
7
7
|
require "blazer/result"
|
8
8
|
require "blazer/run_statement"
|
9
9
|
require "blazer/adapters/base_adapter"
|
10
|
+
require "blazer/adapters/drill_adapter"
|
10
11
|
require "blazer/adapters/elasticsearch_adapter"
|
11
12
|
require "blazer/adapters/mongodb_adapter"
|
12
13
|
require "blazer/adapters/presto_adapter"
|
@@ -158,6 +159,7 @@ module Blazer
|
|
158
159
|
end
|
159
160
|
end
|
160
161
|
|
162
|
+
Blazer.register_adapter "drill", Blazer::Adapters::DrillAdapter
|
161
163
|
Blazer.register_adapter "elasticsearch", Blazer::Adapters::ElasticsearchAdapter
|
162
164
|
Blazer.register_adapter "mongodb", Blazer::Adapters::MongodbAdapter
|
163
165
|
Blazer.register_adapter "presto", Blazer::Adapters::PrestoAdapter
|
@@ -0,0 +1,34 @@
|
|
1
|
+
module Blazer
|
2
|
+
module Adapters
|
3
|
+
class DrillAdapter < BaseAdapter
|
4
|
+
def run_statement(statement, comment)
|
5
|
+
columns = []
|
6
|
+
rows = []
|
7
|
+
error = nil
|
8
|
+
|
9
|
+
header = {"Content-Type" => "application/json", "Accept" => "application/json"}
|
10
|
+
data = {
|
11
|
+
queryType: "sql",
|
12
|
+
query: statement
|
13
|
+
}
|
14
|
+
|
15
|
+
uri = URI.parse("#{settings["url"]}/query.json")
|
16
|
+
http = Net::HTTP.new(uri.host, uri.port)
|
17
|
+
|
18
|
+
begin
|
19
|
+
response = JSON.parse(http.post(uri.request_uri, data.to_json, header).body)
|
20
|
+
if response["errorMessage"]
|
21
|
+
error = response["errorMessage"]
|
22
|
+
else
|
23
|
+
columns = response["columns"]
|
24
|
+
rows = response["rows"].map { |r| r.values }
|
25
|
+
end
|
26
|
+
rescue => e
|
27
|
+
error = e.message
|
28
|
+
end
|
29
|
+
|
30
|
+
[columns, rows, error]
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
data/lib/blazer/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: blazer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.7.
|
4
|
+
version: 1.7.9
|
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-
|
11
|
+
date: 2017-03-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -164,6 +164,7 @@ files:
|
|
164
164
|
- config/routes.rb
|
165
165
|
- lib/blazer.rb
|
166
166
|
- lib/blazer/adapters/base_adapter.rb
|
167
|
+
- lib/blazer/adapters/drill_adapter.rb
|
167
168
|
- lib/blazer/adapters/elasticsearch_adapter.rb
|
168
169
|
- lib/blazer/adapters/mongodb_adapter.rb
|
169
170
|
- lib/blazer/adapters/presto_adapter.rb
|