riemann-dash 0.2.1 → 0.2.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (49) hide show
  1. data/.gitignore +9 -0
  2. data/Gemfile +7 -0
  3. data/Gemfile.lock +52 -0
  4. data/README.markdown +29 -5
  5. data/Rakefile.rb +11 -0
  6. data/bin/riemann-dash +2 -2
  7. data/example/config.rb +17 -0
  8. data/lib/riemann/dash/app.rb +32 -0
  9. data/lib/riemann/dash/config.rb +154 -0
  10. data/lib/riemann/dash/controller/css.rb +1 -1
  11. data/lib/riemann/dash/controller/index.rb +6 -36
  12. data/lib/riemann/dash/public/dash.js +44 -18
  13. data/lib/riemann/dash/public/format.js +3 -3
  14. data/lib/riemann/dash/public/persistence.js +2 -2
  15. data/lib/riemann/dash/public/subs.js +63 -48
  16. data/lib/riemann/dash/public/util.js +37 -44
  17. data/lib/riemann/dash/public/vendor/backbone.js +1571 -0
  18. data/lib/riemann/dash/public/vendor/jquery/jquery-1.9.1.min.js +5 -0
  19. data/lib/riemann/dash/public/{jquery-ui-1.9.0.custom.min.js → vendor/jquery/jquery-ui-1.9.0.custom.min.js} +0 -0
  20. data/lib/riemann/dash/public/{jquery.quickfit.js → vendor/jquery/jquery.quickfit.js} +0 -0
  21. data/lib/riemann/dash/public/vendor/jquery/jquery.simplemodal.1.4.4.min.js +26 -0
  22. data/lib/riemann/dash/public/vendor/lodash.min.js +40 -0
  23. data/lib/riemann/dash/public/vendor/smoothie.js +376 -0
  24. data/lib/riemann/dash/public/{toastr.css → vendor/toastr/toastr.css} +1 -1
  25. data/lib/riemann/dash/public/{toastr.js → vendor/toastr/toastr.js} +0 -0
  26. data/lib/riemann/dash/public/views/gauge.js +8 -5
  27. data/lib/riemann/dash/public/views/grid.js +138 -67
  28. data/lib/riemann/dash/public/views/timeseries.js +230 -0
  29. data/lib/riemann/dash/public/views/title.js +6 -3
  30. data/lib/riemann/dash/version.rb +2 -2
  31. data/lib/riemann/dash/views/css.scss +52 -2
  32. data/lib/riemann/dash/views/index.erubis +38 -192
  33. data/lib/riemann/dash.rb +3 -97
  34. data/riemann-dash.gemspec +28 -0
  35. data/sh/c +1 -0
  36. data/sh/env.rb +2 -0
  37. data/sh/test +1 -0
  38. data/test/config_test.rb +114 -0
  39. data/test/fixtures/config/basic_config.rb +2 -0
  40. data/test/fixtures/config/ws_config.rb +1 -0
  41. data/test/fixtures/ws_config/dummy_config.json +1 -0
  42. data/test/fixtures/ws_config/pretty_printed_config.json +6 -0
  43. data/test/test_helper.rb +10 -0
  44. metadata +43 -18
  45. data/lib/riemann/dash/public/jquery-1.7.2.min.js +0 -4
  46. data/lib/riemann/dash/public/jquery.json-2.2.min.js +0 -31
  47. data/lib/riemann/dash/public/jquery.simplemodal.1.4.3.min.js +0 -26
  48. data/lib/riemann/dash/public/mustache.js +0 -597
  49. data/lib/riemann/dash/public/underscore-min.js +0 -5
@@ -1,202 +1,48 @@
1
- <!doctype html>
2
- <html>
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
3
  <head>
4
4
  <meta charset="UTF-8" />
5
- <title>Riemann</title>
6
- <link rel="stylesheet" href="/css" type="text/css" />
7
- <link rel="stylesheet" href="/toastr.css" type="text/css" />
5
+ <title>riemann</title>
6
+ <link rel="stylesheet" type="text/css" href="/vendor/toastr/toastr.css" />
7
+ <link rel="stylesheet" type="text/css" href="/css" />
8
8
  </head>
