acts_as_monitor 0.0.2 → 0.0.9
Sign up to get free protection for your applications and to get access to all the features.
- 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
|