acts_as_dashboard 0.4.0 → 0.4.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -24,13 +24,15 @@ acts_as_dashboard makes it easy to create dashboards in Rails apps.
24
24
 
25
25
  == To Do
26
26
 
27
- * Make LineGraphWidget#line_colours accept a string or array.
28
27
  * Decide if routes should added to config/routes.rb , or loaded by acts_as_dashboard using ActionController::Routing::Routes#add_route . If the latter figure out how to make it work.
29
28
  * Make the "show" view template sexy.
30
29
  * Add more widget types.
31
30
  * If getting a new value for a widget fails, keep the last value, and mark the widget as failing.
32
31
  * Set a default value for the Widget class' "update_interval" attribute.
33
32
  * Generate the value for the Widget class' "name" attribute automatically so that the user needn't specify it.
33
+ * Figure out how to get the call to includeJavaScriptFile() in LineGraphWidget to use the correct sub-directory (dashboard.js:285).
34
+ * Fix the failing specs.
35
+ * Fix the JavaScript problems in IE. Bloody IE...
34
36
 
35
37
 
36
38
  == Bugs
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.4.0
1
+ 0.4.1
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{acts_as_dashboard}
8
- s.version = "0.4.0"
8
+ s.version = "0.4.1"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Nick Hoffman"]
12
- s.date = %q{2010-08-05}
12
+ s.date = %q{2010-08-08}
13
13
  s.description = %q{acts_as_dashboard makes it easy to create dashboards in Rails apps. Very little configuration is required. Read the docs to get started.}
14
14
  s.email = %q{nick@deadorange.com}
