magicbroker 0.2.0 → 0.2.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/Manifest +3 -3
- data/README.md +88 -0
- data/Rakefile +1 -1
- data/lib/client/client.rb +11 -4
- data/lib/{broker.rb → magicbroker.rb} +1 -1
- data/magicbroker.gemspec +4 -4
- metadata +7 -7
- data/README.rdoc +0 -1
data/Manifest
CHANGED
data/README.md
ADDED
@@ -0,0 +1,88 @@
|
|
1
|
+
|
2
|
+
Ruby gem for subscribing, unsubscribing and sending events to the Magic Broker 2.
|
3
|
+
|
4
|
+
## Getting Started:
|
5
|
+
|
6
|
+
This gem is already published on rubygems.org, so you can actually just include it in your application.
|
7
|
+
|
8
|
+
### Step 1
|
9
|
+
|
10
|
+
If you're writting a Rails application, first add the following line to your Gemfile file:
|
11
|
+
|
12
|
+
```
|
13
|
+
gem 'magicbroker', '0.2.0'
|
14
|
+
```
|
15
|
+
|
16
|
+
### Step 2
|
17
|
+
|
18
|
+
Then you can include it in any controller like so:
|
19
|
+
```
|
20
|
+
require 'magicbroker'
|
21
|
+
```
|
22
|
+
|
23
|
+
### Other ways:
|
24
|
+
|
25
|
+
If you want to download the latest version of the gem, fork this repository and you can find the packaged gem in the /pkg directory.
|
26
|
+
|
27
|
+
|
28
|
+
## Using the gem where it should be used: in a Rails application
|
29
|
+
|
30
|
+
For ease you can declare a global broker entity, in /apps/controllers/application_controller.rb:
|
31
|
+
|
32
|
+
```
|
33
|
+
require 'magicbroker'
|
34
|
+
def magicbroker
|
35
|
+
@magicbroker = Magicbroker::Client.new("localhost:8800/osgibroker", "clientID", "topic")
|
36
|
+
end
|
37
|
+
```
|
38
|
+
|
39
|
+
Then you can use your global object. For example, sending events:
|
40
|
+
|
41
|
+
```
|
42
|
+
magicbroker.subscribe()
|
43
|
+
hash = {:key1 => "value1", :key2 => "value2", :key3 => "value3"}
|
44
|
+
magicbroker.send_events(hash)
|
45
|
+
```
|
46
|
+
|
47
|
+
Unsubscribing:
|
48
|
+
|
49
|
+
```
|
50
|
+
magicbroker.unsubscribe()
|
51
|
+
```
|
52
|
+
|
53
|
+
Querying events (default timeout of 1 second). You can delegate this task to a Resque worker running in the background:
|
54
|
+
|
55
|
+
```
|
56
|
+
magicbroker.receive_events(nil)
|
57
|
+
```
|
58
|
+
|
59
|
+
### Using without a global object (many broker objects)
|
60
|
+
|
61
|
+
You can initialize a new magicbroker object, subscribe, receive events and send a key/value pair event:
|
62
|
+
|
63
|
+
```
|
64
|
+
require 'magicbroker'
|
65
|
+
myentity = Magicbroker::Client.new("localhost:8800/osgibroker", "clientID", "topic")
|
66
|
+
myentity.subscribe()
|
67
|
+
myentity.receive_events(20) #define a timeout of 20 seconds
|
68
|
+
myhash = {:key => "value"}
|
69
|
+
myentity.send_events(myhash)
|
70
|
+
```
|
71
|
+
|
72
|
+
## Installing from source
|
73
|
+
|
74
|
+
This gem was built using 'echoe', to install the gem in your system run:
|
75
|
+
|
76
|
+
```
|
77
|
+
rake manifest #To first test the file.
|
78
|
+
rake install #To install in your system.
|
79
|
+
```
|
80
|
+
|
81
|
+
## Publishing to RubyForge
|
82
|
+
|
83
|
+
ATTENTION: this is only for developers. You can publish the gem to rubygems.org by running the task:
|
84
|
+
|
85
|
+
```
|
86
|
+
rake release
|
87
|
+
```
|
88
|
+
|
data/Rakefile
CHANGED
@@ -2,7 +2,7 @@ require 'rubygems'
|
|
2
2
|
require 'rake'
|
3
3
|
require 'echoe'
|
4
4
|
|
5
|
-
Echoe.new('magicbroker', '0.2.
|
5
|
+
Echoe.new('magicbroker', '0.2.1') do |p|
|
6
6
|
p.description = "The MAGIC-Broker-2 gem"
|
7
7
|
p.url = "https://github.com/magic-liam/broker-gem-0.2.0.git"
|
8
8
|
p.author = "Roberto Calderon"
|
data/lib/client/client.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
require 'net/http'
|
2
2
|
require 'uri'
|
3
3
|
|
4
|
-
module
|
4
|
+
module Magicbroker
|
5
5
|
|
6
6
|
class Client
|
7
7
|
|
@@ -29,7 +29,14 @@ module Broker
|
|
29
29
|
Net::HTTP.get_print URI.parse(servlet)
|
30
30
|
print servlet
|
31
31
|
end
|
32
|
-
|
32
|
+
|
33
|
+
def receive_events(t)
|
34
|
+
t.nil? ? t=1 : t=t
|
35
|
+
print
|
36
|
+
servlet = 'http://'+@server+'/event?clientID='+@clientID+'&topic='+@topic+'&timeOut='+t.to_s()
|
37
|
+
Net::HTTP.get_print URI.parse(servlet)
|
38
|
+
print servlet
|
39
|
+
end
|
40
|
+
|
33
41
|
end
|
34
|
-
|
35
|
-
end
|
42
|
+
end
|
data/magicbroker.gemspec
CHANGED
@@ -2,17 +2,17 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = "magicbroker"
|
5
|
-
s.version = "0.2.
|
5
|
+
s.version = "0.2.1"
|
6
6
|
|
7
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
|
8
8
|
s.authors = ["Roberto Calderon"]
|
9
9
|
s.date = "2012-08-11"
|
10
10
|
s.description = "The MAGIC-Broker-2 gem"
|
11
11
|
s.email = "roberto@robertocalderon.ca"
|
12
|
-
s.extra_rdoc_files = ["README.
|
13
|
-
s.files = ["README.
|
12
|
+
s.extra_rdoc_files = ["README.md", "lib/client/client.rb", "lib/magicbroker.rb"]
|
13
|
+
s.files = ["Manifest", "README.md", "Rakefile", "lib/client/client.rb", "lib/magicbroker.rb", "magicbroker.gemspec"]
|
14
14
|
s.homepage = "https://github.com/magic-liam/broker-gem-0.2.0.git"
|
15
|
-
s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Magicbroker", "--main", "README.
|
15
|
+
s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Magicbroker", "--main", "README.md"]
|
16
16
|
s.require_paths = ["lib"]
|
17
17
|
s.rubyforge_project = "magicbroker"
|
18
18
|
s.rubygems_version = "1.8.24"
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: magicbroker
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -16,15 +16,15 @@ email: roberto@robertocalderon.ca
|
|
16
16
|
executables: []
|
17
17
|
extensions: []
|
18
18
|
extra_rdoc_files:
|
19
|
-
- README.
|
20
|
-
- lib/broker.rb
|
19
|
+
- README.md
|
21
20
|
- lib/client/client.rb
|
21
|
+
- lib/magicbroker.rb
|
22
22
|
files:
|
23
|
-
-
|
23
|
+
- Manifest
|
24
|
+
- README.md
|
24
25
|
- Rakefile
|
25
|
-
- lib/broker.rb
|
26
26
|
- lib/client/client.rb
|
27
|
-
-
|
27
|
+
- lib/magicbroker.rb
|
28
28
|
- magicbroker.gemspec
|
29
29
|
homepage: https://github.com/magic-liam/broker-gem-0.2.0.git
|
30
30
|
licenses: []
|
@@ -35,7 +35,7 @@ rdoc_options:
|
|
35
35
|
- --title
|
36
36
|
- Magicbroker
|
37
37
|
- --main
|
38
|
-
- README.
|
38
|
+
- README.md
|
39
39
|
require_paths:
|
40
40
|
- lib
|
41
41
|
required_ruby_version: !ruby/object:Gem::Requirement
|
data/README.rdoc
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
Ruby gem for subscribing, unsubscribing and sending events to the Magic Broker 2
|