tmm1-amqp 0.6.1 → 0.6.3

Sign up to get free protection for your applications and to get access to all the features.
data/amqp.gemspec CHANGED
@@ -1,6 +1,6 @@
1
1
  spec = Gem::Specification.new do |s|
2
2
  s.name = 'amqp'
3
- s.version = '0.6.1'
3
+ s.version = '0.6.3'
4
4
  s.date = '2009-01-09'
5
5
  s.summary = 'AMQP client implementation in Ruby/EventMachine'
6
6
  s.email = "amqp@tmm1.net"
data/lib/amqp.rb CHANGED
@@ -38,7 +38,10 @@ module AMQP
38
38
  :timeout => nil,
39
39
 
40
40
  # logging
41
- :logging => false
41
+ :logging => false,
42
+
43
+ # ssl
44
+ :ssl => false
42
45
  }
43
46
  end
44
47
 
data/lib/amqp/client.rb CHANGED
@@ -9,7 +9,7 @@ module AMQP
9
9
  mq.process_frame(frame)
10
10
  return
11
11
  end
12
-
12
+
13
13
  case frame
14
14
  when Frame::Method
15
15
  case method = frame.payload
@@ -49,7 +49,7 @@ module AMQP
49
49
  def self.client
50
50
  @client ||= BasicClient
51
51
  end
52
-
52
+
53
53
  def self.client= mod
54
54
  mod.__send__ :include, AMQP
55
55
  @client = mod
@@ -66,22 +66,34 @@ module AMQP
66
66
 
67
67
  timeout @settings[:timeout] if @settings[:timeout]
68
68
  errback{ @on_disconnect.call } unless @reconnecting
69
+
70
+ @connected = false
69
71
  end
70
72
 
71
73
  def connection_completed
74
+ start_tls if @settings[:ssl]
72
75
  log 'connected'
73
76
  # @on_disconnect = proc{ raise Error, 'Disconnected from server' }
74
77
  unless @closing
75
- @on_disconnect = method(:reconnect)
78
+ @on_disconnect = method(:disconnected)
76
79
  @reconnecting = false
77
80
  end
81
+
82
+ @connected = true
83
+ @connection_status.call(:connected) if @connection_status
84
+
78
85
  @buf = Buffer.new
79
86
  send_data HEADER
80
87
  send_data [1, 1, VERSION_MAJOR, VERSION_MINOR].pack('C4')
81
88
  end
82
89
 
90
+ def connected?
91
+ @connected
92
+ end
93
+
83
94
  def unbind
84
95
  log 'disconnected'
96
+ @connected = false
85
97
  EM.next_tick{ @on_disconnect.call }
86
98
  end
87
99
 
@@ -95,7 +107,7 @@ module AMQP
95
107
  def channels
96
108
  @channels ||= {}
97
109
  end
98
-
110
+
99
111
  def receive_data data
100
112
  # log 'receive_data', data
101
113
  @buf << data
@@ -110,7 +122,7 @@ module AMQP
110
122
  # this is a stub meant to be
111
123
  # replaced by the module passed into initialize
112
124
  end
113
-
125
+
114
126
  def send data, opts = {}
115
127
  channel = opts[:channel] ||= 0
116
128
  data = data.to_frame(channel) unless data.is_a? Frame
@@ -176,9 +188,18 @@ module AMQP
176
188
  opts = AMQP.settings.merge(opts)
177
189
  EM.connect opts[:host], opts[:port], self, opts
178
190
  end
179
-
191
+
192
+ def connection_status &blk
193
+ @connection_status = blk
194
+ end
195
+
180
196
  private
181
-
197
+
198
+ def disconnected
199
+ @connection_status.call(:disconnected) if @connection_status
200
+ reconnect
201
+ end
202
+
182
203
  def log *args
183
204
  return unless @settings[:logging] or AMQP.logging
184
205
  require 'pp'
data/lib/ext/emfork.rb CHANGED
@@ -46,7 +46,7 @@ def EM.fork num = 1, &blk
46
46
  end
47
47
 
48
48
  def EM.forks
49
- @forks.keys
49
+ @forks ? @forks.keys : []
50
50
  end
51
51
 
52
52
  if EMFORK
data/lib/mq.rb CHANGED
@@ -145,7 +145,7 @@ class MQ
145
145
  send Protocol::Channel::Open.new
146
146
  }
147
147
  end
148
- attr_reader :channel
148
+ attr_reader :channel, :connection
149
149
 
150
150
  # May raise a MQ::Error exception when the frame payload contains a
151
151
  # Protocol::Channel::Close object.
@@ -732,6 +732,10 @@ class MQ
732
732
  end
733
733
  end
734
734
 
735
+ def prefetch(size)
736
+ send Protocol::Basic::Qos.new(:prefetch_size => 0, :prefetch_count => size, :global => false)
737
+ end
738
+
735
739
  # Returns a hash of all the exchange proxy objects.
736
740
  #
737
741
  # Not typically called by client code.
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tmm1-amqp
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.1
4
+ version: 0.6.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Aman Gupta