em-posixmq 0.1.0 → 0.2.0

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.
@@ -1,6 +1,8 @@
1
1
  require "eventmachine"
2
2
  require "posix_mq"
3
3
 
4
+ require "em-posixmq/version"
5
+
4
6
 
5
7
  module EventMachine::PosixMQ
6
8
 
@@ -11,14 +13,13 @@ module EventMachine::PosixMQ
11
13
  end
12
14
 
13
15
  def notify_readable
14
- begin
15
- message, priority = @posix_mq.receive
16
- receive_message message, priority
17
- rescue Errno::EAGAIN
18
- end
16
+ # POSIX_MQ#tryreceive returns nil in case there is nothing to read.
17
+ message, priority = @posix_mq.tryreceive
18
+ receive_message message, priority if message
19
19
  end
20
20
 
21
21
  def receive_message(message, priority)
22
+ # This method must be defined in the user's class inherinting this one.
22
23
  end
23
24
  end
24
25
 
@@ -28,11 +29,10 @@ module EventMachine::PosixMQ
28
29
  raise Error, "`posix_mq' argument must be a POSIX_MQ instance" unless
29
30
  posix_mq.is_a? POSIX_MQ
30
31
 
31
- EM.watch posix_mq.to_io, handler, posix_mq do |conn|
32
- conn.notify_readable = true
33
- end
32
+ conn = EM.watch posix_mq.to_io, handler, posix_mq
33
+ conn.notify_readable = true
34
34
 
35
- self
35
+ return conn
36
36
  end
37
37
 
38
38
  end
@@ -0,0 +1,5 @@
1
+ module EventMachine
2
+ module PosixMQ
3
+ VERSION = "0.2.0"
4
+ end
5
+ end
@@ -12,7 +12,9 @@ while true do
12
12
  priority = SecureRandom.random_number 9
13
13
 
14
14
  puts "sending message '#{message}' with priority #{priority} to the queue..."
15
- posix_mq.send message, priority
15
+ unless posix_mq.trysend message, priority
16
+ puts "WARN: cannot write '#{message}' into the queue (full)"
17
+ end
16
18
 
17
19
  sleep SecureRandom.random_number
18
20
  end
metadata CHANGED
@@ -1,93 +1,73 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: em-posixmq
3
- version: !ruby/object:Gem::Version
4
- prerelease: false
5
- segments:
6
- - 0
7
- - 1
8
- - 0
9
- version: 0.1.0
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.0
5
+ prerelease:
10
6
  platform: ruby
11
- authors:
12
- - "I\xC3\xB1aki Baz Castillo"
7
+ authors:
8
+ - Iñaki Baz Castillo
13
9
  autorequire:
14
10
  bindir: bin
15
11
  cert_chain: []
16
-
17
- date: 2011-02-20 00:00:00 +01:00
12
+ date: 2011-03-01 00:00:00.000000000 +01:00
18
13
  default_executable:
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
21
16
  name: eventmachine
22
- prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
17
+ requirement: &20625640 !ruby/object:Gem::Requirement
24
18
  none: false
25
- requirements:
26
- - - ">="
27
- - !ruby/object:Gem::Version
28
- segments:
29
- - 0
30
- version: "0"
19
+ requirements:
20
+ - - ! '>='
21
+ - !ruby/object:Gem::Version
22
+ version: '0'
31
23
  type: :runtime
32
- version_requirements: *id001
33
- - !ruby/object:Gem::Dependency
34
- name: posix_mq
35
24
  prerelease: false
36
- requirement: &id002 !ruby/object:Gem::Requirement
25
+ version_requirements: *20625640
26
+ - !ruby/object:Gem::Dependency
27
+ name: posix_mq
28
+ requirement: &20664680 !ruby/object:Gem::Requirement
37
29
  none: false
38
- requirements:
39
- - - ">="
40
- - !ruby/object:Gem::Version
41
- segments:
42
- - 0
43
- version: "0"
30
+ requirements:
31
+ - - ! '>='
32
+ - !ruby/object:Gem::Version
33
+ version: 1.0.0
44
34
  type: :runtime
45
- version_requirements: *id002
46
- description: em-posixmq integrates posix_mq Ruby library into the EventMachine reactor allowing asynchronous reading from a POSIX message queue
35
+ prerelease: false
36
+ version_requirements: *20664680
37
+ description: em-posixmq integrates posix_mq Ruby library into the EventMachine reactor
38
+ allowing asynchronous reading from a POSIX message queue
47
39
  email: ibc@aliax.net
48
40
  executables: []
49
-
50
41
  extensions: []
51
-
52
42
  extra_rdoc_files: []
53
-
54
- files:
43
+ files:
55
44
  - lib/em-posixmq.rb
45
+ - lib/em-posixmq/version.rb
56
46
  - test/test-em-posixmq-client.rb
57
47
  - test/test-em-posixmq-server.rb
58
48
  has_rdoc: true
59
49
  homepage: https://github.com/ibc/em-posixmq
60
50
  licenses: []
61
-
62
51
  post_install_message:
63
52
  rdoc_options: []
64
-
65
- require_paths:
53
+ require_paths:
66
54
  - lib
67
- required_ruby_version: !ruby/object:Gem::Requirement
55
+ required_ruby_version: !ruby/object:Gem::Requirement
68
56
  none: false
69
- requirements:
70
- - - ">="
71
- - !ruby/object:Gem::Version
72
- segments:
73
- - 1
74
- - 8
75
- - 7
57
+ requirements:
58
+ - - ! '>='
59
+ - !ruby/object:Gem::Version
76
60
  version: 1.8.7
77
- required_rubygems_version: !ruby/object:Gem::Requirement
61
+ required_rubygems_version: !ruby/object:Gem::Requirement
78
62
  none: false
79
- requirements:
80
- - - ">="
81
- - !ruby/object:Gem::Version
82
- segments:
83
- - 0
84
- version: "0"
63
+ requirements:
64
+ - - ! '>='
65
+ - !ruby/object:Gem::Version
66
+ version: '0'
85
67
  requirements: []
86
-
87
68
  rubyforge_project:
88
- rubygems_version: 1.3.7
69
+ rubygems_version: 1.5.3
89
70
  signing_key:
90
71
  specification_version: 3
91
72
  summary: posix_mq library integrated into EventMachine reactor for asynchronous reading
92
73
  test_files: []
93
-