9
9
  <body>
10
10
  <div id="toolbar"></div>
11
11
  <div id="view"></div>
12
12
 
13
- <script type="text/javascript" src="/underscore-min.js"></script>
14
- <script type="text/javascript" src="/jquery-1.7.2.min.js"></script>
15
- <script type="text/javascript" src="/jquery-ui-1.9.0.custom.min.js"></script>
16
- <script type="text/javascript" src="/jquery.json-2.2.min.js"></script>
17
- <script type="text/javascript" src="/jquery.simplemodal.1.4.3.min.js"></script>
18
- <script type="text/javascript" src="/toastr.js"></script>
19
- <script type="text/javascript" src="/jquery.quickfit.js"></script>
20
- <script type="text/javascript" src="/util.js"></script>
21
- <script type="text/javascript" src="/mustache.js"></script>
22
- <script src="http://d3js.org/d3.v2.js"></script>
23
- <script type="text/javascript" src="/profile.js"></script>
24
- <script type="text/javascript" src="/clock.js"></script>
25
- <script type="text/javascript" src="/persistence.js"></script>
26
- <script type="text/javascript" src="/keys.js"></script>
27
- <script type="text/javascript" src="/subs.js"></script>
28
- <script type="text/javascript" src="/format.js"></script>
29
- <script type="text/javascript" src="/toolbar.js"></script>
30
- <script type="text/javascript" src="/view.js"></script>
31
- <script type="text/javascript" src="/views/title.js"></script>
32
- <script type="text/javascript" src="/views/help.js"></script>
33
- <script type="text/javascript" src="/views/gauge.js"></script>
34
- <script type="text/javascript" src="/views/grid.js"></script>
35
- <script type="text/javascript" src="/dash.js"></script>
36
-
37
- <script type="text/javascript">
38
- function logTable(container, query) {
39
- var $container = $(container);
40
- $container.addClass("log-table");
41
- $container.append('<input type="text" class="query"></input>');
42
- var prompt = $container.find('input');
43
- $container.append('<div class="scroll"><table><thead><tr>' +
44
- '<th>host</th>' +
45
- '<th>service</th>' +
46
- '<th>state</th>' +
47
- '<th>metric</th>' +
48
- '<th>description</th>' +
49
- '</tr></thead><tbody></tbody></table></div>');
50
- var scroll = $container.find('.scroll');
51
- var log = $container.find('tbody');
52
- var sub = null;
53
- var tracking = true;
54
-
55
- var template = "<tr><td>{{host}}</td><td>{{service}}</td><td>{{state}}</td><td>{{{metric}}}</td><td>{{description}}</td></tr>";
56
-
57
- // Are we following the bottom of the log?
58
- scroll.scroll(function(e) {
59
- if (scroll.scrollTop() > (log.height() - scroll.height())) {
60
- tracking = true;
61
- } else {
62
- tracking = false;
63
- }
64
- });
65
-
66
- var scrollToBottom = function() {
67
- scroll.stop().animate({
68
- scrollTop: (log.height() - scroll.height() + 20)
69
- }, 1000, "swing");
70
- }
71
-
72
- var atBottom = function() {
73
- console.log(scroll.scrollTop());
74
- console.log(log.height() - scroll.height());
75
- return (scroll.scrollTop() > (log.height() - scroll.height()));
76
- }
77
-
78
- // Add an event
79
- var append = function(e) {
80
- $.extend(e, {
81
- metric: format.metric(e)
82
- });
83
- log.append(Mustache.render(template, e));
84
- if (tracking) { scrollToBottom() };
85
- }
86
-
87
- // Set up our query
88
- var startQuery = function(query) {
89
- // Cancel existing sub
90
- if (sub != null) { sub.close(); }
91
-
92
- // Subscribe
93
- sub = subs.subscribe(query, function(e) {
94
- e.time = d3.time.format.iso.parse(e.time);
95
- clock.advance(e.time);
96
- append(e);
97
- });
98
- }
99
-
100
- // Initial subscription
101
- if (query) { prompt[0].value = query; startQuery(query); }
102
-
103
- // Prompt entry
104
- prompt.change(function() { startQuery(this.value) });
105
- }
106
-
107
-
108
- function timeSeries(container) {
109
- // Container
110
- var $container = $(container);
111
- var container = d3.select(container);
112
- $container.append('<input type=\"text\" style="display: block"></input>');
113
- var prompt = $container.children().last();
114
-
115
- // Data structures
116
- var data = [];
117
- var n = 60;
118
- var sub = null;
119
-
120
- // Scale
121
- var w = 20;
122
- var h = 80;
123
-
124
- var x = d3.time.scale()
125
- .domain([0,1])
126
- .range([0, w * n]);
127
- var y = d3.scale.linear()
128
- .domain([0,100])
129
- .rangeRound([0,h]);
130
-
131
- var updateTime = function(max) {
132
- var min = d3.time.minute.offset(max, -1);
133
- x.domain([min, max]);
134
- }
135
- updateTime(new Date());
136
-
137
- // Chart itself
138
- var chart = container.append("svg")
139
- .attr("class", "timeSeries")
140
- .attr("width", w * (n - 1))
141
- .attr("height", h);
142
-
143
- // Baseline
144
- chart.append("line")
145
- .attr("x1", 0)
146
- .attr("x2", w * n)
147
- .attr("y1", h - .5)
148
- .attr("y2", h - .5)
149
- .style("stroke", "#000");
150
-
151
- // Subscribe
152
- prompt.change(function() {
153
- if (sub != null) { sub.close(); }
154
-
155
- sub = subscribe(this.value, function(e) {
156
- // Move time
157
- e.time = d3.time.format.iso.parse(e.time);
158
- clock.advance(e.time);
159
-
160
- // Append to window
161
- if (data.length >= n) {
162
- data.shift();
163
- }
164
- data.push(e);
165
-
166
- console.log(e.time, "maps to", x(e.time), "in", x.domain(), x.range());
167
- });
168
- });
169
-
170
- var clockSub = clock.register(function(t) {
171
- updateTime(t);
172
-
173
- // Move events
174
- var rect = chart.selectAll("rect")
175
- .data(data, function(e) { if (e) { return e.time } });
176
-
177
- rect.enter().insert("rect", "line")
178
- .attr("x", function(e, i) {
179
- return x(e.time) - .5; })
180
- .attr("y", function(e) { return h - y(e.metric) - .5 })
181
- .attr("width", w)
182
- .attr("height", function(e) { return y(e.metric); })
183
- .transition()
184
- .duration(1000)
185
- .attr("x", function(e, i) { return x(e.time) - .5 });
186
-
187
- rect.transition()
188
- .duration(1000)
189
- .attr("x", function(e) { return x(e.time) - .5; });
190
-
191
- rect.exit().transition()
192
- .duration(1000)
193
- .attr("x", function(e) { return x(e.time) - .5 })
194
- .remove();
195
- });
196
-
197
- }
198
-
199
- dash.reload();
13
+ <!-- begin third party dependencies -->
14
+ <script src="/vendor/smoothie.js"></script>
15
+ <script src="/vendor/lodash.min.js"></script>
16
+ <script src="/vendor/jquery/jquery-1.9.1.min.js"></script>
17
+ <script src="/vendor/backbone.js"></script>
18
+ <script src="/vendor/jquery/jquery-ui-1.9.0.custom.min.js"></script>
19
+ <script src="/vendor/jquery/jquery.simplemodal.1.4.4.min.js"></script>
20
+ <script src="/vendor/jquery/jquery.quickfit.js"></script>
21
+ <script src="/vendor/toastr/toastr.js"></script>
22
+ <script> // turn underscore templates into mustache style templates
23
+ _.templateSettings = {
24
+ evaluate : /\{\%([\s\S]+?)\%\}/g, // {% eval(js); %}
25
+ interpolate : /\{\{([\s\S]+?)\}\}/g // {{ interpolate }}
26
+ };
200
27
  </script>
