monittr 0.0.5 → 0.0.6

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.
@@ -108,10 +108,12 @@ $(function() {
108
108
  $(this).removeClass('expanded').find('.content').hide('fast', function() { });
109
109
  });
110
110
 
111
- $('#monittr .server h2').toggle(
112
- function() { $(this).parent().trigger('expand') },
113
- function() { $(this).parent().trigger('collapse') }
114
- );
111
+ $('#monittr .server h2').click(
112
+ function(event) {
113
+ if ( event.target != this ) return true; // Enable clicking on links
114
+ $(this).parent().hasClass('expanded') ? $(this).parent().trigger('collapse') : $(this).parent().trigger('expand');
115
+ });
116
+
115
117
 
116
118
  $('#toggle').toggle(
117
119
  function() {
@@ -1,3 +1,3 @@
1
1
  module Monittr
2
- VERSION = "0.0.5"
2
+ VERSION = "0.0.6"
3
3
  end
data/lib/monittr.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  require 'nokogiri'
2
2
  require 'rest-client'
3
3
  require 'ostruct'
4
+ require 'timeout'
4
5
 
5
6
  module Monittr
6
7
 
@@ -45,10 +46,12 @@ module Monittr
45
46
  # Retrieve Monit status XML from the URL
46
47
  #
47
48
  def self.fetch(url='http://admin:monit@localhost:2812')
48
- monit_url = url
49
- monit_url += '/' unless url =~ /\/$/
50
- monit_url += '_status?format=xml' unless url =~ /_status\?format=xml$/
51
- self.new url, RestClient.get(monit_url)
49
+ Timeout::timeout(1) do
50
+ monit_url = url
51
+ monit_url += '/' unless url =~ /\/$/
52
+ monit_url += '_status?format=xml' unless url =~ /_status\?format=xml$/
53
+ self.new url, RestClient.get(monit_url)
54
+ end
52
55
  rescue Exception => e
53
56
  self.new url, %Q|<error status="3" name="#{e.class}" message="#{e.message}" />|
54
57
  end
data/test/monittr_test.rb CHANGED
@@ -37,6 +37,15 @@ module Monittr
37
37
  assert_equal '500 Internal Server Error', cluster.servers.first.system.message
38
38
  end
39
39
 
40
+ should "timeout properly for non-responding URLs" do
41
+ RestClient.expects(:get).raises(Timeout::Error)
42
+ cluster = Monittr::Cluster.new %w[ http://admin:monit@localhost:2812 ]
43
+ assert_not_nil cluster.servers
44
+ assert_equal 1, cluster.servers.size
45
+ assert_equal 3, cluster.servers.first.system.status
46
+ assert_equal 'Timeout::Error', cluster.servers.first.system.name
47
+ end
48
+
40
49
  end
41
50
 
42
51
  context "Server" do
metadata CHANGED
@@ -1,12 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: monittr
3
3
  version: !ruby/object:Gem::Version
4
- prerelease: false
4
+ hash: 19
5
+ prerelease:
5
6
  segments:
6
7
  - 0
7
8
  - 0
8
- - 5
9
- version: 0.0.5
9
+ - 6
10
+ version: 0.0.6
10
11
  platform: ruby
11
12
  authors:
12
13
  - Karel Minarik
@@ -14,16 +15,17 @@ autorequire:
14
15
  bindir: bin
15
16
  cert_chain: []
16
17
 
17
- date: 2010-12-01 00:00:00 +01:00
18
- default_executable:
18
+ date: 2011-06-30 00:00:00 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: bundler
22
22
  prerelease: false
23
23
  requirement: &id001 !ruby/object:Gem::Requirement
24
+ none: false
24
25
  requirements:
25
26
  - - ~>
26
27
  - !ruby/object:Gem::Version
28
+ hash: 23
27
29
  segments:
28
30
  - 1
29
31
  - 0
@@ -35,9 +37,11 @@ dependencies:
35
37
  name: rest-client
36
38
  prerelease: false
37
39
  requirement: &id002 !ruby/object:Gem::Requirement
40
+ none: false
38
41
  requirements:
39
42
  - - ">="
40
43
  - !ruby/object:Gem::Version
44
+ hash: 3
41
45
  segments:
42
46
  - 0
43
47
  version: "0"
@@ -47,9 +51,11 @@ dependencies:
47
51
  name: nokogiri
48
52
  prerelease: false
49
53
  requirement: &id003 !ruby/object:Gem::Requirement
54
+ none: false
50
55
  requirements:
51
56
  - - ">="
52
57
  - !ruby/object:Gem::Version
58
+ hash: 3
53
59
  segments:
54
60
  - 0
55
61
  version: "0"
@@ -59,9 +65,11 @@ dependencies:
59
65
  name: sinatra
60
66
  prerelease: false
61
67
  requirement: &id004 !ruby/object:Gem::Requirement
68
+ none: false
62
69
  requirements:
63
70
  - - ">="
64
71
  - !ruby/object:Gem::Version
72
+ hash: 3
65
73
  segments:
66
74
  - 0
67
75
  version: "0"
@@ -71,9 +79,11 @@ dependencies:
71
79
  name: shoulda
72
80
  prerelease: false
73
81
  requirement: &id005 !ruby/object:Gem::Requirement
82
+ none: false
74
83
  requirements:
75
84
  - - ">="
76
85
  - !ruby/object:Gem::Version
86
+ hash: 3
77
87
  segments:
78
88
  - 0
79
89
  version: "0"
@@ -83,9 +93,11 @@ dependencies:
83
93
  name: turn
84
94
  prerelease: false
85
95
  requirement: &id006 !ruby/object:Gem::Requirement
96
+ none: false
86
97
  requirements:
87
98
  - - ">="
88
99
  - !ruby/object:Gem::Version
100
+ hash: 3
89
101
  segments:
90
102
  - 0
91
103
  version: "0"
@@ -95,14 +107,30 @@ dependencies:
95
107
  name: fakeweb
96
108
  prerelease: false
97
109
  requirement: &id007 !ruby/object:Gem::Requirement
110
+ none: false
98
111
  requirements:
99
112
  - - ">="
100
113
  - !ruby/object:Gem::Version
114
+ hash: 3
101
115
  segments:
102
116
  - 0
103
117
  version: "0"
104
118
  type: :development
105
119
  version_requirements: *id007
120
+ - !ruby/object:Gem::Dependency
121
+ name: mocha
122
+ prerelease: false
123
+ requirement: &id008 !ruby/object:Gem::Requirement
124
+ none: false
125
+ requirements:
126
+ - - ">="
127
+ - !ruby/object:Gem::Version
128
+ hash: 3
129
+ segments:
130
+ - 0
131
+ version: "0"
132
+ type: :development
133
+ version_requirements: *id008
106
134
  description: " Monittr provides a Ruby interface for loading and displaying statistics\n from multiple Monit instances and helpers for Sinatra web applications.\n"
107
135
  email: karmi@karmi.cz
108
136
  executables: []
@@ -128,7 +156,6 @@ files:
128
156
  - examples/application.rb
129
157
  - examples/monitrc
130
158
  - examples/template.erb
131
- has_rdoc: true
132
159
  homepage: http://github.com/karmi/monittr
133
160
  licenses: []
134
161
 
@@ -138,16 +165,20 @@ rdoc_options:
138
165
  require_paths:
139
166
  - lib
140
167
  required_ruby_version: !ruby/object:Gem::Requirement
168
+ none: false
141
169
  requirements:
142
170
  - - ">="
143
171
  - !ruby/object:Gem::Version
172
+ hash: 3
144
173
  segments:
145
174
  - 0
146
175
  version: "0"
147
176
  required_rubygems_version: !ruby/object:Gem::Requirement
177
+ none: false
148
178
  requirements:
149
179
  - - ">="
150
180
  - !ruby/object:Gem::Version
181
+ hash: 23
151
182
  segments:
152
183
  - 1
153
184
  - 3
@@ -156,7 +187,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
156
187
  requirements: []
157
188
 
158
189
  rubyforge_project:
159
- rubygems_version: 1.3.6
190
+ rubygems_version: 1.8.5
160
191
  signing_key:
161
192
  specification_version: 3
162
193
  summary: A Ruby and web interface for Monit statistics