beetle 0.3.0 → 0.3.1

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/beetle.gemspec CHANGED
@@ -36,9 +36,9 @@ Gem::Specification.new do |s|
36
36
  s.add_runtime_dependency("bunny", ["= 0.7.9"])
37
37
  s.add_runtime_dependency("redis", [">= 2.2.2", "< 3.1"])
38
38
  s.add_runtime_dependency("hiredis", ["= 0.4.5"])
39
- s.add_runtime_dependency("amq-client", ["= 0.9.12"])
40
- s.add_runtime_dependency("amq-protocol", ["= 1.2.0"])
41
- s.add_runtime_dependency("amqp", ["= 0.9.10"])
39
+ s.add_runtime_dependency("amq-client", ["= 1.0.2"])
40
+ s.add_runtime_dependency("amq-protocol", ["= 1.6.0"])
41
+ s.add_runtime_dependency("amqp", ["= 1.0.2"])
42
42
  s.add_runtime_dependency("activesupport", [">= 2.3.4"])
43
43
  s.add_runtime_dependency("eventmachine_httpserver", [">= 0.2.1"])
44
44
  s.add_runtime_dependency("daemons", [">= 1.0.10"])
data/lib/beetle.rb CHANGED
@@ -17,7 +17,7 @@ module Beetle
17
17
  begin
18
18
  require 'system_timer'
19
19
  SystemTimer
20
- rescue Exception => e
20
+ rescue Exception
21
21
  warn "WARNING: It's highly recommended to install the SystemTimer gem: `gem install SystemTimer -v '=1.2.1'` See: http://ph7spot.com/musings/system-timer" if RUBY_VERSION < "1.9"
22
22
  require 'timeout'
23
23
  Timeout
data/lib/beetle/client.rb CHANGED
@@ -177,7 +177,7 @@ module Beetle
177
177
  if block.arity == 1
178
178
  yield configurator
179
179
  else
180
- configurator.instance_eval &block
180
+ configurator.instance_eval(&block)
181
181
  end
182
182
  self
183
183
  end
@@ -60,7 +60,7 @@ module Beetle
60
60
  end
61
61
 
62
62
  def plain_text_response(status)
63
- status.keys.sort_by{|k| k.to_s}.map do |k|
63
+ status.keys.sort_by{|k| k.to_s}.reverse.map do |k|
64
64
  name = k.to_s # .split('_').join(" ")
65
65
  if (value = status[k]).is_a?(Array)
66
66
  value = value.join(", ")
@@ -75,7 +75,11 @@ module Beetle
75
75
  b << "<body><h1>Beetle Configuration Server Status</h1><table cellspacing=0>\n"
76
76
  plain_text_response(status).split("\n").compact.each do |row|
77
77
  row =~/(^[^:]+): (.*)$/
78
- b << "<tr><td>#{$1}</td><td>#{$2}</td></tr>\n"
78
+ name, value = $1, $2
79
+ if value =~ /,/
80
+ value = "<ul>" << value.split(/\s*,\s*/).map{|s| "<li>#{s}</li>"}.join << "</ul>"
81
+ end
82
+ b << "<tr><td>#{name}</td><td>#{value}</td></tr>\n"
79
83
  end
80
84
  b << "</table>"
81
85
  unless status[:redis_master_available?]
@@ -92,8 +96,10 @@ module Beetle
92
96
  <style media="screen" type="text/css">
93
97
  html { font: 1.25em/1.5 arial, sans-serif;}
94
98
  body { margin: 1em; }
