adhearsion-xmpp 1.0.0 → 1.0.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/CHANGELOG.md +3 -0
- data/README.md +1 -1
- data/lib/adhearsion/xmpp/connection.rb +20 -50
- data/lib/adhearsion/xmpp/plugin.rb +17 -41
- data/lib/adhearsion/xmpp/version.rb +1 -1
- metadata +5 -5
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -27,7 +27,7 @@ In your Adhearsion app configuration file, add the following values:
|
|
27
27
|
Adhearsion.config do |config|
|
28
28
|
config.xmpp.jid = "valid-jid"
|
29
29
|
config.xmpp.password = "valid-password"
|
30
|
-
config.xmpp.
|
30
|
+
config.xmpp.server = "valid-server"
|
31
31
|
config.xmpp.port = "valid-port"
|
32
32
|
end
|
33
33
|
```
|
@@ -1,63 +1,33 @@
|
|
1
|
-
require 'blather/client'
|
1
|
+
require 'blather/client/client'
|
2
|
+
require 'blather/client/dsl'
|
2
3
|
|
3
4
|
module Adhearsion
|
4
5
|
class XMPP
|
5
|
-
|
6
|
+
class Connection
|
6
7
|
|
7
|
-
|
8
|
+
include Blather::DSL
|
8
9
|
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
# @param [String] server
|
17
|
-
# @param [Integer] port
|
18
|
-
def start(jid, password, server, port)
|
19
|
-
Blather.logger = logger
|
20
|
-
setup_client_object jid, password, server, port
|
21
|
-
register_event_namespaces
|
22
|
-
register_default_client_handlers
|
23
|
-
Adhearsion::Events.register_callback(:after_initialized) do
|
24
|
-
connect
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
# Close the XMPP connection
|
29
|
-
def stop
|
30
|
-
shutdown
|
31
|
-
end
|
32
|
-
|
33
|
-
private
|
34
|
-
|
35
|
-
def setup_client_object(jid, password, server, port)
|
36
|
-
self.client = Blather::Client.setup(jid, password, server, port)
|
37
|
-
end
|
10
|
+
def initialize
|
11
|
+
Blather.logger = logger
|
12
|
+
Blather.default_log_level = :trace if Blather.respond_to? :default_log_level
|
13
|
+
register_default_client_handlers
|
14
|
+
Adhearsion::Events.after_initialized { connect }
|
15
|
+
Adhearsion::Events.shutdown { shutdown }
|
16
|
+
end
|
38
17
|
|
39
|
-
|
40
|
-
EventMachine.run {client.connect}
|
41
|
-
end
|
18
|
+
private
|
42
19
|
|
43
|
-
|
44
|
-
|
20
|
+
def connect
|
21
|
+
logger.info "Connecting to XMPP"
|
22
|
+
Adhearsion::Process.important_threads << Thread.new do
|
23
|
+
EventMachine.run { client.connect }
|
45
24
|
end
|
25
|
+
end
|
46
26
|
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
end
|
51
|
-
|
52
|
-
client.register_handler(:disconnected) do
|
53
|
-
if Adhearsion.status == :running
|
54
|
-
logger.warn "XMPP Disconnected. Reconnecting."
|
55
|
-
connect
|
56
|
-
end
|
57
|
-
# TODO: fix this to reconnect XMPP cleanly
|
58
|
-
end
|
27
|
+
def register_default_client_handlers
|
28
|
+
client.register_handler(:ready) do
|
29
|
+
logger.info "Connected to XMPP server! Send messages to #{client.jid.stripped}."
|
59
30
|
end
|
60
|
-
|
61
31
|
end
|
62
32
|
|
63
33
|
end
|
@@ -4,11 +4,11 @@ module Adhearsion
|
|
4
4
|
|
5
5
|
# Default configuration for XMPP connection.
|
6
6
|
config :xmpp do
|
7
|
-
use_punchblock true
|
8
|
-
jid nil
|
9
|
-
password nil
|
10
|
-
server nil
|
11
|
-
port nil
|
7
|
+
use_punchblock true, :desc => "Re-use Punchblock's XMPP connection. Boolean."
|
8
|
+
jid nil, :desc => "Client/component JID to connect to. String."
|
9
|
+
password nil, :desc => "Password identifier. String."
|
10
|
+
server nil, :desc => "XMPP server hostname. May be omitted if server can be determined from JID. String."
|
11
|
+
port nil, :desc => "XMPP server port. May be omitted if server can be determined from JID. Integer."
|
12
12
|
end
|
13
13
|
|
14
14
|
# Include the XMPP service in plugins initialization process
|
@@ -19,50 +19,26 @@ module Adhearsion
|
|
19
19
|
end unless Adhearsion::XMPP.handlers.nil?
|
20
20
|
end
|
21
21
|
|
22
|
-
|
23
|
-
|
24
|
-
end
|
22
|
+
delegate :config, :to => self
|
23
|
+
delegate :use_punchblock, :to => :config
|
25
24
|
|
26
25
|
def initialize
|
27
|
-
|
28
|
-
init_blather unless @config.use_punchblock
|
29
|
-
end
|
30
|
-
|
31
|
-
def run_plugin
|
32
|
-
run_blather unless @config.use_punchblock
|
26
|
+
init_blather config.jid, config.password, config.server, config.port unless use_punchblock
|
33
27
|
end
|
34
28
|
|
35
|
-
def
|
36
|
-
|
37
|
-
|
38
|
-
end
|
39
|
-
|
40
|
-
def init_blather
|
41
|
-
raise "Must supply a jid argument to the XMPP configuration" if (@config.jid.nil? || @config.jid.empty?)
|
42
|
-
raise "Must supply a password argument to the XMPP configuration" if (@config.password.nil? || @config.password.empty?)
|
29
|
+
def init_blather(jid, password, server, port)
|
30
|
+
raise "Must supply a jid to the XMPP configuration" unless jid.present?
|
31
|
+
raise "Must supply a password to the XMPP configuration" unless password.present?
|
43
32
|
|
44
|
-
|
45
|
-
Connection.start @config.jid, @config.password, @config.server, @config.port
|
46
|
-
end
|
47
|
-
|
48
|
-
##
|
49
|
-
# Stop the XMPP connection
|
50
|
-
def stop
|
51
|
-
stop_blather unless @config.use_punchblock
|
52
|
-
end
|
53
|
-
|
54
|
-
def stop_blather
|
55
|
-
Connection.stop
|
33
|
+
connection.setup jid, password, server, port
|
56
34
|
end
|
57
35
|
|
58
36
|
def connection
|
59
|
-
|
60
|
-
PunchblockPlugin.connection
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
def client
|
65
|
-
@config.use_punchblock ? PunchblockPlugin.client : Connection.client
|
37
|
+
if use_punchblock
|
38
|
+
PunchblockPlugin.connection
|
39
|
+
else
|
40
|
+
@connection ||= Connection.new
|
41
|
+
end
|
66
42
|
end
|
67
43
|
end
|
68
44
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: adhearsion-xmpp
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -12,7 +12,7 @@ authors:
|
|
12
12
|
autorequire:
|
13
13
|
bindir: bin
|
14
14
|
cert_chain: []
|
15
|
-
date: 2012-
|
15
|
+
date: 2012-10-11 00:00:00.000000000 Z
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|
18
18
|
name: adhearsion
|
@@ -152,7 +152,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
152
152
|
version: '0'
|
153
153
|
segments:
|
154
154
|
- 0
|
155
|
-
hash:
|
155
|
+
hash: 844702008144568214
|
156
156
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
157
157
|
none: false
|
158
158
|
requirements:
|
@@ -161,10 +161,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
161
161
|
version: '0'
|
162
162
|
segments:
|
163
163
|
- 0
|
164
|
-
hash:
|
164
|
+
hash: 844702008144568214
|
165
165
|
requirements: []
|
166
166
|
rubyforge_project: adhearsion-xmpp
|
167
|
-
rubygems_version: 1.8.
|
167
|
+
rubygems_version: 1.8.23
|
168
168
|
signing_key:
|
169
169
|
specification_version: 3
|
170
170
|
summary: Send and receive XMPP messages in your Adhearsion application
|