acts_as_monitor 0.0.2 → 0.0.9
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.
- data/CHANGELOG.md +6 -3
- data/README.md +22 -0
- data/app/controllers/acts_as_monitor/monitors_controller.rb +18 -0
- data/app/helpers/acts_as_monitor_helper.rb +25 -0
- data/app/views/acts_as_monitor/monitors/show.html.erb +26 -0
- data/config/routes.rb +3 -1
- data/lib/acts_as_monitor/engine.rb +21 -8
- data/lib/acts_as_monitor/monitor.rb +1 -1
- data/lib/acts_as_monitor/version.rb +1 -1
- data/lib/acts_as_monitor.rb +10 -10
- data/lib/generators/acts_as_monitor/install/install_generator.rb +33 -25
- data/lib/generators/acts_as_monitor/install/templates/acts_as_monitor.css +48 -0
- data/lib/generators/acts_as_monitor/install/templates/acts_as_monitor.it.yml +8 -1
- data/lib/generators/acts_as_monitor/install/templates/acts_as_monitor_javascript.js +78 -0
- data/lib/generators/acts_as_monitor/install/templates/acts_as_monitor_loading.gif +0 -0
- data/test/acts_as_monitor_helper_test.rb +16 -0
- data/test/{units/acts_as_monitor_test.rb → acts_as_monitor_test.rb} +3 -20
- data/test/dummy/Rakefile +7 -0
- data/test/dummy/app/controllers/application_controller.rb +3 -0
- data/test/dummy/app/controllers/homes_controller.rb +4 -0
- data/test/dummy/app/helpers/application_helper.rb +2 -0
- data/test/dummy/app/helpers/homes_helper.rb +2 -0
- data/test/dummy/app/models/test_class.rb +33 -0
- data/test/dummy/app/models/test_class_no_monitor.rb +2 -0
- data/test/dummy/app/views/homes/index.html.erb +8 -0
- data/test/dummy/app/views/layouts/application.html.erb +14 -0
- data/test/dummy/config/application.rb +45 -0
- data/test/dummy/config/boot.rb +10 -0
- data/test/dummy/config/database.yml +22 -0
- data/test/dummy/config/environment.rb +5 -0
- data/test/dummy/config/environments/development.rb +26 -0
- data/test/dummy/config/environments/production.rb +49 -0
- data/test/dummy/config/environments/test.rb +35 -0
- data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/test/dummy/config/initializers/inflections.rb +10 -0
- data/test/dummy/config/initializers/mime_types.rb +5 -0
- data/test/dummy/config/initializers/secret_token.rb +7 -0
- data/test/dummy/config/initializers/session_store.rb +8 -0
- data/test/dummy/config/locales/acts_as_monitor.it.yml +14 -0
- data/test/dummy/config/locales/en.yml +5 -0
- data/test/dummy/config/routes.rb +58 -0
- data/test/dummy/config.ru +4 -0
- data/test/{acts_as_monitor.sqlite3.db → dummy/db/development.sqlite3} +0 -0
- data/test/dummy/db/migrate/20120523110000_add_test_tables.rb +12 -0
- data/test/dummy/db/schema.rb +19 -0
- data/test/dummy/db/test.sqlite3 +0 -0
- data/test/dummy/log/development.log +4537 -0
- data/test/dummy/log/production.log +0 -0
- data/test/dummy/log/server.log +0 -0
- data/test/dummy/log/test.log +188 -0
- data/test/dummy/public/404.html +26 -0
- data/test/dummy/public/422.html +26 -0
- data/test/dummy/public/500.html +26 -0
- data/test/dummy/public/favicon.ico +0 -0
- data/test/dummy/public/images/acts_as_monitor_green.png +0 -0
- data/test/dummy/public/images/acts_as_monitor_red.png +0 -0
- data/test/dummy/public/images/acts_as_monitor_yellow.png +0 -0
- data/test/dummy/public/javascripts/acts_as_monitor_javascript.js +66 -0
- data/test/dummy/public/javascripts/application.js +2 -0
- data/test/dummy/public/javascripts/builder.js +136 -0
- data/test/dummy/public/javascripts/controls.js +965 -0
- data/test/dummy/public/javascripts/dragdrop.js +974 -0
- data/test/dummy/public/javascripts/effects.js +1123 -0
- data/test/dummy/public/javascripts/prototype.js +6001 -0
- data/test/dummy/public/javascripts/rails.js +191 -0
- data/test/dummy/public/javascripts/scriptaculous.js +68 -0
- data/test/dummy/public/javascripts/slider.js +275 -0
- data/test/dummy/public/javascripts/sound.js +59 -0
- data/test/dummy/public/javascripts/unittest.js +568 -0
- data/test/dummy/public/stylesheets/.gitkeep +0 -0
- data/test/dummy/public/stylesheets/acts_as_monitor.css +30 -0
- data/test/dummy/script/rails +6 -0
- data/test/integration/navigation_test.rb +7 -0
- data/test/support/integration_case.rb +5 -0
- data/test/test_helper.rb +17 -42
- metadata +128 -11
- data/app/controllers/acts_as_monitor/monitor_controller.rb +0 -7
- data/app/helpers/monitor_helper.rb +0 -11
- data/app/views/acts_as_monitor/indext.html.erb +0 -1
data/CHANGELOG.md
CHANGED
@@ -1,8 +1,11 @@
|
|
1
1
|
0.1.0 ToDo
|
2
|
+
- BugFixing
|
3
|
+
|
4
|
+
0.0.9 (May 28, 2012)
|
2
5
|
- Ajax to have warning and error list clicking on icon
|
3
6
|
|
4
|
-
0.0.2 (May 23,
|
5
|
-
-
|
7
|
+
0.0.2 (May 23, 2012)
|
8
|
+
- first working copy
|
6
9
|
|
7
|
-
0.0.1 (May 23,
|
10
|
+
0.0.1 (May 23, 2012)
|
8
11
|
- First deploy not working
|
data/README.md
CHANGED
@@ -57,8 +57,30 @@ You can now check the status of your model using the following code:
|
|
57
57
|
|
58
58
|
You can use the monitor_tag helper to view a red/green/yellow rapresentation:
|
59
59
|
#app/views/users/index.html.erb
|
60
|
+
<%= monitor_tag_js %> #Creates hidden div and load css and javascript
|
60
61
|
...
|
61
62
|
<%= monitor_tag(@user) %>
|
63
|
+
|
64
|
+
Clicking to Icon you receive via Ajax the full error/warning list
|
65
|
+
|
66
|
+
## Internationalization
|
67
|
+
You can localize the output modifing the acts_as_monitor.it.yml, or cloning for the language you prefear.
|
68
|
+
Name of models is retrived via human_name, so yuo have to localize the ActiveRecord to change names:
|
69
|
+
it:
|
70
|
+
activerecord:
|
71
|
+
models:
|
72
|
+
your_model_name: Your Model Name
|
73
|
+
|
74
|
+
namespace:
|
75
|
+
namespaced_model_name: Your Namespaced Model Name
|
76
|
+
|
77
|
+
## Personalization
|
78
|
+
Feel free to modify the fololwing files to change layouts and text :
|
79
|
+
- public/stylesheets/acts_as_monitor.css
|
80
|
+
- config/locales/act_as_monitor.it.yml
|
81
|
+
|
82
|
+
If you need a deeper personalization you can try to overload app/views/acts_as_monitor/monitors/show.html.erb
|
83
|
+
conaining the page template for the error/warning list
|
62
84
|
|
63
85
|
## Contributing
|
64
86
|
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module ActsAsMonitor
|
2
|
+
class MonitorsController < ::ApplicationController
|
3
|
+
|
4
|
+
def show
|
5
|
+
@monitor = eval(params[:class_name]).find(params[:id]) if monitor_valid?(params)
|
6
|
+
Rails::logger.info("MonitorsController @monitor=#{@monitor.inspect}")
|
7
|
+
respond_to do |format|
|
8
|
+
format.js do
|
9
|
+
view = render_to_string "show"
|
10
|
+
#render :json => {"text" => @status.status}
|
11
|
+
render :json => {"text" => view}
|
12
|
+
end
|
13
|
+
format.html
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
module ActsAsMonitorHelper
|
2
|
+
def monitor_tag(object)
|
3
|
+
raise ActsAsMonitor::MissingMethod unless object.respond_to?(:status_flag)
|
4
|
+
status = object.status_flag
|
5
|
+
icon = I18n.t(status, :scope => "acts_as_monitor.icons",
|
6
|
+
:default => "acts_as_monitor_#{status.to_s}.png")
|
7
|
+
image_tag icon, :alt => I18n.t("alt_image_#{status.to_s}", :scope => "acts_as_monitor.icons",
|
8
|
+
:default => status.to_s.capitalize),
|
9
|
+
:class => "acts_as_monitor_icon_#{status.to_s}",
|
10
|
+
'data-class' => object.class.name, 'data-id' => object.id
|
11
|
+
end
|
12
|
+
|
13
|
+
def monitor_tag_js()
|
14
|
+
content_tag(:div, "/#{Rails.root.to_s.split('/').last}", :id => 'acts_as_monitor_status_window') +
|
15
|
+
javascript_include_tag("acts_as_monitor_javascript.js") +
|
16
|
+
stylesheet_link_tag('acts_as_monitor.css')
|
17
|
+
end
|
18
|
+
|
19
|
+
def monitor_valid?(params)
|
20
|
+
return false if params[:id].blank? || params[:class_name].blank?
|
21
|
+
Rails::logger.info eval(params[:class_name]).instance_methods.include?("status")
|
22
|
+
return false unless eval(params[:class_name]).instance_methods.include?("status")
|
23
|
+
true
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
<% if @monitor %>
|
2
|
+
<fieldset class='acts_as_monitor_status_window'>
|
3
|
+
<legend class='acts_as_monitor_status_window'><%= @monitor.class.human_name %></legend>
|
4
|
+
<% @status = @monitor.status %>
|
5
|
+
<% @li_scope = "acts_as_monitor.messages.#{@monitor.class.name.underscore.gsub('/','_')}"%>
|
6
|
+
<% unless @status[:error].blank? %>
|
7
|
+
<h3 class="acts_as_monitor_errors_title"><%=I18n.t(:errors, :scope => "acts_as_monitor.messages") %></h3>
|
8
|
+
<ul class="acts_as_monitor_list_errors">
|
9
|
+
<%@status[:error].each do |error| %>
|
10
|
+
<li class= "acts_as_monitor_list_errors"><%=I18n.t(error, :scope=> @li_scope, :default => error.to_s) %></li>
|
11
|
+
<% end %>
|
12
|
+
</ul>
|
13
|
+
<% end %>
|
14
|
+
<% unless @status[:warn].blank? %>
|
15
|
+
<h3 class="acts_as_monitor_warnings_title"><%=I18n.t(:warnings, :scope => "acts_as_monitor.messages") %></h3>
|
16
|
+
<ul class="acts_as_monitor_list_warnings">
|
17
|
+
<%@status[:warn].each do |warn| %>
|
18
|
+
<li class="acts_as_monitor_list_warnings"><%=I18n.t(warn, :scope=> @li_scope, :default => warn.to_s) %></li>
|
19
|
+
<% end %>
|
20
|
+
</ul>
|
21
|
+
<% end %>
|
22
|
+
<% else %>
|
23
|
+
<p><%= I18n.t(:missing_method, :scope=> "acts_as_monitor.errors", :default => "Add acts_as_monitor to monitored Class") %></p>
|
24
|
+
<% end %>
|
25
|
+
|
26
|
+
|
data/config/routes.rb
CHANGED
@@ -1,15 +1,28 @@
|
|
1
1
|
module ActsAsMonitor
|
2
2
|
class Engine < Rails::Engine
|
3
|
-
initialize "
|
4
|
-
|
5
|
-
config.app_root = app.root
|
3
|
+
# initialize "acts_as_monitor.load_app_instance_data" do |app|
|
4
|
+
# ActsAsMonitor.setup do |config|
|
5
|
+
# config.app_root = app.root
|
6
|
+
# end
|
7
|
+
# end
|
8
|
+
#
|
9
|
+
# initialize "acts_as_monitor.load_static_assets" do |app|
|
10
|
+
# app.middleware.use ::ActionDispatch::Static, "#{root}/public"
|
11
|
+
# end
|
12
|
+
#
|
13
|
+
#Includes models, controllers, helpers, config/routes.rb, config/locales/*, tasks in lib/tasks/*
|
14
|
+
engine_name :acts_as_monitor
|
15
|
+
|
16
|
+
initializer 'acts_as_monitor.helper' do |app|
|
17
|
+
#ActionView::Base.send :include, ActsAsMonitorHelper
|
18
|
+
ActiveSupport.on_load(:action_controller) do
|
19
|
+
include ActsAsMonitorHelper
|
6
20
|
end
|
21
|
+
ActiveSupport.on_load(:action_view) do
|
22
|
+
include ActsAsMonitorHelper
|
23
|
+
end
|
24
|
+
|
7
25
|
end
|
8
|
-
|
9
|
-
initialize "team_page.load_static_assets" do |app|
|
10
|
-
app.middleware.use ::ActionDispatch::Static, "#{root}/public"
|
11
|
-
end
|
12
|
-
|
13
26
|
end
|
14
27
|
|
15
28
|
end
|
@@ -47,7 +47,7 @@ module ActsAsMonitor
|
|
47
47
|
out = {:warn => [], :error => []}
|
48
48
|
methods = self.private_methods.map{|m| m.match(search) }.compact
|
49
49
|
methods.each do |method|
|
50
|
-
out[method[1].to_sym] << method[0].to_sym if send(method[0])
|
50
|
+
out[method[1].to_sym] << method[0].gsub("?","").to_sym if send(method[0])
|
51
51
|
end
|
52
52
|
out
|
53
53
|
end
|
data/lib/acts_as_monitor.rb
CHANGED
@@ -1,15 +1,15 @@
|
|
1
|
-
require "
|
2
|
-
require "acts_as_monitor/monitor"
|
3
|
-
require File.dirname(__FILE__) + '/../app/helpers/monitor_helper'
|
1
|
+
require "active_support/dependencies"
|
4
2
|
|
5
3
|
module ActsAsMonitor
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
4
|
+
mattr_accessor :app_root
|
5
|
+
|
6
|
+
def self.setup
|
7
|
+
yield self
|
10
8
|
end
|
11
|
-
|
12
|
-
#Include my Helper to ActionView (as they where in application_helper)
|
13
|
-
ActionView::Base.send :include, ActsAsMonitor::Helper
|
14
9
|
|
15
10
|
end
|
11
|
+
|
12
|
+
require "acts_as_monitor/engine"
|
13
|
+
#require "acts_as_monitor/version"
|
14
|
+
require "acts_as_monitor/monitor"
|
15
|
+
require "acts_as_monitor/exceptions"
|
@@ -1,31 +1,39 @@
|
|
1
1
|
require 'rails/generators'
|
2
2
|
module ActsAsMonitor
|
3
|
-
|
4
|
-
|
5
|
-
|
3
|
+
class InstallGenerator < Rails::Generators::Base
|
4
|
+
desc "Install generator for ActsAsMonitor gem"
|
5
|
+
source_root File.expand_path("../templates", __FILE__)
|
6
6
|
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
end
|
13
|
-
end
|
14
|
-
|
15
|
-
def copy_locales
|
16
|
-
file = "acts_as_monitor.it.yml"
|
17
|
-
destination = "config/locales/" + file
|
18
|
-
copy_file file, destination
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
def print_usage
|
23
|
-
usage = <<-START
|
24
|
-
Add acts_as_monitor to model to monitor
|
25
|
-
Add a private method warn_*? and error_*? to define warning and error status
|
26
|
-
Use monitor_tag(model_instance) in your view
|
27
|
-
START
|
28
|
-
puts(usage)
|
7
|
+
def copy_icons
|
8
|
+
icons = ["acts_as_monitor_green.png", "acts_as_monitor_red.png", "acts_as_monitor_yellow.png", "acts_as_monitor_loading.gif"]
|
9
|
+
icons.each do |icon|
|
10
|
+
destination = "public/images/" + icon
|
11
|
+
copy_file icon, destination
|
29
12
|
end
|
13
|
+
end
|
30
14
|
|
15
|
+
def copy_locales
|
16
|
+
file = "acts_as_monitor.it.yml"
|
17
|
+
destination = "config/locales/" + file
|
18
|
+
copy_file file, destination
|
19
|
+
end
|
20
|
+
|
21
|
+
def copy_javascripts
|
22
|
+
copy_file "acts_as_monitor_javascript.js", "public/javascripts/acts_as_monitor_javascript.js"
|
23
|
+
end
|
24
|
+
|
25
|
+
def copy_stylesheet
|
26
|
+
copy_file "acts_as_monitor.css", "public/stylesheets/acts_as_monitor.css"
|
27
|
+
end
|
28
|
+
|
29
|
+
|
30
|
+
def print_usage
|
31
|
+
usage = <<-START
|
32
|
+
Add acts_as_monitor to model to monitor
|
33
|
+
Add a private method warn_*? and error_*? to define warning and error status
|
34
|
+
Use monitor_tag(model_instance) in your view
|
35
|
+
START
|
36
|
+
puts(usage)
|
37
|
+
end
|
38
|
+
end
|
31
39
|
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
.acts_as_monitor_status_window{
|
2
|
+
background-color: #F2F2F2;
|
3
|
+
border: solid black 1px;
|
4
|
+
opacity: 0.9;
|
5
|
+
width: 150px;
|
6
|
+
}
|
7
|
+
|
8
|
+
.acts_as_monitor_status_window legend{
|
9
|
+
opacity: 1.0;
|
10
|
+
background-color: #F2F2F2;
|
11
|
+
padding-left: 5px;
|
12
|
+
padding-right: 5px;
|
13
|
+
margin-left: 5px;
|
14
|
+
margin-right: 10px;
|
15
|
+
|
16
|
+
}
|
17
|
+
|
18
|
+
.acts_as_monitor_status_window h3.acts_as_monitor_errors_title{
|
19
|
+
font-weight: normal;
|
20
|
+
background-color: red;
|
21
|
+
text-align: center;
|
22
|
+
padding-left: 5px;
|
23
|
+
padding-right: 5px;
|
24
|
+
padding-top: 3px;
|
25
|
+
padding-bottom: 3px;
|
26
|
+
}
|
27
|
+
|
28
|
+
.acts_as_monitor_status_window h3.acts_as_monitor_warnings_title{
|
29
|
+
font-weight: normal;
|
30
|
+
background-color: #FACC2E;
|
31
|
+
text-align: center;
|
32
|
+
padding-left: 5px;
|
33
|
+
padding-right: 5px;
|
34
|
+
padding-top: 3px;
|
35
|
+
padding-bottom: 3px;
|
36
|
+
}
|
37
|
+
|
38
|
+
.acts_as_monitor_status_window ul{
|
39
|
+
margin-left: 10px;
|
40
|
+
}
|
41
|
+
|
42
|
+
li.acts_as_monitor_list_errors{
|
43
|
+
list-style-image: url('../images/acts_as_monitor_red.png');
|
44
|
+
}
|
45
|
+
|
46
|
+
li.acts_as_monitor_list_warnings{
|
47
|
+
list-style-image: url('../images/acts_as_monitor_yellow.png');
|
48
|
+
}
|
@@ -6,4 +6,11 @@ it:
|
|
6
6
|
green: acts_as_monitor_green.png
|
7
7
|
alt_image: "Clicca per visualizzare i dettagli"
|
8
8
|
errors:
|
9
|
-
missing_method: "Aggiungi acts_as_monitor alla classe da monitorare"
|
9
|
+
missing_method: "Aggiungi acts_as_monitor alla classe da monitorare"
|
10
|
+
messages:
|
11
|
+
errors: Errori
|
12
|
+
warnings: Avvisi
|
13
|
+
#test_clas: #class name (TestClass)
|
14
|
+
#warn_test: "Warning Test" #warning method name
|
15
|
+
#error_test: "Error Test" #error method name
|
16
|
+
#myspace_test_class: #class name (Myspace::TestClass)
|
@@ -0,0 +1,78 @@
|
|
1
|
+
document.observe('dom:loaded', function()
|
2
|
+
{
|
3
|
+
var application_root ='';
|
4
|
+
create_status_window();
|
5
|
+
//alert(application_root);
|
6
|
+
|
7
|
+
function create_status_window() {
|
8
|
+
/*new Insertion.Bottom(
|
9
|
+
document.body,
|
10
|
+
"<div id='acts_as_monitor_status_window'><%= Rails.root %></div>"
|
11
|
+
);*/
|
12
|
+
var status_window = $('acts_as_monitor_status_window');
|
13
|
+
Position.absolutize(status_window);
|
14
|
+
status_window.observe('click', function(ev) {status_window.fade(); });
|
15
|
+
status_window.hide();
|
16
|
+
//The helper provide the Rails.root inside the created div...
|
17
|
+
application_root = status_window.innerHTML;
|
18
|
+
}
|
19
|
+
|
20
|
+
var handle_monitor = function(ev)
|
21
|
+
{
|
22
|
+
var id = ev.target.getAttribute('data-id');
|
23
|
+
var image = ev.target.src;
|
24
|
+
new Ajax.Request(application_root + '/acts_as_monitor/monitors/'+ id +'.js',
|
25
|
+
{
|
26
|
+
method: 'get',
|
27
|
+
evalJSON: 'force',
|
28
|
+
parameters: {
|
29
|
+
class_name: ev.target.getAttribute('data-class')
|
30
|
+
},
|
31
|
+
onLoading: function(response){
|
32
|
+
ev.target.src = application_root + '/images/acts_as_monitor_loading.gif';
|
33
|
+
},
|
34
|
+
onSuccess: function(response){
|
35
|
+
var rsp = response.responseJSON;
|
36
|
+
ev.target.src = image;
|
37
|
+
create_popup(rsp.text,ev.target);
|
38
|
+
},
|
39
|
+
onFailure: function(response)
|
40
|
+
{
|
41
|
+
alert('Failure ' + response.status);
|
42
|
+
}
|
43
|
+
});
|
44
|
+
}
|
45
|
+
|
46
|
+
//Create popup with information
|
47
|
+
function create_popup(text,target)
|
48
|
+
{
|
49
|
+
//alert(text);
|
50
|
+
var status_window = $('acts_as_monitor_status_window');
|
51
|
+
status_window.update(text);
|
52
|
+
Position.clone(target,
|
53
|
+
status_window, {
|
54
|
+
offsetLeft: 20
|
55
|
+
});
|
56
|
+
new Effect.Appear(status_window);
|
57
|
+
//alert("Fatto");
|
58
|
+
}
|
59
|
+
|
60
|
+
//$$('.acts_as_monitor_icon_red .acts_as_monitor_icon_yellow .acts_as_monitor_icon_green')
|
61
|
+
var pulsate_forever = function(elem) {
|
62
|
+
new Effect.Pulsate(elem, {
|
63
|
+
//afterFinish: function(o) { new Effect.Pulsate(o.element, o.options); }
|
64
|
+
duration: 600,
|
65
|
+
pulses: 1500
|
66
|
+
});
|
67
|
+
}
|
68
|
+
$$('.acts_as_monitor_icon_red').each(function(elmt)
|
69
|
+
{
|
70
|
+
elmt.observe('click', handle_monitor);
|
71
|
+
pulsate_forever(elmt);
|
72
|
+
});
|
73
|
+
|
74
|
+
$$('.acts_as_monitor_icon_yellow').each(function(elmt)
|
75
|
+
{
|
76
|
+
elmt.observe('click', handle_monitor);
|
77
|
+
});
|
78
|
+
});
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class ActsAsMonitorHelperTest < ActionView::TestCase
|
4
|
+
test "monitor_tag return image" do
|
5
|
+
@test_class = TestClass.new
|
6
|
+
@image = image_tag("acts_as_monitor_#{@test_class.status_flag.to_s}.png" , :alt => "Click to view details")
|
7
|
+
assert monitor_tag(@test_class) == @image , "fail monitor tag :#{monitor_tag(TestClass.new)}"
|
8
|
+
end
|
9
|
+
|
10
|
+
test "monitor_tag Rise exception" do
|
11
|
+
assert_raise ActsAsMonitor::MissingMethod do
|
12
|
+
monitor_tag(TestClassNoMonitor.new)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
@@ -1,9 +1,6 @@
|
|
1
1
|
require 'test_helper'
|
2
2
|
|
3
3
|
class ActsAsMonitorTest < ActiveSupport::TestCase
|
4
|
-
include ActionView::Helpers
|
5
|
-
include ActsAsMonitor::Helper
|
6
|
-
|
7
4
|
test "Methods exists!" do
|
8
5
|
@test_class = TestClass.new
|
9
6
|
assert TestClass.respond_to?(:acts_as_monitor), "acts_as_monitor missing!"
|
@@ -19,34 +16,20 @@ class ActsAsMonitorTest < ActiveSupport::TestCase
|
|
19
16
|
|
20
17
|
test "Status warn" do
|
21
18
|
@test_class = TestClass.new(:warn => true)
|
22
|
-
assert @test_class.status == {:warn => [:warn_test
|
19
|
+
assert @test_class.status == {:warn => [:warn_test ], :error => []} , "Error: #{@test_class.status.inspect}"
|
23
20
|
assert @test_class.status_flag == :yellow , "Error: #{@test_class.status_flag.inspect}"
|
24
21
|
end
|
25
22
|
|
26
23
|
test "Status error" do
|
27
24
|
@test_class = TestClass.new(:error => true)
|
28
|
-
assert @test_class.status == {:warn => [], :error => [:error_test
|
25
|
+
assert @test_class.status == {:warn => [], :error => [:error_test ]}, "Error: #{@test_class.status.inspect}"
|
29
26
|
assert @test_class.status_flag == :red , "Error: #{@test_class.status_flag.inspect}"
|
30
27
|
end
|
31
28
|
|
32
29
|
test "Status error & warn " do
|
33
30
|
@test_class = TestClass.new(:error => true, :warn => true)
|
34
|
-
assert @test_class.status == {:warn => [:warn_test
|
31
|
+
assert @test_class.status == {:warn => [:warn_test ], :error => [:error_test ]}, "Error: #{@test_class.status.inspect}"
|
35
32
|
assert @test_class.status_flag == :red , "Error: #{@test_class.status_flag.inspect}"
|
36
33
|
end
|
37
34
|
|
38
|
-
test "monitor_tag return image" do
|
39
|
-
@test_class = TestClass.new
|
40
|
-
@image = image_tag("acts_as_monitor_#{@test_class.status_flag.to_s}.png" , :alt => "Click to view details")
|
41
|
-
assert monitor_tag(@test_class) == @image , "fail monitor tag :#{monitor_tag(TestClass.new)}"
|
42
|
-
end
|
43
|
-
|
44
|
-
test "monitor_tag Rise exception" do
|
45
|
-
assert_raise ActsAsMonitor::MissingMethod do
|
46
|
-
monitor_tag(TestClassNoMonitor.new)
|
47
|
-
end
|
48
|
-
end
|
49
|
-
|
50
|
-
|
51
|
-
|
52
35
|
end
|
data/test/dummy/Rakefile
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
# Add your own tasks in files placed in lib/tasks ending in .rake,
|
2
|
+
# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
|
3
|
+
|
4
|
+
require File.expand_path('../config/application', __FILE__)
|
5
|
+
require 'rake'
|
6
|
+
|
7
|
+
Dummy::Application.load_tasks
|
@@ -0,0 +1,33 @@
|
|
1
|
+
class TestClass < ActiveRecord::Base
|
2
|
+
acts_as_monitor
|
3
|
+
attr_accessor :warn, :error
|
4
|
+
|
5
|
+
after_initialize do
|
6
|
+
@warn ||= false
|
7
|
+
@error ||= false
|
8
|
+
end
|
9
|
+
|
10
|
+
|
11
|
+
private
|
12
|
+
|
13
|
+
def warn_test?
|
14
|
+
@warn
|
15
|
+
end
|
16
|
+
|
17
|
+
def error_test?
|
18
|
+
@error
|
19
|
+
end
|
20
|
+
|
21
|
+
def warn_paperino?
|
22
|
+
return true if self.name == 'Paperino'
|
23
|
+
end
|
24
|
+
|
25
|
+
def error_pippo?
|
26
|
+
return true if self.name == 'Pippo'
|
27
|
+
end
|
28
|
+
|
29
|
+
def error_id?
|
30
|
+
return true if self.id == 1
|
31
|
+
end
|
32
|
+
|
33
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
require File.expand_path('../boot', __FILE__)
|
2
|
+
|
3
|
+
require "active_model/railtie"
|
4
|
+
require "active_record/railtie"
|
5
|
+
require "action_controller/railtie"
|
6
|
+
require "action_view/railtie"
|
7
|
+
require "action_mailer/railtie"
|
8
|
+
|
9
|
+
Bundler.require
|
10
|
+
require "acts_as_monitor"
|
11
|
+
|
12
|
+
module Dummy
|
13
|
+
class Application < Rails::Application
|
14
|
+
# Settings in config/environments/* take precedence over those specified here.
|
15
|
+
# Application configuration should go into files in config/initializers
|
16
|
+
# -- all .rb files in that directory are automatically loaded.
|
17
|
+
|
18
|
+
# Custom directories with classes and modules you want to be autoloadable.
|
19
|
+
# config.autoload_paths += %W(#{config.root}/extras)
|
20
|
+
|
21
|
+
# Only load the plugins named here, in the order given (default is alphabetical).
|
22
|
+
# :all can be used as a placeholder for all plugins not explicitly named.
|
23
|
+
# config.plugins = [ :exception_notification, :ssl_requirement, :all ]
|
24
|
+
|
25
|
+
# Activate observers that should always be running.
|
26
|
+
# config.active_record.observers = :cacher, :garbage_collector, :forum_observer
|
27
|
+
|
28
|
+
# Set Time.zone default to the specified zone and make Active Record auto-convert to this zone.
|
29
|
+
# Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC.
|
30
|
+
# config.time_zone = 'Central Time (US & Canada)'
|
31
|
+
|
32
|
+
# The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.
|
33
|
+
# config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
|
34
|
+
# config.i18n.default_locale = :de
|
35
|
+
|
36
|
+
# JavaScript files you want as :defaults (application.js is always included).
|
37
|
+
# config.action_view.javascript_expansions[:defaults] = %w(jquery rails)
|
38
|
+
|
39
|
+
# Configure the default encoding used in templates for Ruby 1.9.
|
40
|
+
config.encoding = "utf-8"
|
41
|
+
|
42
|
+
# Configure sensitive parameters which will be filtered from the log file.
|
43
|
+
config.filter_parameters += [:password]
|
44
|
+
end
|
45
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# SQLite version 3.x
|
2
|
+
# gem install sqlite3
|
3
|
+
development:
|
4
|
+
adapter: sqlite3
|
5
|
+
database: db/development.sqlite3
|
6
|
+
pool: 5
|
7
|
+
timeout: 5000
|
8
|
+
|
9
|
+
# Warning: The database defined as "test" will be erased and
|
10
|
+
# re-generated from your development database when you run "rake".
|
11
|
+
# Do not set this db to the same as development or production.
|
12
|
+
test:
|
13
|
+
adapter: sqlite3
|
14
|
+
database: db/test.sqlite3
|
15
|
+
pool: 5
|
16
|
+
timeout: 5000
|
17
|
+
|
18
|
+
production:
|
19
|
+
adapter: sqlite3
|
20
|
+
database: db/production.sqlite3
|
21
|
+
pool: 5
|
22
|
+
timeout: 5000
|