95
- table tr:nth-child(2n+1){ background:#fff; }
96
- td { padding: 0.1em 0.2em; }
99
+ table tr:nth-child(2n+1){ background-color: #ffffff; }
100
+ td { padding: 0.1em 0.2em; vertical-align: top; }
101
+ ul { list-style-type: none; margin: 0; padding: 0;}
102
+ li { }
97
103
  h1 { color: #{warn_color}; margin-bottom: 0.2em;}
98
104
  a:link, a:visited {text-decoration:none; color:#A52A2A;}
99
105
  a:hover, a:active {text-decoration:none; color:#FF0000;}
@@ -1,3 +1,3 @@
1
1
  module Beetle
2
- VERSION = "0.3.0"
2
+ VERSION = "0.3.1"
3
3
  end
@@ -2,29 +2,32 @@ require File.expand_path(File.dirname(__FILE__) + '/../test_helper')
2
2
  require 'eventmachine'
3
3
  require 'amqp'
4
4
 
5
+ AMQP.client.logger = Beetle.config.logger
6
+
5
7
  class AMQPGemBehaviorTest < Test::Unit::TestCase
6
8
  test "subscribing twice to the same queue raises a RuntimeError which throws us out of the event loop" do
7
9
  begin
8
- @exception = nil
10
+ exception = nil
9
11
  EM.run do
10
- AMQP.start do |connection|
11
- begin
12
- EM::Timer.new(1){ connection.close { EM.stop }}
13
- channel = AMQP::Channel.new(connection)
14
- channel.on_error { puts "woot"}
15
- exchange = channel.topic("beetle_tests")
16
- queue = AMQP::Queue.new(channel)
17
- queue.bind(exchange, :key => "#")
18
- queue.subscribe { }
19
- queue.subscribe { }
20
- rescue
21
- # we never get here, because the subscription is deferred
22
- # the only known way to avoid this is to use the block version of AMQP::Queue.new
23
- end
12
+ AMQP.start(:logging => false) do |connection|
13
+ EM::Timer.new(1){ connection.close { EM.stop }}
14
+ channel = AMQP::Channel.new(connection)
15
+ channel.on_error { puts "woot"}
16
+ exchange = channel.topic("beetle_tests")
17
+ queue = AMQP::Queue.new(channel)
18
+ queue.bind(exchange, :key => "#")
19
+ queue.subscribe { }
20
+ queue.subscribe { }
24
21
  end
25
22
  end
26
- rescue Exception => @exception
23
+ rescue AMQP::TCPConnectionFailed
24
+ if ENV['TRAVIS']=='true'
25
+ assert true
26
+ else
27
+ flunk "\nbroker not running.\nplease start it to test the behavior of subscribing to a queue twice."
28
+ end
29
+ rescue Exception => exception
30
+ assert_kind_of RuntimeError, exception
27
31
  end
28
- assert @exception
29
32
  end
30
33
  end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: beetle
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.3.0
5
+ version: 0.3.1
6
6
  platform: ruby
7
7
  authors:
8
8
  - Stefan Kaes
@@ -13,17 +13,17 @@ authors:
13
13
  autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
- date: 2013-03-12 00:00:00.000000000 Z
16
+ date: 2013-06-07 00:00:00.000000000 Z
17
17
  dependencies:
18
18
  - !ruby/object:Gem::Dependency
19
19
  name: uuid4r
20
+ type: :runtime
20
21
  requirement: !ruby/object:Gem::Requirement
21
22
  requirements:
22
23
  - - ! '>='
23
24
  - !ruby/object:Gem::Version
24
25
  version: 0.1.2
25
26
  none: false
26
- type: :runtime
27
27
  version_requirements: !ruby/object:Gem::Requirement
28
28
  requirements:
29
29
  - - ! '>='
@@ -33,13 +33,13 @@ dependencies:
33
33
  prerelease: false
34
34
  - !ruby/object:Gem::Dependency
35
35
  name: bunny
36
+ type: :runtime
36
37
  requirement: !ruby/object:Gem::Requirement
37
38
  requirements:
38
39
  - - '='
39
40
  - !ruby/object:Gem::Version
40
41
  version: 0.7.9
41
42
  none: false
42
- type: :runtime
43
43
  version_requirements: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - '='
@@ -49,6 +49,7 @@ dependencies:
49
49
  prerelease: false
50
50
  - !ruby/object:Gem::Dependency
51
51
  name: redis
52
+ type: :runtime
52
53
  requirement: !ruby/object:Gem::Requirement
53
54
  requirements:
54
55
  - - ! '>='
@@ -58,7 +59,6 @@ dependencies:
58
59
  - !ruby/object:Gem::Version
59
60
  version: '3.1'
60
61
  none: false
61
- type: :runtime
62
62
  version_requirements: !ruby/object:Gem::Requirement
63
63
  requirements:
64
64
  - - ! '>='
@@ -71,13 +71,13 @@ dependencies:
71
71
  prerelease: false
72
72
  - !ruby/object:Gem::Dependency
73
73
  name: hiredis
74
+ type: :runtime
74
75
  requirement: !ruby/object:Gem::Requirement
75
76
  requirements:
76
77
  - - '='
77
78
  - !ruby/object:Gem::Version
78
79
  version: 0.4.5
79
80
  none: false
80
- type: :runtime
81
81
  version_requirements: !ruby/object:Gem::Requirement
82
82
  requirements:
83
83
  - - '='
@@ -87,61 +87,61 @@ dependencies:
87
87
  prerelease: false
88
88
  - !ruby/object:Gem::Dependency
89
89
  name: amq-client
90
+ type: :runtime
90
91
  requirement: !ruby/object:Gem::Requirement
91
92
  requirements:
92
93
  - - '='
93
94
  - !ruby/object:Gem::Version
94
- version: 0.9.12
95
+ version: 1.0.2
95
96
  none: false
96
- type: :runtime
97
97
  version_requirements: !ruby/object:Gem::Requirement
98
98
  requirements:
99
99
  - - '='
100
100
  - !ruby/object:Gem::Version
101
- version: 0.9.12
101
+ version: 1.0.2
102
102
  none: false
103
103
  prerelease: false
104
104
  - !ruby/object:Gem::Dependency
105
105
  name: amq-protocol
106
+ type: :runtime
106
107
  requirement: !ruby/object:Gem::Requirement
107
108
  requirements:
108
109
  - - '='
109
110
  - !ruby/object:Gem::Version
110
- version: 1.2.0
111
+ version: 1.6.0
111
112
  none: false
112
- type: :runtime
113
113
  version_requirements: !ruby/object:Gem::Requirement
114
114
  requirements:
115
115
  - - '='
116
116
  - !ruby/object:Gem::Version
117
- version: 1.2.0
117
+ version: 1.6.0
118
118
  none: false
119
119
  prerelease: false
120
120
  - !ruby/object:Gem::Dependency
121
121
  name: amqp
122
+ type: :runtime
122
123
  requirement: !ruby/object:Gem::Requirement
123
124
  requirements:
124
125
  - - '='
125
126
  - !ruby/object:Gem::Version
126
- version: 0.9.10
127
+ version: 1.0.2
127
128
  none: false
128
- type: :runtime
129
129
  version_requirements: !ruby/object:Gem::Requirement
130
130
  requirements:
131
131
  - - '='
132
132
  - !ruby/object:Gem::Version
133
- version: 0.9.10
133
+ version: 1.0.2
134
134
  none: false
135
135
  prerelease: false
136
136
  - !ruby/object:Gem::Dependency
137
137
  name: activesupport
138
+ type: :runtime
138
139
  requirement: !ruby/object:Gem::Requirement
139
140
  requirements:
140
141
  - - ! '>='
141
142
  - !ruby/object:Gem::Version
142
143
  version: 2.3.4
143
144
  none: false
144
- type: :runtime
145
145
  version_requirements: !ruby/object:Gem::Requirement
146
146
  requirements:
147
147
  - - ! '>='
@@ -151,13 +151,13 @@ dependencies:
151
151
  prerelease: false
152
152
  - !ruby/object:Gem::Dependency
153
153
  name: eventmachine_httpserver
154
+ type: :runtime
154
155
  requirement: !ruby/object:Gem::Requirement
155
156
  requirements:
156
157
  - - ! '>='
157
158
  - !ruby/object:Gem::Version
158
159
  version: 0.2.1
159
160
  none: false
160
- type: :runtime
161
161
  version_requirements: !ruby/object:Gem::Requirement
162
162
  requirements:
163
163
  - - ! '>='
@@ -167,13 +167,13 @@ dependencies:
167
167
  prerelease: false
168
168
  - !ruby/object:Gem::Dependency
169
169
  name: daemons
170
+ type: :runtime
170
171
  requirement: !ruby/object:Gem::Requirement
171
172
  requirements:
172
173
  - - ! '>='
173
174
  - !ruby/object:Gem::Version
174
175
  version: 1.0.10
175
176
  none: false
176
- type: :runtime
177
177
  version_requirements: !ruby/object:Gem::Requirement
178
178
  requirements:
179
179
  - - ! '>='
@@ -281,7 +281,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
281
281
  - !ruby/object:Gem::Version
282
282
  segments:
283
283
  - 0
284
- hash: -863009242128424125
284
+ hash: 872771783453317640
285
285
  version: '0'
286
286
  none: false
287
287
  required_rubygems_version: !ruby/object:Gem::Requirement