beetle 0.3.0 → 0.3.1

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