15
15
  s.extra_rdoc_files = [
@@ -87,9 +87,11 @@ class DashboardGenerator < Rails::Generator::Base
87
87
  logger.route @widgets_route
88
88
 
89
89
  return if options[:pretend]
90
+
91
+ sentinel = Regexp.escape 'ActionController::Routing::Routes.draw do |map|'
90
92
 
91
- gsub_file 'config/routes.rb', /^end$/mi do |match|
92
- "\n #{@singleton_resource}\n #{@widgets_route}\n#{match}"
93
+ gsub_file 'config/routes.rb', /(#{sentinel})/mi do |match|
94
+ "#{match}\n #{@singleton_resource}\n #{@widgets_route}\n"
93
95
  end
94
96
  end # }}}
95
97
 
@@ -22,7 +22,7 @@ class <%= controller_name -%> < ApplicationController
22
22
  d.name = :random_dates_and_numbers
23
23
  d.title = 'Random Dates and Numbers'
24
24
  d.update_interval = '15s'
25
- d.line_colours = %w(blue)
25
+ d.line_colours = 'blue'
26
26
  d.x_axis = :dates
27
27
  d.data do
28
28
  (0..10).map do
@@ -1,70 +1,70 @@
1
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
-
3
- <html>
4
-
5
- <head>
6
- <style type="text/css">
7
- <%# @dashboard_css %>
8
- </style>
9
-
10
- <%= javascript_include_tag 'http://code.jquery.com/jquery-1.4.2.min.js' %>
11
- <%= javascript_include_tag 'jquery-ui/js/jquery-ui-1.8.2.custom.min.js' %>
12
- <%= javascript_include_tag 'http://plugins.jquery.com/files/jquery.timers-1.2.js.txt' %>
13
- <%= javascript_include_tag 'js.class-2.1.4/min/core.js' %>
14
- <%= javascript_include_tag 'jqplot-0.9.7/jquery.jqplot.min.js' %>
15
- <%= javascript_include_tag 'dashboard' %>
16
-
17
- <%= stylesheet_link_tag 'jquery-ui/css/ui-darkness/jquery-ui-1.8.2.custom.css' %>
18
- <%= stylesheet_link_tag 'dashboard' %>
19
- <%= stylesheet_link_tag 'jquery.jqplot.min.css' %>
20
-
21
- <script type='text/javascript'>
22
- jQuery(document).ready(function() {
23
- dashboard = new Dashboard({basePath: '<%= @dashboard_path -%>'});
24
- json_widgets = '<%= @json_widgets -%>';
25
-
26
- buildTheDashboard();
27
- });
28
- </script>
29
-
30
- <script type='text/javascript'>
31
- <%# @dashboard_js %>
32
- </script>
33
- </head>
34
-
35
- <body>
36
- <div id='dashboard'>
37
- <div class='dashboard-numbers'>
38
- <div class='ui-widget widget-template' style='display: none;'>
39
- <div class="ui-widget-header ui-corner-tl ui-corner-tr widget-title"></div>
40
- <div class="ui-widget-content ui-corner-bl ui-corner-br"><div class="widget-data"></div></div>
41
- </div>
42
- </div>
43
-
44
- <div class='dashboard-clear'></div>
45
-
46
- <div class='dashboard-short-messages'>
47
- <div class='ui-widget widget-template' style='display: none;'>
48
- <div class="ui-widget-header ui-corner-all widget-title"></div>
49
- <div class="widget-data">
50
- <ul>
51
- <li class='ui-widget-content ui-corner-all widget-data widget-data-template' style='display: none;'></li>
52
- </ul>
53
- </div>
54
- </div>
55
- </div>
56
-
57
- <div class='dashboard-clear'></div>
58
-
59
- <div class='dashboard-line-graphs'>
60
- <div class='ui-widget widget-template' style='display: none;'>
61
- <div class='ui-widget-header ui-corner-tl ui-corner-tr widget-title'></div>
62
- <div class='ui-widget-content ui-corner-bl ui-corner-br widget-data'></div>
63
- </div>
64
- </div>
65
-
66
- <div class='dashboard-clear'></div>
67
- </div>
68
- </body>
69
-
70
- </html>
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
+
3
+ <html>
4
+
5
+ <head>
6
+ <style type="text/css">
7
+ <%# @dashboard_css %>
8
+ </style>
9
+
10
+ <%= javascript_include_tag 'http://code.jquery.com/jquery-1.4.2.min.js' %>
11
+ <%= javascript_include_tag 'jquery-ui/js/jquery-ui-1.8.2.custom.min.js' %>
12
+ <%= javascript_include_tag 'http://plugins.jquery.com/files/jquery.timers-1.2.js.txt' %>
13
+ <%= javascript_include_tag 'js.class-2.1.4/min/core.js' %>
14
+ <%= javascript_include_tag 'jqplot-0.9.7/jquery.jqplot.min.js' %>
15
+ <%= javascript_include_tag 'dashboard' %>
16
+
17
+ <%= stylesheet_link_tag 'jquery-ui/css/ui-darkness/jquery-ui-1.8.2.custom.css' %>
18
+ <%= stylesheet_link_tag 'dashboard' %>
19
+ <%= stylesheet_link_tag 'jquery.jqplot.min.css' %>
20
+
21
+ <script type='text/javascript'>
22
+ jQuery(document).ready(function() {
23
+ dashboard = new Dashboard({basePath: '<%= @dashboard_path -%>'});
24
+ json_widgets = '<%= @json_widgets -%>';
25
+
26
+ buildTheDashboard();
27
+ });
28
+ </script>
29
+
30
+ <script type='text/javascript'>
31
+ <%# @dashboard_js %>
32
+ </script>
33
+ </head>
34
+
35
+ <body>
36
+ <div id='dashboard'>
37
+ <div class='dashboard-numbers'>
38
+ <div class='ui-widget widget-template' style='display: none;'>
39
+ <div class="ui-widget-header ui-corner-tl ui-corner-tr widget-title"></div>
40
+ <div class="ui-widget-content ui-corner-bl ui-corner-br"><div class="widget-data"></div></div>
41
+ </div>
42
+ </div>
43
+
44
+ <div class='dashboard-clear'></div>
45
+
46
+ <div class='dashboard-short-messages'>
47
+ <div class='ui-widget widget-template' style='display: none;'>
48
+ <div class="ui-widget-header ui-corner-all widget-title"></div>
49
+ <div class="widget-data">
50
+ <ul>
51
+ <li class='ui-widget-content ui-corner-all widget-data widget-data-template' style='display: none;'></li>
52
+ </ul>
53
+ </div>
54
+ </div>
55
+ </div>
56
+
57
+ <div class='dashboard-clear'></div>
58
+
59
+ <div class='dashboard-line-graphs'>
60
+ <div class='ui-widget widget-template' style='display: none;'>
61
+ <div class='ui-widget-header ui-corner-tl ui-corner-tr widget-title'></div>
62
+ <div class='ui-widget-content ui-corner-bl ui-corner-br widget-data'></div>
63
+ </div>
64
+ </div>
65
+
66
+ <div class='dashboard-clear'></div>
67
+ </div>
68
+ </body>
69
+
70
+ </html>
@@ -37,6 +37,12 @@ module ActsAsDashboard
37
37
  @width = width
38
38
  end
39
39
 
40
+ def line_colour=(line_colour)
41
+ raise ArgumentError, 'The "line_colour" argument must be a String.' unless line_colour.is_a? String
42
+
43
+ self.line_colours = [line_colour]
44
+ end
45
+
40
46
  def line_colours=(line_colours)
41
47
  raise ArgumentError, 'The "line_colours" argument must be an Array of Strings.' unless line_colours.is_a? Array
42
48
  line_colours.each {|c| raise ArgumentError, 'The "line_colours" argument must be an Array of Strings.' unless c.is_a? String}
@@ -98,6 +98,22 @@ describe ActsAsDashboard::LineGraphWidget do
98
98
  end
99
99
  end # }}}
100
100
 
101
+ describe 'settings its "line_colours" attribute via #line_colour' do # {{{
102
+ it 'raises an error when not given a String' do
103
+ Proc.new {ActsAsDashboard::LineGraphWidget.new.line_colour = [1]}.should raise_error ArgumentError,
104
+ 'The "line_colour" argument must be a String.'
105
+ end
106
+
107
+ it 'passes the String in an Array to #line_colours=' do
108
+ line_colour = 'green'
109
+ w = ActsAsDashboard::LineGraphWidget.new
110
+
111
+ w.should_receive(:'line_colours=').with [line_colour]
112
+
113
+ w.line_colour = line_colour
114
+ end
115
+ end # }}}
116
+
101
117
  describe 'setting its "line_colours" attribute' do # {{{
102
118
  it 'raises an error when not given an Array' do
103
119
  Proc.new {ActsAsDashboard::LineGraphWidget.new.line_colours = 'fail'}.should raise_error ArgumentError,
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: acts_as_dashboard
3
3
  version: !ruby/object:Gem::Version
4
- hash: 15
4
+ hash: 13
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 4
9
- - 0
10
- version: 0.4.0
9
+ - 1
10
+ version: 0.4.1
11
11
  platform: ruby
12
12
  authors:
13
13
  - Nick Hoffman
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-08-05 00:00:00 -04:00
18
+ date: 2010-08-08 00:00:00 -04:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency