kibana-sinatra 3.1.0.1 → 3.1.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +18 -0
- data/lib/kibana/sinatra/version.rb +1 -1
- data/lib/kibana/sinatra/web.rb +8 -0
- data/test/sinatra_test.rb +36 -4
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7d6fb0ca5b9deb5f4ac4021e85db5ed2bc2f8cc1
|
4
|
+
data.tar.gz: 7fcc55bafac7329a79b8e8e56dc5991fe2eb4b2a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2054e744ba55b7f4299c1b88ff5780e67f58a6358d4473142e0e9ed7e4f28c4cb6d509f9111cd55f1e0264684b6b4c9c162a8a739e6886a56c9bd9b6ef21bbb8
|
7
|
+
data.tar.gz: 3f9f274511bfaf9edd1382b175e37d98a0dd24f7bd51e60086b71c41b1c18fa6707794e9b40172b24eabda4aff17a76cf444356fd2b89219f6aa086a2319120b
|
data/README.md
CHANGED
@@ -75,6 +75,24 @@ At last, you need to just run rackup.
|
|
75
75
|
rackup
|
76
76
|
```
|
77
77
|
|
78
|
+
### Custom dashboards
|
79
|
+
|
80
|
+
If you would like to include custom dashboard JSON files you can do so by overriding the `render_dashboard(name)` method. This method requires a single parameter `name` that will contain the filename requested. For example, if the browser requests `/app/dashboards/test.json`, then `test.json` will be assigned to the `name` parameter.
|
81
|
+
|
82
|
+
This method should return the JSON as a string.
|
83
|
+
|
84
|
+
You could then make that JSON file the default by overriding `default_route` like this:
|
85
|
+
|
86
|
+
```ruby
|
87
|
+
module Kibana::Sinatra
|
88
|
+
class Web
|
89
|
+
def default_route
|
90
|
+
"/dashboard/file/test.json"
|
91
|
+
end
|
92
|
+
end
|
93
|
+
end
|
94
|
+
```
|
95
|
+
|
78
96
|
## Versions
|
79
97
|
|
80
98
|
Kibana-sinatra's version number will match the upstream Kibana version number, plus an additional build number. For example:
|
data/lib/kibana/sinatra/web.rb
CHANGED
@@ -15,6 +15,10 @@ module Kibana
|
|
15
15
|
erb :config
|
16
16
|
end
|
17
17
|
|
18
|
+
get '/app/dashboards/:name' do
|
19
|
+
render_dashboard params[:name]
|
20
|
+
end
|
21
|
+
|
18
22
|
def elasticsearch_url
|
19
23
|
"http://\"+window.location.hostname+\":9200"
|
20
24
|
end
|
@@ -26,6 +30,10 @@ module Kibana
|
|
26
30
|
def default_route
|
27
31
|
"/dashboard/file/default.json"
|
28
32
|
end
|
33
|
+
|
34
|
+
def render_dashboard(name)
|
35
|
+
status 404
|
36
|
+
end
|
29
37
|
end
|
30
38
|
|
31
39
|
end
|
data/test/sinatra_test.rb
CHANGED
@@ -65,17 +65,49 @@ class SinatraTest < Minitest::Unit::TestCase
|
|
65
65
|
end
|
66
66
|
end
|
67
67
|
|
68
|
+
def test_it_renders_kibana_builtin_dashboard
|
69
|
+
get '/app/dashboards/default.json'
|
70
|
+
assert last_response.ok?
|
71
|
+
assert_equal 4140, last_response.body.length
|
72
|
+
end
|
73
|
+
|
74
|
+
def test_it_renders_kibana_builtin_dashboard_when_custom_present
|
75
|
+
render_dashboard = Proc.new {|name| "asdf" }
|
76
|
+
|
77
|
+
monkey_patch "render_dashboard", render_dashboard do
|
78
|
+
get '/app/dashboards/default.json'
|
79
|
+
assert last_response.ok?
|
80
|
+
assert_equal 4140, last_response.body.length
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
84
|
+
def test_it_renders_default_dashboard
|
85
|
+
get '/app/dashboards/asdf.json'
|
86
|
+
assert last_response.not_found?
|
87
|
+
assert_equal 0, last_response.body.length
|
88
|
+
end
|
89
|
+
|
90
|
+
def test_it_renders_custom_dashboard
|
91
|
+
render_dashboard = Proc.new {|name| "asdf" }
|
92
|
+
|
93
|
+
monkey_patch "render_dashboard", render_dashboard do
|
94
|
+
get '/app/dashboards/testing.json'
|
95
|
+
assert last_response.ok?
|
96
|
+
assert_equal "asdf", last_response.body
|
97
|
+
end
|
98
|
+
end
|
99
|
+
|
68
100
|
def monkey_patch(method_name, method_replacement)
|
69
101
|
Kibana::Sinatra::Web.class_eval do
|
70
|
-
alias_method "
|
102
|
+
alias_method "original_#{method_name}", method_name
|
71
103
|
define_method method_name, method_replacement
|
72
104
|
end
|
73
105
|
|
74
106
|
yield
|
75
|
-
|
107
|
+
ensure
|
76
108
|
Kibana::Sinatra::Web.class_eval do
|
77
|
-
alias_method method_name, "
|
78
|
-
remove_method "
|
109
|
+
alias_method method_name, "original_#{method_name}"
|
110
|
+
remove_method "original_#{method_name}"
|
79
111
|
end
|
80
112
|
end
|
81
113
|
end
|