qswarm 0.0.5 → 0.0.6
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/lib/qswarm/listener.rb +3 -3
- data/lib/qswarm/speaker.rb +7 -2
- data/lib/qswarm/speakers/http.rb +17 -7
- data/lib/qswarm/version.rb +1 -1
- metadata +12 -12
data/lib/qswarm/listener.rb
CHANGED
@@ -56,11 +56,11 @@ module Qswarm
|
|
56
56
|
end
|
57
57
|
|
58
58
|
def speak(name, args = nil, &block)
|
59
|
-
if !args.nil?
|
59
|
+
if !args[:type].nil?
|
60
60
|
require "qswarm/speakers/#{args[:type].downcase}"
|
61
|
-
@speakers << eval("Qswarm::Speakers::#{args[:type].capitalize}").new(self, name, &block)
|
61
|
+
@speakers << eval("Qswarm::Speakers::#{args[:type].capitalize}").new(self, name, args, &block)
|
62
62
|
else
|
63
|
-
@speakers << Qswarm::Speaker.new(self, name, &block)
|
63
|
+
@speakers << Qswarm::Speaker.new(self, name, args, &block)
|
64
64
|
end
|
65
65
|
logger.info "Registering speaker: #{name} < #{@name}"
|
66
66
|
end
|
data/lib/qswarm/speaker.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'json'
|
2
|
+
require 'ostruct'
|
2
3
|
|
3
4
|
require 'qswarm/dsl'
|
4
5
|
|
@@ -10,12 +11,12 @@ module Qswarm
|
|
10
11
|
dsl_accessor :broker
|
11
12
|
attr_reader :agent, :metadata, :heard, :name
|
12
13
|
|
13
|
-
def initialize(listener, name, &block)
|
14
|
+
def initialize(listener, name, args, &block)
|
14
15
|
@listener = listener
|
15
16
|
@agent = @listener.agent
|
16
17
|
@name = name.to_s unless name.nil?
|
17
18
|
@block = block
|
18
|
-
|
19
|
+
@args = OpenStruct.new args
|
19
20
|
end
|
20
21
|
|
21
22
|
def parse(metadata, payload)
|
@@ -50,6 +51,10 @@ module Qswarm
|
|
50
51
|
|
51
52
|
def run
|
52
53
|
end
|
54
|
+
|
55
|
+
def arg(name)
|
56
|
+
@args[name]
|
57
|
+
end
|
53
58
|
|
54
59
|
private
|
55
60
|
|
data/lib/qswarm/speakers/http.rb
CHANGED
@@ -6,7 +6,7 @@ module Qswarm
|
|
6
6
|
class Http < Qswarm::Speaker
|
7
7
|
@@connections = {}
|
8
8
|
|
9
|
-
def initialize(listener, name, &block)
|
9
|
+
def initialize(listener, name, args, &block)
|
10
10
|
@uri = URI.parse(name)
|
11
11
|
@uri.host = 'localhost' if @uri.host.nil?
|
12
12
|
super
|
@@ -17,29 +17,39 @@ module Qswarm
|
|
17
17
|
end
|
18
18
|
|
19
19
|
def run
|
20
|
-
connect
|
21
20
|
end
|
22
21
|
|
23
22
|
private
|
24
|
-
|
25
|
-
def
|
23
|
+
|
24
|
+
def auth?
|
25
|
+
|
26
26
|
end
|
27
27
|
|
28
28
|
def publish(format, msg)
|
29
29
|
logger.debug "Sending '#{msg}' to #{@name}"
|
30
|
+
head = @args.user.nil? ? {} : { 'authorization' => [@args.user, @args.password] }
|
30
31
|
|
31
32
|
case format
|
32
33
|
when :get
|
33
34
|
if msg.is_a? Hash
|
34
|
-
http = EventMachine::HttpRequest.new(@uri).get :query => msg
|
35
|
+
http = EventMachine::HttpRequest.new(@uri).get :head => head, :query => msg
|
35
36
|
else
|
36
|
-
http = EventMachine::HttpRequest.new(URI.join(@uri.to_s, msg)).get
|
37
|
+
http = EventMachine::HttpRequest.new(URI.join(@uri.to_s, msg)).get :head => head
|
38
|
+
end
|
39
|
+
http.errback do |err|
|
40
|
+
logger.error "Error sending #{msg} to #{@name}: #{err}"
|
41
|
+
end
|
42
|
+
http.callback do
|
43
|
+
logger.debug "#{@name} #{http.response_header.status} #{http.response}"
|
37
44
|
end
|
45
|
+
|
46
|
+
when :post
|
47
|
+
http = EventMachine::HttpRequest.new(@uri).post :head => head, :body => msg
|
38
48
|
http.errback do |err|
|
39
49
|
logger.error "Error sending #{msg} to #{@name}: #{err}"
|
40
50
|
end
|
41
51
|
http.callback do
|
42
|
-
logger.debug "#{http.response_header.status} #{http.response}"
|
52
|
+
logger.debug "#{@name} #{http.response_header.status} #{http.response}"
|
43
53
|
end
|
44
54
|
end
|
45
55
|
end
|
data/lib/qswarm/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: qswarm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.6
|
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: 2012-04-
|
12
|
+
date: 2012-04-16 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: eventmachine
|
16
|
-
requirement: &
|
16
|
+
requirement: &70161152695980 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70161152695980
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: amqp
|
27
|
-
requirement: &
|
27
|
+
requirement: &70161152695560 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70161152695560
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: uuid
|
38
|
-
requirement: &
|
38
|
+
requirement: &70161152695120 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70161152695120
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: json
|
49
|
-
requirement: &
|
49
|
+
requirement: &70161152694640 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: '0'
|
55
55
|
type: :runtime
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *70161152694640
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: andand
|
60
|
-
requirement: &
|
60
|
+
requirement: &70161152694220 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ! '>='
|
@@ -65,7 +65,7 @@ dependencies:
|
|
65
65
|
version: '0'
|
66
66
|
type: :runtime
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *70161152694220
|
69
69
|
description: Framework for writing distributed agents hanging off an AMQP message
|
70
70
|
bus
|
71
71
|
email:
|