dasht 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (46) hide show
  1. checksums.yaml +7 -0
  2. data/.agignore +3 -0
  3. data/Gemfile +14 -0
  4. data/Gemfile.lock +88 -0
  5. data/LICENSE.txt +20 -0
  6. data/README.md +329 -0
  7. data/Rakefile +51 -0
  8. data/VERSION +1 -0
  9. data/assets/css/style.css +123 -0
  10. data/assets/images/background.jpg +0 -0
  11. data/assets/js/Chart.min.js +11 -0
  12. data/assets/js/dasht.js +141 -0
  13. data/assets/js/jquery-1.11.3.min.js +5 -0
  14. data/assets/js/masonry.pkgd.min.js +9 -0
  15. data/assets/js/mustache.min.js +1 -0
  16. data/assets/js/underscore-min.js +6 -0
  17. data/assets/plugins/chart.css +11 -0
  18. data/assets/plugins/chart.html +2 -0
  19. data/assets/plugins/chart.js +50 -0
  20. data/assets/plugins/map.css +17 -0
  21. data/assets/plugins/map.html +4 -0
  22. data/assets/plugins/map.js +125 -0
  23. data/assets/plugins/scroll.css +2 -0
  24. data/assets/plugins/scroll.html +2 -0
  25. data/assets/plugins/scroll.js +14 -0
  26. data/assets/plugins/value.css +18 -0
  27. data/assets/plugins/value.html +4 -0
  28. data/assets/plugins/value.js +26 -0
  29. data/examples/simple_heroku_dashboard.rb +34 -0
  30. data/lib/dasht.rb +25 -0
  31. data/lib/dasht/array_monkeypatching.rb +5 -0
  32. data/lib/dasht/base.rb +117 -0
  33. data/lib/dasht/board.rb +108 -0
  34. data/lib/dasht/collector.rb +33 -0
  35. data/lib/dasht/list.rb +93 -0
  36. data/lib/dasht/log_thread.rb +94 -0
  37. data/lib/dasht/metric.rb +82 -0
  38. data/lib/dasht/rack_app.rb +74 -0
  39. data/lib/dasht/reloader.rb +28 -0
  40. data/screenshot_1.png +0 -0
  41. data/test/helper.rb +34 -0
  42. data/test/test_list.rb +65 -0
  43. data/test/test_metric.rb +58 -0
  44. data/tests.rb +6 -0
  45. data/views/dashboard.erb +27 -0
  46. metadata +189 -0