28
+ <!-- end third party deps -->
29
+
30
+ <script src="/util.js"></script>
31
+ <script src="/format.js"></script>
32
+ <script src="/profile.js"></script>
33
+ <script src="/clock.js"></script>
34
+ <script src="/persistence.js"></script>
35
+ <script src="/keys.js"></script>
36
+ <script src="/subs.js"></script>
37
+ <script src="/toolbar.js"></script>
38
+ <script src="/view.js"></script>
39
+ <script src="/views/timeseries.js"></script>
40
+ <script src="/views/title.js"></script>
41
+ <script src="/views/help.js"></script>
42
+ <script src="/views/gauge.js"></script>
43
+ <script src="/views/grid.js"></script>
44
+ <script src="/dash.js"></script>
45
+
46
+ <script>dash.reload()</script>
201
47
  </body>
202
48
  </html>
data/lib/riemann/dash.rb CHANGED
@@ -1,99 +1,5 @@
1
1
  require 'rubygems'
2
2
  require 'sinatra/base'
3
-
4
- module Riemann
5
- class Dash < Sinatra::Base
6
- # A little dashboard sinatra application.
7
-
8
- require 'yaml'
9
- require 'find'
10
- require 'erubis'
11
- require 'sass'
12
-
13
- def self.config
14
- @config ||= {
15
- :controllers => [File.join(File.dirname(__FILE__), 'dash', 'controller')],
16
- :views => File.join(File.dirname(__FILE__), 'dash', 'views')
17
- }
18
- end
19
-
20
- def self.load(filename)
21
- unless load_config(filename || 'config.rb')
22
- # Configuration failed; load a default view.
23
- puts "No configuration loaded; using defaults."
24
- end
25
-
26
- config[:controllers].each { |d| load_controllers d }
27
- set :views, File.expand_path(config[:views])
28
-
29
- # Fallback pub dir
30
- public_dir(File.join(File.dirname(__FILE__), 'dash', 'public'))
31
- end
32
-
33
- # Executes the configuration file.
34
- def self.load_config(filename)
35
- begin
36
- instance_eval File.read(filename)
37
- true
38
- rescue Errno::ENOENT
39
- false
40
- end
41
- end
42
-
43
- # Load controllers.
44
- # Controllers can be regular old one-file-per-class, but
45
- # if you prefer a little more modularity, this method will allow you to
46
- # define all controller methods in their own files. For example, get
47
- # "/posts/*/edit" can live in controller/posts/_/edit.rb. The sorting
48
- # system provided here requires files in the correct order to handle
49
- # wildcards appropriately.
50
- def self.load_controllers(dir)
51
- rbs = []
52
- Find.find(
53
- File.expand_path(dir)
54
- ) do |path|
55
- rbs << path if path =~ /\.rb$/
56
- end
57
-
58
- # Sort paths with _ last, becase those are wildcards.
59
- rbs.sort! do |a, b|
60
- as = a.split File::SEPARATOR
61
- bs = b.split File::SEPARATOR
62
-
63
- # Compare common subpaths
64
- l = [as.size, bs.size].min
65
- catch :x do
66
- (0...l).each do |i|
67
- a, b = as[i], bs[i]
68
- if a[/^_/] and not b[/^_/]
69
- throw :x, 1
70
- elsif b[/^_/] and not a[/^_/]
71
- throw :x, -1
72
- elsif ord = (a <=> b) and ord != 0
73
- throw :x, ord
74
- end
75
- end
76
-
77
- # All subpaths are identical; sort longest first
78
- if as.size > bs.size
79
- throw :x, -1
80
- elsif as.size < bs.size
81
- throw :x, -1
82
- else
83
- throw :x, 0
84
- end
85
- end
86
- end
87
-
88
- rbs.each do |r|
89
- require r
90
- end
91
- end
92
-
93
- # Add an additional public directory.
94
- def self.public_dir(dir)
95
- require 'riemann/dash/rack/static'
96
- use Riemann::Dash::Static, :root => dir
97
- end
98
- end
99
- end
3
+ require 'riemann/dash/version'
4
+ require 'riemann/dash/config'
5
+ require 'riemann/dash/app'
@@ -0,0 +1,28 @@
1
+ # -*- encoding: utf-8 -*-
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'riemann/dash/version'
5
+
6
+ Gem::Specification.new do |gem|
7
+ gem.rubyforge_project = 'riemann-dash'
8
+
9
+ gem.name = "riemann-dash"
10
+ gem.version = Riemann::Dash::VERSION
11
+ gem.authors = ["Kyle Kingsbury"]
12
+ gem.email = ['aphyr@aphyr.com']
13
+ gem.description = %q{HTTP dashboard for the distributed event system Riemann.}
14
+ gem.summary = gem.description
15
+ gem.homepage = 'https://github.com/aphyr/riemann-dash'
16
+ gem.platform = Gem::Platform::RUBY
17
+
18
+ gem.add_dependency 'riemann-client', '>= 0.0.7'
19
+ gem.add_dependency 'erubis', '>= 2.7.0'
20
+ gem.add_dependency 'sinatra', '>= 1.3.2'
21
+ gem.add_dependency 'sass', '>= 3.1.14'
22
+ gem.add_dependency 'thin', '>= 1.3.1'
23
+ gem.add_dependency 'multi_json', '1.3.6'
24
+ gem.files = `git ls-files`.split($/)
25
+ gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
26
+ gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
27
+ gem.require_paths = ["lib"]
28
+ end
data/sh/c ADDED
@@ -0,0 +1 @@
1
+ irb -r ./sh/env.rb
data/sh/env.rb ADDED
@@ -0,0 +1,2 @@
1
+ $LOAD_PATH.unshift(File.expand_path(File.join(File.dirname(__FILE__), '..', 'lib')))
2
+ require 'riemann/dash'
data/sh/test ADDED
@@ -0,0 +1 @@
1
+ rake
@@ -0,0 +1,114 @@
1
+ require './test/test_helper'
2
+
3
+
4
+ describe "Riemann::Dash::Config" do
5
+ before do
6
+ @config = Riemann::Dash::Config.instance
7
+ end
8
+
9
+ after do
10
+ Riemann::Dash::Config.reset!
11
+ end
12
+
13
+ it "is loaded" do
14
+ @config.wont_be_nil
15
+ end
16
+
17
+ describe :load_config do
18
+ it "will apply configs from specified file to sinatra app" do
19
+ @config.load_config("test/fixtures/config/basic_config.rb")
20
+ Riemann::Dash::App.settings.settings_loaded.must_equal "yes"
21
+ end
22
+
23
+ it "will apply settings from file to self" do
24
+ @config.store[:views].wont_equal "/some/path/to/views"
25
+ @config.load_config("test/fixtures/config/basic_config.rb")
26
+ @config.store[:views].must_equal "/some/path/to/views"
27
+ end
28
+ end
29
+
30
+ describe :setup_default_values do
31
+ it "has controllers path" do
32
+ @config.store[:controllers].first.must_match %r{/lib/riemann/dash/controller}
33
+ @config.store[:controllers].class.must_equal Array
34
+ end
35
+
36
+ it "has view path" do
37
+ @config.store[:views].must_match %r{/lib/riemann/dash/view}
38
+ end
39
+
40
+ it "has public path" do
41
+ @config.store[:public].must_match %r{/lib/riemann/dash/public}
42
+ end
43
+
44
+ it "has workspace config" do
45
+ @config.store[:ws_config].must_match %r{/config/config.json}
46
+ end
47
+
48
+ end
49
+
50
+ describe "applying to sinatra app" do
51
+ describe :load_controllers do
52
+
53
+ end
54
+
55
+ describe :setup_views do
56
+
57
+ end
58
+
59
+
60
+ describe :setup_public_dir do
61
+
62
+ end
63
+ end
64
+
65
+ describe "workspace config" do
66
+ before do
67
+ FileUtils.rm_rf "test/tmp/"
68
+ end
69
+
70
+
71
+ describe :read_ws_config do
72
+ =begin
73
+ # this test fails if the config living at config/config.json has
74
+ # been overwritten with user content -- this happens for people
75
+ # who had previously run their riemann-dash instance via simply
76
+ # cd riemann-dash && bin/riemann-dash -- it would also fail once
77
+ # you save your config in the default location
78
+ it "retuns hash for empty configs" do
79
+ @config.read_ws_config.must_equal "{}"
80
+ end
81
+ =end
82
+
83
+ it "reads the file, if present" do
84
+ @config.load_config("test/fixtures/config/ws_config.rb").must_equal true
85
+ @config.store[:ws_config].must_equal "test/fixtures/ws_config/dummy_config.json"
86
+ @config.read_ws_config.must_equal %Q{{hey: \"ho\"}}
87
+ end
88
+ end
89
+
90
+ describe :update_ws_config do
91
+ it "works" do
92
+ @config.store[:ws_config] = "test/tmp/config.json"
93
+ @config.update_ws_config("{\"server\":\"10.10.10.10\",\"workspaces\":[]}")
94
+ end
95
+
96
+ it "pretty-prints the config" do
97
+ @config.store[:ws_config] = "test/tmp/config.json"
98
+ @config.update_ws_config("{\"server\":\"10.10.10.10\",\"workspaces\":[]}")
99
+ File.read("test/tmp/config.json").must_equal File.read("test/fixtures/ws_config/pretty_printed_config.json")
100
+ end
101
+ end
102
+ end
103
+
104
+ describe "backwards compatible :[] and :[]= forwarders to `store` variable" do
105
+ it "reading works" do
106
+ @config[:ws_config].must_match %r{config/config.json}
107
+ end
108
+
109
+ it "writing works" do
110
+ @config[:ws_config] = "something"
111
+ @config[:ws_config].must_match %r{something}
112
+ end
113
+ end
114
+ end
@@ -0,0 +1,2 @@
1
+ set :settings_loaded, "yes"
2
+ config.store[:views] = "/some/path/to/views"
@@ -0,0 +1 @@
1
+ config.store[:ws_config] = "test/fixtures/ws_config/dummy_config.json"
@@ -0,0 +1 @@
1
+ {hey: "ho"}
@@ -0,0 +1,6 @@
1
+ {
2
+ "server": "10.10.10.10",
3
+ "workspaces": [
4
+
5
+ ]
6
+ }
@@ -0,0 +1,10 @@
1
+ require 'rubygems'
2
+ require 'bundler'
3
+ Bundler.setup(:default, :test)
4
+
5
+ require 'minitest/autorun'
6
+ require 'minitest/spec'
7
+ #require "mocha/setup"
8
+
9
+ $LOAD_PATH.unshift File.join(File.dirname(__FILE__), '..', 'lib')
10
+ require 'riemann/dash'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: riemann-dash
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-02-19 00:00:00.000000000 Z
12
+ date: 2013-04-17 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: riemann-client
@@ -107,38 +107,50 @@ dependencies:
107
107
  - - '='
108
108
  - !ruby/object:Gem::Version
109
109
  version: 1.3.6
110
- description:
111
- email: aphyr@aphyr.com
110
+ description: HTTP dashboard for the distributed event system Riemann.
111
+ email:
112
+ - aphyr@aphyr.com
112
113
  executables:
113
114
  - riemann-dash
114
115
  extensions: []
115
116
  extra_rdoc_files: []
116
117
  files:
118
+ - .gitignore
119
+ - Gemfile
120
+ - Gemfile.lock
121
+ - LICENSE
122
+ - README.markdown
123
+ - Rakefile.rb
124
+ - bin/riemann-dash
125
+ - example/config.rb
117
126
  - lib/riemann/dash.rb
127
+ - lib/riemann/dash/app.rb
128
+ - lib/riemann/dash/config.rb
118
129
  - lib/riemann/dash/controller/css.rb
119
130
  - lib/riemann/dash/controller/index.rb
120
131
  - lib/riemann/dash/public/clock.js
121
132
  - lib/riemann/dash/public/dash.js
122
133
  - lib/riemann/dash/public/format.js
123
- - lib/riemann/dash/public/jquery-1.7.2.min.js
124
- - lib/riemann/dash/public/jquery-ui-1.9.0.custom.min.js
125
- - lib/riemann/dash/public/jquery.json-2.2.min.js
126
- - lib/riemann/dash/public/jquery.quickfit.js
127
- - lib/riemann/dash/public/jquery.simplemodal.1.4.3.min.js
128
134
  - lib/riemann/dash/public/keys.js
129
- - lib/riemann/dash/public/mustache.js
130
135
  - lib/riemann/dash/public/persistence.js
131
136
  - lib/riemann/dash/public/profile.js
132
137
  - lib/riemann/dash/public/subs.js
133
- - lib/riemann/dash/public/toastr.css
134
- - lib/riemann/dash/public/toastr.js
135
138
  - lib/riemann/dash/public/toolbar.js
136
- - lib/riemann/dash/public/underscore-min.js
137
139
  - lib/riemann/dash/public/util.js
140
+ - lib/riemann/dash/public/vendor/backbone.js
141
+ - lib/riemann/dash/public/vendor/jquery/jquery-1.9.1.min.js
142
+ - lib/riemann/dash/public/vendor/jquery/jquery-ui-1.9.0.custom.min.js
143
+ - lib/riemann/dash/public/vendor/jquery/jquery.quickfit.js
144
+ - lib/riemann/dash/public/vendor/jquery/jquery.simplemodal.1.4.4.min.js
145
+ - lib/riemann/dash/public/vendor/lodash.min.js
146
+ - lib/riemann/dash/public/vendor/smoothie.js
147
+ - lib/riemann/dash/public/vendor/toastr/toastr.css
148
+ - lib/riemann/dash/public/vendor/toastr/toastr.js
138
149
  - lib/riemann/dash/public/view.js
139
150
  - lib/riemann/dash/public/views/gauge.js
140
151
  - lib/riemann/dash/public/views/grid.js
141
152
  - lib/riemann/dash/public/views/help.js
153
+ - lib/riemann/dash/public/views/timeseries.js
142
154
  - lib/riemann/dash/public/views/title.js
143
155
  - lib/riemann/dash/public/x.png
144
156
  - lib/riemann/dash/rack/static.rb
@@ -146,9 +158,16 @@ files:
146
158
  - lib/riemann/dash/views/css.scss
147
159
  - lib/riemann/dash/views/index.erubis
148
160
  - lib/riemann/dash/views/layout.erubis
149
- - bin/riemann-dash
150
- - LICENSE
151
- - README.markdown
161
+ - riemann-dash.gemspec
162
+ - sh/c
163
+ - sh/env.rb
164
+ - sh/test
165
+ - test/config_test.rb
166
+ - test/fixtures/config/basic_config.rb
167
+ - test/fixtures/config/ws_config.rb
168
+ - test/fixtures/ws_config/dummy_config.json
169
+ - test/fixtures/ws_config/pretty_printed_config.json
170
+ - test/test_helper.rb
152
171
  homepage: https://github.com/aphyr/riemann-dash
153
172
  licenses: []
154
173
  post_install_message:
@@ -160,7 +179,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
160
179
  requirements:
161
180
  - - ! '>='
162
181
  - !ruby/object:Gem::Version
163
- version: 1.8.7
182
+ version: '0'
164
183
  required_rubygems_version: !ruby/object:Gem::Requirement
165
184
  none: false
166
185
  requirements:
@@ -173,4 +192,10 @@ rubygems_version: 1.8.25
173
192
  signing_key:
174
193
  specification_version: 3
175
194
  summary: HTTP dashboard for the distributed event system Riemann.
176
- test_files: []
195
+ test_files:
196
+ - test/config_test.rb
197
+ - test/fixtures/config/basic_config.rb
198
+ - test/fixtures/config/ws_config.rb
199
+ - test/fixtures/ws_config/dummy_config.json
200
+ - test/fixtures/ws_config/pretty_printed_config.json
201
+ - test/test_helper.rb