acts_as_monitor 0.0.2
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/.gitignore +18 -0
- data/CHANGELOG.md +8 -0
- data/Gemfile +4 -0
- data/LICENSE +22 -0
- data/README.md +69 -0
- data/Rakefile +12 -0
- data/acts_as_monitor.gemspec +22 -0
- data/app/controllers/acts_as_monitor/monitor_controller.rb +7 -0
- data/app/helpers/monitor_helper.rb +11 -0
- data/app/views/acts_as_monitor/indext.html.erb +1 -0
- data/config/routes.rb +4 -0
- data/lib/acts_as_monitor.rb +15 -0
- data/lib/acts_as_monitor/engine.rb +15 -0
- data/lib/acts_as_monitor/exceptions.rb +9 -0
- data/lib/acts_as_monitor/monitor.rb +74 -0
- data/lib/acts_as_monitor/version.rb +3 -0
- data/lib/generators/acts_as_monitor/install/install_generator.rb +31 -0
- data/lib/generators/acts_as_monitor/install/templates/acts_as_monitor.it.yml +9 -0
- data/lib/generators/acts_as_monitor/install/templates/acts_as_monitor_green.png +0 -0
- data/lib/generators/acts_as_monitor/install/templates/acts_as_monitor_red.png +0 -0
- data/lib/generators/acts_as_monitor/install/templates/acts_as_monitor_yellow.png +0 -0
- data/test/acts_as_monitor.sqlite3.db +0 -0
- data/test/database.yml +3 -0
- data/test/test_helper.rb +47 -0
- data/test/units/acts_as_monitor_test.rb +52 -0
- metadata +138 -0
data/.gitignore
ADDED
data/CHANGELOG.md
ADDED
data/Gemfile
ADDED
data/LICENSE
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
Copyright (c) 2012 TODO: Write your name
|
2
|
+
|
3
|
+
MIT License
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
6
|
+
a copy of this software and associated documentation files (the
|
7
|
+
"Software"), to deal in the Software without restriction, including
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
11
|
+
the following conditions:
|
12
|
+
|
13
|
+
The above copyright notice and this permission notice shall be
|
14
|
+
included in all copies or substantial portions of the Software.
|
15
|
+
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
19
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
20
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
22
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,69 @@
|
|
1
|
+
# ActsAsMonitor
|
2
|
+
|
3
|
+
Provide a way to monitor the status of a model.
|
4
|
+
The health of the model is checked by private method, defined by user
|
5
|
+
|
6
|
+
## Installation
|
7
|
+
|
8
|
+
Add this line to your application's Gemfile:
|
9
|
+
|
10
|
+
gem 'acts_as_monitor'
|
11
|
+
|
12
|
+
And then execute:
|
13
|
+
|
14
|
+
$ bundle
|
15
|
+
|
16
|
+
Or install it yourself as:
|
17
|
+
|
18
|
+
$ gem install acts_as_monitor
|
19
|
+
|
20
|
+
Copy icons and other files
|
21
|
+
|
22
|
+
rails g acts_as_monitor:install
|
23
|
+
|
24
|
+
## Usage
|
25
|
+
#app/models/user.rb
|
26
|
+
class User < ActiveRecord::Base
|
27
|
+
acts_as_monitor
|
28
|
+
|
29
|
+
... your code ...
|
30
|
+
|
31
|
+
private
|
32
|
+
|
33
|
+
def warn_stange?
|
34
|
+
... do some checks and return true or false
|
35
|
+
true
|
36
|
+
end
|
37
|
+
|
38
|
+
def warn_not_now?
|
39
|
+
... do some checks and return true or false
|
40
|
+
false
|
41
|
+
end
|
42
|
+
|
43
|
+
def error_terrible?
|
44
|
+
... do some checks and return true or false
|
45
|
+
true
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
You can now check the status of your model using the following code:
|
50
|
+
@user = User.new
|
51
|
+
|
52
|
+
@user.status
|
53
|
+
> {:warn => [:warn_strange?], :error => [:error_terrible?]}
|
54
|
+
|
55
|
+
@user.status_flag
|
56
|
+
> :red
|
57
|
+
|
58
|
+
You can use the monitor_tag helper to view a red/green/yellow rapresentation:
|
59
|
+
#app/views/users/index.html.erb
|
60
|
+
...
|
61
|
+
<%= monitor_tag(@user) %>
|
62
|
+
|
63
|
+
## Contributing
|
64
|
+
|
65
|
+
1. Fork it
|
66
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
67
|
+
3. Commit your changes (`git commit -am 'Added some feature'`)
|
68
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
69
|
+
5. Create new Pull Request
|
data/Rakefile
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
#!/usr/bin/env rake
|
2
|
+
require "bundler/gem_tasks"
|
3
|
+
require 'rake/testtask'
|
4
|
+
#~ RSpec::Core::RakeTask.new
|
5
|
+
|
6
|
+
#~ task :default => :spec
|
7
|
+
#~ task :test => :spec
|
8
|
+
Rake::TestTask.new do |t|
|
9
|
+
t.libs << "test"
|
10
|
+
t.test_files = FileList['test/**/*_test.rb']
|
11
|
+
t.verbose = true
|
12
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
require File.expand_path('../lib/acts_as_monitor/version', __FILE__)
|
3
|
+
|
4
|
+
Gem::Specification.new do |gem|
|
5
|
+
gem.authors = ["Andrea Bignozzi"]
|
6
|
+
gem.email = ["skylord73@gmail.com"]
|
7
|
+
gem.description = %q{Monitor model via private methods warn_*? and error_*?}
|
8
|
+
gem.summary = %q{Monitor models }
|
9
|
+
|
10
|
+
gem.files = `git ls-files`.split($\)
|
11
|
+
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
12
|
+
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
13
|
+
gem.name = "acts_as_monitor"
|
14
|
+
gem.require_paths = ["lib"]
|
15
|
+
gem.version = ActsAsMonitor::VERSION
|
16
|
+
|
17
|
+
gem.add_dependency "rails", "3.0.9"
|
18
|
+
|
19
|
+
gem.add_development_dependency "rake"
|
20
|
+
gem.add_development_dependency "rspec"
|
21
|
+
|
22
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
module ActsAsMonitor
|
2
|
+
module Helper
|
3
|
+
def monitor_tag(object)
|
4
|
+
raise ActsAsMonitor::MissingMethod unless object.respond_to?(:status_flag)
|
5
|
+
icon = I18n.t(object.status_flag, :scope => "acts_as_monitor.icons",
|
6
|
+
:default => "acts_as_monitor_#{object.status_flag.to_s}.png")
|
7
|
+
image_tag icon, :alt => I18n.t(:alt_image, :scope => "acts_as_monitor.icons",
|
8
|
+
:default => "Click to view details")
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
<p>My engine page</p>
|
data/config/routes.rb
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
require "acts_as_monitor/version"
|
2
|
+
require "acts_as_monitor/monitor"
|
3
|
+
require File.dirname(__FILE__) + '/../app/helpers/monitor_helper'
|
4
|
+
|
5
|
+
module ActsAsMonitor
|
6
|
+
class MissingMethod < StandardError
|
7
|
+
def message
|
8
|
+
I18n.t(:missing_method, :scope => "acts_as_monitor.errors", :default => "Add acts_as_monitor to your class")
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
#Include my Helper to ActionView (as they where in application_helper)
|
13
|
+
ActionView::Base.send :include, ActsAsMonitor::Helper
|
14
|
+
|
15
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module ActsAsMonitor
|
2
|
+
class Engine < Rails::Engine
|
3
|
+
initialize "team_page.load_app_instance_data" do |app|
|
4
|
+
TeamPage.setup do |config|
|
5
|
+
config.app_root = app.root
|
6
|
+
end
|
7
|
+
end
|
8
|
+
|
9
|
+
initialize "team_page.load_static_assets" do |app|
|
10
|
+
app.middleware.use ::ActionDispatch::Static, "#{root}/public"
|
11
|
+
end
|
12
|
+
|
13
|
+
end
|
14
|
+
|
15
|
+
end
|
@@ -0,0 +1,74 @@
|
|
1
|
+
module ActsAsMonitor
|
2
|
+
module Monitor
|
3
|
+
def self.included(base) # :nodoc:
|
4
|
+
base.send :extend, ClassMethods
|
5
|
+
end
|
6
|
+
|
7
|
+
# Class methods for the mixin
|
8
|
+
module ClassMethods
|
9
|
+
# defines the class method to inject monitor methods
|
10
|
+
#
|
11
|
+
#==Example
|
12
|
+
# class MyModel < ActiveRecord::Base
|
13
|
+
# acts_as_monitor
|
14
|
+
# ...
|
15
|
+
# private
|
16
|
+
#
|
17
|
+
# def warn_test?
|
18
|
+
# whatever you want that return true in a warning condition
|
19
|
+
# end
|
20
|
+
#
|
21
|
+
# def error_test?
|
22
|
+
# whatever you want that return true in an error condition
|
23
|
+
# end
|
24
|
+
def acts_as_monitor(options={})
|
25
|
+
#~ cattr_accessor :xlsx_i18n, :xlsx_columns
|
26
|
+
#~ self.xlsx_i18n = options.delete(:i18n) || false
|
27
|
+
#~ self.xlsx_columns = options.delete(:columns) || self.column_names.map { |c| c = c.to_sym }
|
28
|
+
extend ActsAsMonitor::Monitor::SingletonMethods
|
29
|
+
include ActsAsMonitor::Monitor::InstanceMethods
|
30
|
+
end
|
31
|
+
|
32
|
+
|
33
|
+
end
|
34
|
+
|
35
|
+
# Singleton methods for the mixin
|
36
|
+
module SingletonMethods
|
37
|
+
end
|
38
|
+
|
39
|
+
#Instance methods for the mixin
|
40
|
+
module InstanceMethods
|
41
|
+
#Used to have full status description
|
42
|
+
#
|
43
|
+
# {:wan => [wan_name1?, ...], :error => [error_name1?...]}
|
44
|
+
#where warn_name1? and error_name1? are private instance method defined in the monitored model
|
45
|
+
def status
|
46
|
+
search = /^(warn|error)_.*\?/
|
47
|
+
out = {:warn => [], :error => []}
|
48
|
+
methods = self.private_methods.map{|m| m.match(search) }.compact
|
49
|
+
methods.each do |method|
|
50
|
+
out[method[1].to_sym] << method[0].to_sym if send(method[0])
|
51
|
+
end
|
52
|
+
out
|
53
|
+
end
|
54
|
+
|
55
|
+
#Used to have a quick status of the model
|
56
|
+
#* :red => Errors
|
57
|
+
#* :yellow => Warnings
|
58
|
+
#* :green => Nornal status
|
59
|
+
def status_flag
|
60
|
+
st = status
|
61
|
+
return :red unless st[:error].blank?
|
62
|
+
return :yellow unless st[:warn].blank?
|
63
|
+
return :green
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
|
68
|
+
end
|
69
|
+
|
70
|
+
end
|
71
|
+
|
72
|
+
require 'active_record'
|
73
|
+
ActiveRecord::Base.send :include, ActsAsMonitor::Monitor
|
74
|
+
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require 'rails/generators'
|
2
|
+
module ActsAsMonitor
|
3
|
+
class InstallGenerator < Rails::Generators::Base
|
4
|
+
desc "Install generator for ActsAsMonitor gem"
|
5
|
+
source_root File.expand_path("../templates", __FILE__)
|
6
|
+
|
7
|
+
def copy_icons
|
8
|
+
icons = ["acts_as_monitor_green.png", "acts_as_monitor_red.png", "acts_as_monitor_yellow.png"]
|
9
|
+
icons.each do |icon|
|
10
|
+
destination = "public/images/" + icon
|
11
|
+
copy_file icon, destination
|
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)
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
@@ -0,0 +1,9 @@
|
|
1
|
+
it:
|
2
|
+
acts_as_monitor:
|
3
|
+
icons:
|
4
|
+
red: acts_as_monitor_red.png
|
5
|
+
yellow: acts_as_monitor_yellow.png
|
6
|
+
green: acts_as_monitor_green.png
|
7
|
+
alt_image: "Clicca per visualizzare i dettagli"
|
8
|
+
errors:
|
9
|
+
missing_method: "Aggiungi acts_as_monitor alla classe da monitorare"
|
Binary file
|
data/test/database.yml
ADDED
data/test/test_helper.rb
ADDED
@@ -0,0 +1,47 @@
|
|
1
|
+
require 'test/unit'
|
2
|
+
require 'active_record'
|
3
|
+
require 'action_controller'
|
4
|
+
require 'action_controller/test_case'
|
5
|
+
require 'action_view/test_case'
|
6
|
+
require 'acts_as_monitor'
|
7
|
+
|
8
|
+
config = YAML::load(IO.read(File.dirname(__FILE__) + '/database.yml'))
|
9
|
+
ActiveRecord::Base.establish_connection(config['sqlite3'])
|
10
|
+
|
11
|
+
ActiveRecord::Schema.define(:version => 0) do
|
12
|
+
begin
|
13
|
+
drop_table :test_classes, :force => true
|
14
|
+
rescue
|
15
|
+
#dont really care if the tables are not dropped
|
16
|
+
end
|
17
|
+
|
18
|
+
create_table(:test_classes, :force => true) do |t|
|
19
|
+
t.string :name
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
|
24
|
+
class TestClassNoMonitor
|
25
|
+
end
|
26
|
+
|
27
|
+
class TestClass < ActiveRecord::Base
|
28
|
+
acts_as_monitor
|
29
|
+
attr_accessor :warn, :error
|
30
|
+
|
31
|
+
after_initialize do
|
32
|
+
@warn = false
|
33
|
+
@error = false
|
34
|
+
end
|
35
|
+
|
36
|
+
|
37
|
+
private
|
38
|
+
|
39
|
+
def warn_test?
|
40
|
+
@warn
|
41
|
+
end
|
42
|
+
|
43
|
+
def error_test?
|
44
|
+
@error
|
45
|
+
end
|
46
|
+
|
47
|
+
end
|
@@ -0,0 +1,52 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class ActsAsMonitorTest < ActiveSupport::TestCase
|
4
|
+
include ActionView::Helpers
|
5
|
+
include ActsAsMonitor::Helper
|
6
|
+
|
7
|
+
test "Methods exists!" do
|
8
|
+
@test_class = TestClass.new
|
9
|
+
assert TestClass.respond_to?(:acts_as_monitor), "acts_as_monitor missing!"
|
10
|
+
assert @test_class.respond_to?(:status), "status missing!"
|
11
|
+
assert @test_class.respond_to?(:status_flag), "status_flag missing!"
|
12
|
+
end
|
13
|
+
|
14
|
+
test "Status ok" do
|
15
|
+
@test_class = TestClass.new()
|
16
|
+
assert @test_class.status == {:warn => [], :error => []} , "Error: #{@test_class.status.inspect}"
|
17
|
+
assert @test_class.status_flag == :green , "Error: #{@test_class.status_flag.inspect}"
|
18
|
+
end
|
19
|
+
|
20
|
+
test "Status warn" do
|
21
|
+
@test_class = TestClass.new(:warn => true)
|
22
|
+
assert @test_class.status == {:warn => [:warn_test? ], :error => []} , "Error: #{@test_class.status.inspect}"
|
23
|
+
assert @test_class.status_flag == :yellow , "Error: #{@test_class.status_flag.inspect}"
|
24
|
+
end
|
25
|
+
|
26
|
+
test "Status error" do
|
27
|
+
@test_class = TestClass.new(:error => true)
|
28
|
+
assert @test_class.status == {:warn => [], :error => [:error_test? ]}, "Error: #{@test_class.status.inspect}"
|
29
|
+
assert @test_class.status_flag == :red , "Error: #{@test_class.status_flag.inspect}"
|
30
|
+
end
|
31
|
+
|
32
|
+
test "Status error & warn " do
|
33
|
+
@test_class = TestClass.new(:error => true, :warn => true)
|
34
|
+
assert @test_class.status == {:warn => [:warn_test? ], :error => [:error_test? ]}, "Error: #{@test_class.status.inspect}"
|
35
|
+
assert @test_class.status_flag == :red , "Error: #{@test_class.status_flag.inspect}"
|
36
|
+
end
|
37
|
+
|
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
|
+
end
|
metadata
ADDED
@@ -0,0 +1,138 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: acts_as_monitor
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 27
|
5
|
+
prerelease: false
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 0
|
9
|
+
- 2
|
10
|
+
version: 0.0.2
|
11
|
+
platform: ruby
|
12
|
+
authors:
|
13
|
+
- Andrea Bignozzi
|
14
|
+
autorequire:
|
15
|
+
bindir: bin
|
16
|
+
cert_chain: []
|
17
|
+
|
18
|
+
date: 2012-05-24 00:00:00 +02:00
|
19
|
+
default_executable:
|
20
|
+
dependencies:
|
21
|
+
- !ruby/object:Gem::Dependency
|
22
|
+
name: rails
|
23
|
+
prerelease: false
|
24
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - "="
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
hash: 21
|
30
|
+
segments:
|
31
|
+
- 3
|
32
|
+
- 0
|
33
|
+
- 9
|
34
|
+
version: 3.0.9
|
35
|
+
type: :runtime
|
36
|
+
version_requirements: *id001
|
37
|
+
- !ruby/object:Gem::Dependency
|
38
|
+
name: rake
|
39
|
+
prerelease: false
|
40
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ">="
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
hash: 3
|
46
|
+
segments:
|
47
|
+
- 0
|
48
|
+
version: "0"
|
49
|
+
type: :development
|
50
|
+
version_requirements: *id002
|
51
|
+
- !ruby/object:Gem::Dependency
|
52
|
+
name: rspec
|
53
|
+
prerelease: false
|
54
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
55
|
+
none: false
|
56
|
+
requirements:
|
57
|
+
- - ">="
|
58
|
+
- !ruby/object:Gem::Version
|
59
|
+
hash: 3
|
60
|
+
segments:
|
61
|
+
- 0
|
62
|
+
version: "0"
|
63
|
+
type: :development
|
64
|
+
version_requirements: *id003
|
65
|
+
description: Monitor model via private methods warn_*? and error_*?
|
66
|
+
email:
|
67
|
+
- skylord73@gmail.com
|
68
|
+
executables: []
|
69
|
+
|
70
|
+
extensions: []
|
71
|
+
|
72
|
+
extra_rdoc_files: []
|
73
|
+
|
74
|
+
files:
|
75
|
+
- .gitignore
|
76
|
+
- CHANGELOG.md
|
77
|
+
- Gemfile
|
78
|
+
- LICENSE
|
79
|
+
- README.md
|
80
|
+
- Rakefile
|
81
|
+
- acts_as_monitor.gemspec
|
82
|
+
- app/controllers/acts_as_monitor/monitor_controller.rb
|
83
|
+
- app/helpers/monitor_helper.rb
|
84
|
+
- app/views/acts_as_monitor/indext.html.erb
|
85
|
+
- config/routes.rb
|
86
|
+
- lib/acts_as_monitor.rb
|
87
|
+
- lib/acts_as_monitor/engine.rb
|
88
|
+
- lib/acts_as_monitor/exceptions.rb
|
89
|
+
- lib/acts_as_monitor/monitor.rb
|
90
|
+
- lib/acts_as_monitor/version.rb
|
91
|
+
- lib/generators/acts_as_monitor/install/install_generator.rb
|
92
|
+
- lib/generators/acts_as_monitor/install/templates/acts_as_monitor.it.yml
|
93
|
+
- lib/generators/acts_as_monitor/install/templates/acts_as_monitor_green.png
|
94
|
+
- lib/generators/acts_as_monitor/install/templates/acts_as_monitor_red.png
|
95
|
+
- lib/generators/acts_as_monitor/install/templates/acts_as_monitor_yellow.png
|
96
|
+
- test/acts_as_monitor.sqlite3.db
|
97
|
+
- test/database.yml
|
98
|
+
- test/test_helper.rb
|
99
|
+
- test/units/acts_as_monitor_test.rb
|
100
|
+
has_rdoc: true
|
101
|
+
homepage:
|
102
|
+
licenses: []
|
103
|
+
|
104
|
+
post_install_message:
|
105
|
+
rdoc_options: []
|
106
|
+
|
107
|
+
require_paths:
|
108
|
+
- lib
|
109
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
110
|
+
none: false
|
111
|
+
requirements:
|
112
|
+
- - ">="
|
113
|
+
- !ruby/object:Gem::Version
|
114
|
+
hash: 3
|
115
|
+
segments:
|
116
|
+
- 0
|
117
|
+
version: "0"
|
118
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
119
|
+
none: false
|
120
|
+
requirements:
|
121
|
+
- - ">="
|
122
|
+
- !ruby/object:Gem::Version
|
123
|
+
hash: 3
|
124
|
+
segments:
|
125
|
+
- 0
|
126
|
+
version: "0"
|
127
|
+
requirements: []
|
128
|
+
|
129
|
+
rubyforge_project:
|
130
|
+
rubygems_version: 1.3.7
|
131
|
+
signing_key:
|
132
|
+
specification_version: 3
|
133
|
+
summary: Monitor models
|
134
|
+
test_files:
|
135
|
+
- test/acts_as_monitor.sqlite3.db
|
136
|
+
- test/database.yml
|
137
|
+
- test/test_helper.rb
|
138
|
+
- test/units/acts_as_monitor_test.rb
|