dasht 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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: []