@@ -0,0 +1,65 @@
1
+ require 'helper'
2
+
3
+ class TestList < Test::Unit::TestCase
4
+ def test_construction
5
+ list = Dasht::List.new
6
+ ptr1 = list.append(1)
7
+ ptr2 = list.append(2)
8
+ ptr3 = list.append(3)
9
+ assert_equal 6, list.enum(ptr1).to_a.inject(:+)
10
+ end
11
+
12
+ def test_trim_to
13
+ list = Dasht::List.new
14
+ ptr1 = list.append(1)
15
+ ptr2 = list.append(2)
16
+ ptr3 = list.append(3)
17
+
18
+ list.trim_to(ptr1)
19
+ assert_equal 6, list.enum(ptr1).to_a.inject(:+)
20
+
21
+ list.trim_to(ptr2)
22
+ assert_equal 5, list.enum(ptr1).to_a.inject(:+)
23
+
24
+ list.trim_to(ptr3)
25
+ assert_equal 3, list.enum(ptr1).to_a.inject(:+)
26
+
27
+ ptr4 = list.append(4)
28
+ assert_equal 7, list.enum(ptr1).to_a.inject(:+)
29
+
30
+ list.trim_to(ptr4)
31
+ assert_equal 4, list.enum(ptr1).to_a.inject(:+)
32
+
33
+ list.trim_to(list.tail_pointer)
34
+ assert_equal nil, list.enum(ptr1).to_a.inject(:+)
35
+ end
36
+
37
+ def test_trim_while
38
+ list = Dasht::List.new
39
+ ptr1 = list.append(1)
40
+ ptr2 = list.append(2)
41
+ ptr3 = list.append(3)
42
+ list.trim_while do |data|
43
+ data < 2
44
+ end
45
+ assert_equal 5, list.enum(ptr1).to_a.inject(:+)
46
+
47
+ list.trim_while do |data|
48
+ data < 3
49
+ end
50
+ assert_equal 3, list.enum(ptr1).to_a.inject(:+)
51
+
52
+ ptr4 = list.append(4)
53
+ assert_equal 7, list.enum(ptr1).to_a.inject(:+)
54
+
55
+ list.trim_while do |data|
56
+ data < 4
57
+ end
58
+ assert_equal 4, list.enum(ptr1).to_a.inject(:+)
59
+
60
+ list.trim_while do |data|
61
+ data < 5
62
+ end
63
+ assert_equal nil, list.enum(ptr1).to_a.inject(:+)
64
+ end
65
+ end
@@ -0,0 +1,58 @@
1
+ require 'helper'
2
+
3
+ class TestMetric < Test::Unit::TestCase
4
+ def test_counting
5
+ m = Dasht::Metric.new
6
+ proc = Proc.new do |old_value, new_value|
7
+ (old_value || 0) + new_value
8
+ end
9
+ m.append(4, 1, &proc)
10
+ m.append(5, 1, &proc)
11
+ m.append(6, 2, &proc)
12
+ m.append(7, 2, &proc)
13
+
14
+ assert_equal 22, m.enum(1).inject(:+)
15
+ assert_equal 13, m.enum(2).inject(:+)
16
+ assert_equal 9, m.enum(1,2).inject(:+)
17
+ end
18
+
19
+ def test_lists
20
+ m = Dasht::Metric.new
21
+ proc = Proc.new do |old_value, new_value|
22
+ (old_value || []).push(new_value)
23
+ end
24
+ m.append(:a, 1, &proc)
25
+ m.append(:b, 1, &proc)
26
+ m.append(:c, 2, &proc)
27
+ m.append(:d, 2, &proc)
28
+
29
+ assert_equal [:a, :b, :c, :d], m.enum(1).to_a.flatten
30
+ assert_equal [:c, :d], m.enum(2).to_a.flatten
31
+ assert_equal [:a, :b], m.enum(1, 2).to_a.flatten
32
+ end
33
+
34
+ def test_trim_to
35
+ m = Dasht::Metric.new
36
+ proc = Proc.new do |old_value, new_value|
37
+ (old_value || []).push(new_value)
38
+ end
39
+ m.append(:a, 1, &proc)
40
+ m.append(:b, 1, &proc)
41
+ m.append(:c, 2, &proc)
42
+ m.append(:d, 2, &proc)
43
+
44
+ m.trim_to(1)
45
+ assert_equal [:a, :b, :c, :d], m.enum(0).to_a.flatten
46
+
47
+ m.trim_to(2)
48
+ assert_equal [:c, :d], m.enum(0).to_a.flatten
49
+
50
+ m.append(:e, 3, &proc)
51
+ m.append(:f, 3, &proc)
52
+ assert_equal [:c, :d, :e, :f], m.enum(0).to_a.flatten
53
+
54
+
55
+ m.trim_to(3)
56
+ assert_equal [:e, :f], m.enum(0).to_a.flatten
57
+ end
58
+ end
@@ -0,0 +1,6 @@
1
+ $LOAD_PATH.unshift("./lib")
2
+ $LOAD_PATH.unshift("./test")
3
+
4
+ require 'test/unit'
5
+ require 'list_test'
6
+ require 'metric_test'
@@ -0,0 +1,27 @@
1
+ <!DOCTYPE html>
2
+ <html lang='en' class=''>
3
+ <head>
4
+ <meta charset='utf-8'>
5
+ <link rel='stylesheet' type='text/css' href='/assets/css/style.css'>
6
+ <meta name="viewport" content="width=device-width, initial-scale=1">
7
+ <%= emit_plugin_css %>
8
+ </head>
9
+ <body>
10
+ <div id='container'></div>
11
+ <%= emit_plugin_html %>
12
+ <script src='/assets/js/jquery-1.11.3.min.js'></script>
13
+ <script src='/assets/js/underscore-min.js'></script>
14
+ <script src='/assets/js/mustache.min.js'></script>
15
+ <script src='/assets/js/masonry.pkgd.min.js'></script>
16
+ <script src='/assets/js/Chart.min.js'></script>
17
+ <script src='/assets/js/dasht.js'></script>
18
+ <script src='//maps.googleapis.com/maps/api/js'>
19
+ </script>
20
+ <%= emit_board_js %>
21
+ <%= emit_plugin_js %>
22
+ <%= emit_tile_js %>
23
+ <script>
24
+ window.onload = Dasht.init;
25
+ </script>
26
+ </body>
27
+ </html>
metadata ADDED
@@ -0,0 +1,189 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: dasht
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Rusty Klophaus
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-08-05 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rack
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.6'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.6'
27
+ - !ruby/object:Gem::Dependency
28
+ name: shoulda
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rdoc
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '3.12'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '3.12'
55
+ - !ruby/object:Gem::Dependency
56
+ name: bundler
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '1.0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '1.0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: jeweler
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: 2.0.1
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: 2.0.1
83
+ - !ruby/object:Gem::Dependency
84
+ name: simplecov
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: test-unit
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '3'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '3'
111
+ description: Dasht is a framework for building beautiful, developer-focused application
112
+ dashboards. Dasht is especially good at displaying high-level application stats
113
+ in real-time on a wall-mounted monitor.
114
+ email: rklophaus@gmail.com
115
+ executables: []
116
+ extensions: []
117
+ extra_rdoc_files:
118
+ - LICENSE.txt
119
+ - README.md
120
+ files:
121
+ - ".agignore"
122
+ - Gemfile
123
+ - Gemfile.lock
124
+ - LICENSE.txt
125
+ - README.md
126
+ - Rakefile
127
+ - VERSION
128
+ - assets/css/style.css
129
+ - assets/images/background.jpg
130
+ - assets/js/Chart.min.js
131
+ - assets/js/dasht.js
132
+ - assets/js/jquery-1.11.3.min.js
133
+ - assets/js/masonry.pkgd.min.js
134
+ - assets/js/mustache.min.js
135
+ - assets/js/underscore-min.js
136
+ - assets/plugins/chart.css
137
+ - assets/plugins/chart.html
138
+ - assets/plugins/chart.js
139
+ - assets/plugins/map.css
140
+ - assets/plugins/map.html
141
+ - assets/plugins/map.js
142
+ - assets/plugins/scroll.css
143
+ - assets/plugins/scroll.html
144
+ - assets/plugins/scroll.js
145
+ - assets/plugins/value.css
146
+ - assets/plugins/value.html
147
+ - assets/plugins/value.js
148
+ - examples/simple_heroku_dashboard.rb
149
+ - lib/dasht.rb
150
+ - lib/dasht/array_monkeypatching.rb
151
+ - lib/dasht/base.rb
152
+ - lib/dasht/board.rb
153
+ - lib/dasht/collector.rb
154
+ - lib/dasht/list.rb
155
+ - lib/dasht/log_thread.rb
156
+ - lib/dasht/metric.rb
157
+ - lib/dasht/rack_app.rb
158
+ - lib/dasht/reloader.rb
159
+ - screenshot_1.png
160
+ - test/helper.rb
161
+ - test/test_list.rb
162
+ - test/test_metric.rb
163
+ - tests.rb
164
+ - views/dashboard.erb
165
+ homepage: http://github.com/rustyio/dasht
166
+ licenses:
167
+ - MIT
168
+ metadata: {}
169
+ post_install_message:
170
+ rdoc_options: []
171
+ require_paths:
172
+ - lib
173
+ required_ruby_version: !ruby/object:Gem::Requirement
174
+ requirements:
175
+ - - ">="
176
+ - !ruby/object:Gem::Version
177
+ version: '0'
178
+ required_rubygems_version: !ruby/object:Gem::Requirement
179
+ requirements:
180
+ - - ">="
181
+ - !ruby/object:Gem::Version
182
+ version: '0'
183
+ requirements: []
184
+ rubyforge_project:
185
+ rubygems_version: 2.4.8
186
+ signing_key:
187
+ specification_version: 4
188
+ summary: Simple, beautiful, full-screen dashboards.
189
+ test_files: []