agni 0.0.3 → 0.0.4
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/README.md +15 -6
- data/agni.gemspec +0 -1
- data/lib/agni/messenger.rb +6 -0
- data/lib/agni/version.rb +1 -1
- metadata +41 -22
data/README.md
CHANGED
@@ -70,11 +70,20 @@ queues to schedule work, report status, update data, and collect
|
|
70
70
|
metrics. Agni should, even in its current humble state, support
|
71
71
|
such a use case.
|
72
72
|
|
73
|
+
## Pre-installation of RabbitMQ
|
74
|
+
|
75
|
+
For Mac, you can use Homebrew via
|
76
|
+
`brew install rabbitmq`
|
77
|
+
|
78
|
+
Starting the server is as easy as
|
79
|
+
`rabbitmq-server`
|
80
|
+
which should start an AMQP server on port 5672 by default.
|
81
|
+
|
73
82
|
## Installation
|
74
83
|
|
75
84
|
Add this line to your application's Gemfile:
|
76
85
|
|
77
|
-
gem '
|
86
|
+
gem 'agni'
|
78
87
|
|
79
88
|
And then execute:
|
80
89
|
|
@@ -82,7 +91,7 @@ And then execute:
|
|
82
91
|
|
83
92
|
Or install it yourself as:
|
84
93
|
|
85
|
-
$ gem install
|
94
|
+
$ gem install agni
|
86
95
|
|
87
96
|
## Usage
|
88
97
|
|
@@ -90,14 +99,14 @@ If you're running an AMQP instance locally for testing, try the following.
|
|
90
99
|
|
91
100
|
Set up a subscriber:
|
92
101
|
|
93
|
-
require '
|
94
|
-
m = Agni::Messenger.new('amqp://localhost')
|
102
|
+
require 'agni'
|
103
|
+
m = Agni::Messenger.new('amqp://localhost') # port 5672 if you are using RabbitMQ's default
|
95
104
|
m.subscribe('test_queue') {|m,p| printf p}
|
96
105
|
|
97
106
|
Set up a publisher (in another Ruby instance, on another machine, etc.):
|
98
107
|
|
99
|
-
require '
|
100
|
-
m = Agni::Messenger.new('amqp://localhost')
|
108
|
+
require 'agni'
|
109
|
+
m = Agni::Messenger.new('amqp://localhost') # also port 5672 when using RabbitMQ's default
|
101
110
|
|
102
111
|
It's easy to send some messages. If you don't specify a priority,
|
103
112
|
they will default to a priority of 4.
|
data/agni.gemspec
CHANGED
data/lib/agni/messenger.rb
CHANGED
@@ -165,6 +165,12 @@ module Agni
|
|
165
165
|
end
|
166
166
|
end
|
167
167
|
|
168
|
+
# Safely shuts down this messenger instance and stops the event
|
169
|
+
# machine reactor.
|
170
|
+
def shutdown
|
171
|
+
EM.add_timer(2, lambda { @connection.close {EM.stop}})
|
172
|
+
end
|
173
|
+
|
168
174
|
# This method allows a client of the messenger to block on the
|
169
175
|
# execution of the EventMachine, so it can run in a context that
|
170
176
|
# is dedicated to running for the purpose of receiving messages.
|
data/lib/agni/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: agni
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-06-21 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
|
-
name:
|
16
|
-
requirement:
|
15
|
+
name: amqp
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,21 +21,15 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements:
|
25
|
-
- !ruby/object:Gem::Dependency
|
26
|
-
name: amqp
|
27
|
-
requirement: &5495260 !ruby/object:Gem::Requirement
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
28
25
|
none: false
|
29
26
|
requirements:
|
30
27
|
- - ! '>='
|
31
28
|
- !ruby/object:Gem::Version
|
32
29
|
version: '0'
|
33
|
-
type: :runtime
|
34
|
-
prerelease: false
|
35
|
-
version_requirements: *5495260
|
36
30
|
- !ruby/object:Gem::Dependency
|
37
31
|
name: algorithms
|
38
|
-
requirement:
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
39
33
|
none: false
|
40
34
|
requirements:
|
41
35
|
- - ! '>='
|
@@ -43,10 +37,15 @@ dependencies:
|
|
43
37
|
version: '0'
|
44
38
|
type: :runtime
|
45
39
|
prerelease: false
|
46
|
-
version_requirements:
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '0'
|
47
46
|
- !ruby/object:Gem::Dependency
|
48
47
|
name: log_mixin
|
49
|
-
requirement:
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
50
49
|
none: false
|
51
50
|
requirements:
|
52
51
|
- - ! '>='
|
@@ -54,10 +53,15 @@ dependencies:
|
|
54
53
|
version: '0'
|
55
54
|
type: :runtime
|
56
55
|
prerelease: false
|
57
|
-
version_requirements:
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ! '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
58
62
|
- !ruby/object:Gem::Dependency
|
59
63
|
name: rspec
|
60
|
-
requirement:
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
61
65
|
none: false
|
62
66
|
requirements:
|
63
67
|
- - ! '>='
|
@@ -65,10 +69,15 @@ dependencies:
|
|
65
69
|
version: '0'
|
66
70
|
type: :development
|
67
71
|
prerelease: false
|
68
|
-
version_requirements:
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ! '>='
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '0'
|
69
78
|
- !ruby/object:Gem::Dependency
|
70
79
|
name: pry
|
71
|
-
requirement:
|
80
|
+
requirement: !ruby/object:Gem::Requirement
|
72
81
|
none: false
|
73
82
|
requirements:
|
74
83
|
- - ! '>='
|
@@ -76,10 +85,15 @@ dependencies:
|
|
76
85
|
version: '0'
|
77
86
|
type: :development
|
78
87
|
prerelease: false
|
79
|
-
version_requirements:
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
90
|
+
requirements:
|
91
|
+
- - ! '>='
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: '0'
|
80
94
|
- !ruby/object:Gem::Dependency
|
81
95
|
name: mocha
|
82
|
-
requirement:
|
96
|
+
requirement: !ruby/object:Gem::Requirement
|
83
97
|
none: false
|
84
98
|
requirements:
|
85
99
|
- - ! '>='
|
@@ -87,7 +101,12 @@ dependencies:
|
|
87
101
|
version: '0'
|
88
102
|
type: :development
|
89
103
|
prerelease: false
|
90
|
-
version_requirements:
|
104
|
+
version_requirements: !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
106
|
+
requirements:
|
107
|
+
- - ! '>='
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '0'
|
91
110
|
description: A wrapper around the AMQP gem to support easy messaging between applications.
|
92
111
|
email:
|
93
112
|
- rpdillon@apartmentlist.com
|
@@ -130,7 +149,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
130
149
|
version: '0'
|
131
150
|
requirements: []
|
132
151
|
rubyforge_project:
|
133
|
-
rubygems_version: 1.8.
|
152
|
+
rubygems_version: 1.8.25
|
134
153
|
signing_key:
|
135
154
|
specification_version: 3
|
136
155
|
summary: Easy RabbitMQ Messaging
|