switchboard 0.1.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.
- data/History.txt +3 -0
- data/README.markdown +59 -0
- data/Rakefile +30 -0
- data/bin/switchboard +35 -0
- data/examples/echo_bot.rb +7 -0
- data/lib/switchboard.rb +1 -0
- data/lib/switchboard/client.rb +92 -0
- data/lib/switchboard/colors.rb +10 -0
- data/lib/switchboard/commands.rb +12 -0
- data/lib/switchboard/commands/command.rb +85 -0
- data/lib/switchboard/commands/config.rb +1 -0
- data/lib/switchboard/commands/config/config.rb +20 -0
- data/lib/switchboard/commands/default.rb +40 -0
- data/lib/switchboard/commands/disco.rb +3 -0
- data/lib/switchboard/commands/disco/disco.rb +13 -0
- data/lib/switchboard/commands/disco/info.rb +39 -0
- data/lib/switchboard/commands/disco/items.rb +30 -0
- data/lib/switchboard/commands/grep.rb +23 -0
- data/lib/switchboard/commands/help.rb +1 -0
- data/lib/switchboard/commands/help/help.rb +15 -0
- data/lib/switchboard/commands/last.rb +1 -0
- data/lib/switchboard/commands/last/last.rb +34 -0
- data/lib/switchboard/commands/pep.rb +3 -0
- data/lib/switchboard/commands/pep/location.rb +97 -0
- data/lib/switchboard/commands/pep/pep.rb +7 -0
- data/lib/switchboard/commands/pep/tune.rb +85 -0
- data/lib/switchboard/commands/pubsub.rb +16 -0
- data/lib/switchboard/commands/pubsub/affiliations.rb +34 -0
- data/lib/switchboard/commands/pubsub/config.rb +42 -0
- data/lib/switchboard/commands/pubsub/create.rb +41 -0
- data/lib/switchboard/commands/pubsub/delete.rb +32 -0
- data/lib/switchboard/commands/pubsub/info.rb +48 -0
- data/lib/switchboard/commands/pubsub/items.rb +40 -0
- data/lib/switchboard/commands/pubsub/listen.rb +20 -0
- data/lib/switchboard/commands/pubsub/nodes.rb +37 -0
- data/lib/switchboard/commands/pubsub/options.rb +40 -0
- data/lib/switchboard/commands/pubsub/publish.rb +44 -0
- data/lib/switchboard/commands/pubsub/pubsub.rb +25 -0
- data/lib/switchboard/commands/pubsub/purge.rb +32 -0
- data/lib/switchboard/commands/pubsub/retract.rb +38 -0
- data/lib/switchboard/commands/pubsub/subscribe.rb +34 -0
- data/lib/switchboard/commands/pubsub/subscriptions.rb +35 -0
- data/lib/switchboard/commands/pubsub/unsubscribe.rb +30 -0
- data/lib/switchboard/commands/register.rb +40 -0
- data/lib/switchboard/commands/roster.rb +5 -0
- data/lib/switchboard/commands/roster/add.rb +27 -0
- data/lib/switchboard/commands/roster/list.rb +26 -0
- data/lib/switchboard/commands/roster/online.rb +28 -0
- data/lib/switchboard/commands/roster/remove.rb +25 -0
- data/lib/switchboard/commands/roster/roster.rb +7 -0
- data/lib/switchboard/commands/unregister.rb +21 -0
- data/lib/switchboard/component.rb +36 -0
- data/lib/switchboard/core.rb +311 -0
- data/lib/switchboard/ext/delegate.rb +21 -0
- data/lib/switchboard/ext/instance_exec.rb +16 -0
- data/lib/switchboard/helpers/oauth_pubsub.rb +44 -0
- data/lib/switchboard/helpers/pubsub.rb +28 -0
- data/lib/switchboard/jacks.rb +7 -0
- data/lib/switchboard/jacks/auto_accept.rb +16 -0
- data/lib/switchboard/jacks/debug.rb +17 -0
- data/lib/switchboard/jacks/echo.rb +7 -0
- data/lib/switchboard/jacks/notify.rb +15 -0
- data/lib/switchboard/jacks/oauth_pubsub.rb +23 -0
- data/lib/switchboard/jacks/pubsub.rb +21 -0
- data/lib/switchboard/jacks/roster_debug.rb +23 -0
- data/lib/switchboard/settings.rb +49 -0
- data/lib/switchboard/switchboard.rb +12 -0
- data/lib/switchboard/version.rb +3 -0
- data/switchboard.gemspec +15 -0
- metadata +136 -0
@@ -0,0 +1,32 @@
|
|
1
|
+
module Switchboard
|
2
|
+
module Commands
|
3
|
+
class PubSub
|
4
|
+
class Delete < Switchboard::Command
|
5
|
+
description "Deletes a pubsub node"
|
6
|
+
|
7
|
+
def self.run!
|
8
|
+
switchboard = Switchboard::Client.new do
|
9
|
+
defer :node_deleted do
|
10
|
+
delete_node(OPTIONS["pubsub.node"])
|
11
|
+
end
|
12
|
+
|
13
|
+
def node_deleted(success)
|
14
|
+
if success
|
15
|
+
puts "Node '#{OPTIONS["pubsub.node"]}' was deleted."
|
16
|
+
else
|
17
|
+
puts "Node '#{OPTIONS["pubsub.node"]}' could not be deleted."
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
if defined?(OAuth) && OPTIONS["oauth"]
|
23
|
+
switchboard.plug!(OAuthPubSubJack)
|
24
|
+
else
|
25
|
+
switchboard.plug!(PubSubJack)
|
26
|
+
end
|
27
|
+
switchboard.run!
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
module Switchboard
|
2
|
+
module Commands
|
3
|
+
class PubSub
|
4
|
+
class Info < Switchboard::Command
|
5
|
+
hide! # Jabber::PubSub::NodeBrowser is broken in xmpp4r-0.4.0
|
6
|
+
description "Gets information about a pubsub resource"
|
7
|
+
|
8
|
+
def self.run!
|
9
|
+
switchboard = Switchboard::Client.new do
|
10
|
+
defer :info_retrieved do
|
11
|
+
browser = Jabber::PubSub::NodeBrowser.new(client)
|
12
|
+
browser.get_info(OPTIONS["pubsub.server"], OPTIONS["pubsub.node"])
|
13
|
+
end
|
14
|
+
|
15
|
+
def info_retrieved(info)
|
16
|
+
if info
|
17
|
+
if OPTIONS["pubsub.node"]
|
18
|
+
puts "Info for '#{OPTIONS["pubsub.node"]}' on '#{OPTIONS["pubsub.server"]}'"
|
19
|
+
else
|
20
|
+
puts "Info for '#{OPTIONS["pubsub.server"]}'"
|
21
|
+
end
|
22
|
+
info.each do |k,v|
|
23
|
+
if v.is_a?(Array)
|
24
|
+
puts " #{k}:"
|
25
|
+
v.each do |v2|
|
26
|
+
puts " #{v2}"
|
27
|
+
end
|
28
|
+
else
|
29
|
+
puts " #{k}: #{v}"
|
30
|
+
end
|
31
|
+
end
|
32
|
+
else
|
33
|
+
puts "Info could not be loaded for '#{OPTIONS["pubsub.server"]}'"
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
if defined?(OAuth) && OPTIONS["oauth"]
|
39
|
+
switchboard.plug!(OAuthPubSubJack)
|
40
|
+
else
|
41
|
+
switchboard.plug!(PubSubJack)
|
42
|
+
end
|
43
|
+
switchboard.run!
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
module Switchboard
|
2
|
+
module Commands
|
3
|
+
class PubSub
|
4
|
+
class Items < Switchboard::Command
|
5
|
+
description "Get items from a pubsub node"
|
6
|
+
|
7
|
+
def self.options(opts)
|
8
|
+
super(opts)
|
9
|
+
opts.on("--item-count=count", Integer, "Specifies the number of items to retrieve.") { |v| OPTIONS["pubsub.items.count"] = v }
|
10
|
+
end
|
11
|
+
|
12
|
+
def self.run!
|
13
|
+
switchboard = Switchboard::Client.new do
|
14
|
+
defer :items_retrieved do
|
15
|
+
get_items_from(OPTIONS["pubsub.node"], OPTIONS["pubsub.items.count"])
|
16
|
+
end
|
17
|
+
|
18
|
+
def items_retrieved(items)
|
19
|
+
if items && items.any?
|
20
|
+
puts "Items:"
|
21
|
+
items.each do |id, item|
|
22
|
+
puts [id, item].compact * ": "
|
23
|
+
end
|
24
|
+
else
|
25
|
+
puts "No items available for node '#{OPTIONS["pubsub.node"]}'."
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
if defined?(OAuth) && OPTIONS["oauth"]
|
31
|
+
switchboard.plug!(OAuthPubSubJack)
|
32
|
+
else
|
33
|
+
switchboard.plug!(PubSubJack)
|
34
|
+
end
|
35
|
+
switchboard.run!
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module Switchboard
|
2
|
+
module Commands
|
3
|
+
class PubSub
|
4
|
+
class Listen < Switchboard::Command
|
5
|
+
description "Listens for pubsub events"
|
6
|
+
|
7
|
+
def self.run!
|
8
|
+
switchboard = Switchboard::Client.new
|
9
|
+
switchboard.plug!(PubSubJack)
|
10
|
+
|
11
|
+
switchboard.on_pubsub_event do |event|
|
12
|
+
puts event.to_s
|
13
|
+
end
|
14
|
+
|
15
|
+
switchboard.run!
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
module Switchboard
|
2
|
+
module Commands
|
3
|
+
class PubSub
|
4
|
+
class Nodes < Switchboard::Command
|
5
|
+
hide! # Jabber::PubSub::NodeBrowser is broken in xmpp4r-0.4.0
|
6
|
+
description "Lists available pubsub nodes (maybe use pubsub.<server>)"
|
7
|
+
|
8
|
+
def self.run!
|
9
|
+
switchboard = Switchboard::Client.new do
|
10
|
+
defer :nodes_retrieved do
|
11
|
+
browser = Jabber::PubSub::NodeBrowser.new(client)
|
12
|
+
browser.nodes(OPTIONS["pubsub.server"])
|
13
|
+
end
|
14
|
+
|
15
|
+
def nodes_retrieved(nodes)
|
16
|
+
if nodes && nodes.compact! && nodes.any?
|
17
|
+
puts "Nodes available on '#{OPTIONS["pubsub.server"]}':"
|
18
|
+
nodes.each do |node|
|
19
|
+
puts " #{node.to_s}"
|
20
|
+
end
|
21
|
+
else
|
22
|
+
puts "No nodes are available on '#{OPTIONS["pubsub.server"]}'."
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
if defined?(OAuth) && OPTIONS["oauth"]
|
28
|
+
switchboard.plug!(OAuthPubSubJack)
|
29
|
+
else
|
30
|
+
switchboard.plug!(PubSubJack)
|
31
|
+
end
|
32
|
+
switchboard.run!
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
module Switchboard
|
2
|
+
module Commands
|
3
|
+
class PubSub
|
4
|
+
class Options < Switchboard::Command
|
5
|
+
description "Gets subscription options for a pubsub node"
|
6
|
+
|
7
|
+
def self.options(opts)
|
8
|
+
super(opts)
|
9
|
+
opts.on("--subscriber=jid", String, "Specifies the subscriber to retrieve options for.") { |v| OPTIONS["pubsub.subscriber"] = v }
|
10
|
+
end
|
11
|
+
|
12
|
+
def self.run!
|
13
|
+
switchboard = Switchboard::Client.new do
|
14
|
+
defer :options_retrieved do
|
15
|
+
get_options_from(OPTIONS["pubsub.node"], OPTIONS["pubsub.subscriber"] || OPTIONS["jid"])
|
16
|
+
end
|
17
|
+
|
18
|
+
def options_retrieved(options)
|
19
|
+
if options
|
20
|
+
puts "Options for subscription by '#{OPTIONS["pubsub.subscriber"] || OPTIONS["jid"]}' to node '#{options.node}':"
|
21
|
+
options.options.each do |k,v|
|
22
|
+
puts " " + [k, v] * ": "
|
23
|
+
end
|
24
|
+
else
|
25
|
+
puts "Could not load options for subscription by '#{OPTIONS["pubsub.subscriber"] || OPTIONS["jid"]}' to node '#{OPTIONS["pubsub.node"]}'."
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
if defined?(OAuth) && OPTIONS["oauth"]
|
31
|
+
switchboard.plug!(OAuthPubSubJack)
|
32
|
+
else
|
33
|
+
switchboard.plug!(PubSubJack)
|
34
|
+
end
|
35
|
+
switchboard.run!
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
module Switchboard
|
2
|
+
module Commands
|
3
|
+
class PubSub
|
4
|
+
class Publish < Switchboard::Command
|
5
|
+
description "Publish to a pubsub node"
|
6
|
+
|
7
|
+
def self.options(opts)
|
8
|
+
super(opts)
|
9
|
+
opts.on("--item-id=id", String, "Specifies the item id to use.") { |v| OPTIONS["pubsub.publish.id"] = v }
|
10
|
+
end
|
11
|
+
|
12
|
+
def self.run!
|
13
|
+
switchboard = Switchboard::Client.new do
|
14
|
+
defer :item_published do
|
15
|
+
item = Jabber::PubSub::Item.new
|
16
|
+
item.text = STDIN.read
|
17
|
+
if OPTIONS["pubsub.publish.id"]
|
18
|
+
publish_item_with_id_to(OPTIONS["pubsub.node"], item, OPTIONS["pubsub.publish.id"])
|
19
|
+
else
|
20
|
+
publish_item_to(OPTIONS["pubsub.node"], item)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
def item_published(success)
|
25
|
+
# puts "Result: #{success.to_s}"
|
26
|
+
if success
|
27
|
+
puts "Item was published." # TODO include id
|
28
|
+
else
|
29
|
+
puts "Item could not be published."
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
if defined?(OAuth) && OPTIONS["oauth"]
|
35
|
+
switchboard.plug!(OAuthPubSubJack)
|
36
|
+
else
|
37
|
+
switchboard.plug!(PubSubJack)
|
38
|
+
end
|
39
|
+
switchboard.run!
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
module Switchboard
|
2
|
+
module Commands
|
3
|
+
class PubSub < Switchboard::Command
|
4
|
+
description "Pubsub node manipulation"
|
5
|
+
|
6
|
+
def self.help
|
7
|
+
"These are the more extensive instructions for using the pubsub command."
|
8
|
+
end
|
9
|
+
|
10
|
+
def self.options(opts)
|
11
|
+
super(opts)
|
12
|
+
opts.on("--node=node", String, "Specifies the PubSub node to use.") { |v| OPTIONS["pubsub.node"] = v }
|
13
|
+
opts.on("--server=server", String, "Specifies the PubSub server to use.") { |v| OPTIONS["pubsub.server"] = v }
|
14
|
+
if defined?(OAuth)
|
15
|
+
opts.on("--oauth", "Sign requests using OAuth.") { OPTIONS["oauth"] = true }
|
16
|
+
opts.on("--oauth-consumer-key=key", String, "Specifies the OAuth consumer key to use.") { |v| OPTIONS["oauth.consumer_key"] = v }
|
17
|
+
opts.on("--oauth-consumer-secret=secret", String, "Specifies the OAuth consumer secret to use.") { |v| OPTIONS["oauth.consumer_secret"] = v }
|
18
|
+
opts.on("--oauth-token=token", String, "Specifies the OAuth token to use.") { |v| OPTIONS["oauth.token"] = v }
|
19
|
+
opts.on("--oauth-token-secret=secret", String, "Specifies the OAuth token secret to use.") { |v| OPTIONS["oauth.token_secret"] = v }
|
20
|
+
end
|
21
|
+
opts
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
module Switchboard
|
2
|
+
module Commands
|
3
|
+
class PubSub
|
4
|
+
class Purge < Switchboard::Command
|
5
|
+
description "Purges a pubsub node"
|
6
|
+
|
7
|
+
def self.run!
|
8
|
+
switchboard = Switchboard::Client.new do
|
9
|
+
defer :node_purged do
|
10
|
+
purge_items_from(OPTIONS["pubsub.node"])
|
11
|
+
end
|
12
|
+
|
13
|
+
def node_purged(success)
|
14
|
+
if success
|
15
|
+
puts "Node '#{OPTIONS["pubsub.node"]}' was successfully purged."
|
16
|
+
else
|
17
|
+
puts "Could not purge node '#{OPTIONS["pubsub.node"]}'."
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
if defined?(OAuth) && OPTIONS["oauth"]
|
23
|
+
switchboard.plug!(OAuthPubSubJack)
|
24
|
+
else
|
25
|
+
switchboard.plug!(PubSubJack)
|
26
|
+
end
|
27
|
+
switchboard.run!
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
module Switchboard
|
2
|
+
module Commands
|
3
|
+
class PubSub
|
4
|
+
class Retract < Switchboard::Command
|
5
|
+
description "Retracts an item from a pubsub node"
|
6
|
+
|
7
|
+
def self.options(opts)
|
8
|
+
super(opts)
|
9
|
+
opts.on("--item-id=id", String, "Specifies the item id to retract.") { |v| OPTIONS["pubsub.retract.id"] = v }
|
10
|
+
end
|
11
|
+
|
12
|
+
def self.run!
|
13
|
+
switchboard = Switchboard::Client.new do
|
14
|
+
defer :item_retracted do
|
15
|
+
delete_item_from(OPTIONS["pubsub.node"], OPTIONS["pubsub.retract.id"])
|
16
|
+
end
|
17
|
+
|
18
|
+
def item_retracted(success)
|
19
|
+
# puts "Result: #{success.to_s}"
|
20
|
+
if success
|
21
|
+
puts "Item was retracted." # TODO with id?
|
22
|
+
else
|
23
|
+
puts "Item could not be retracted."
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
if defined?(OAuth) && OPTIONS["oauth"]
|
29
|
+
switchboard.plug!(OAuthPubSubJack)
|
30
|
+
else
|
31
|
+
switchboard.plug!(PubSubJack)
|
32
|
+
end
|
33
|
+
switchboard.run!
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
module Switchboard
|
2
|
+
module Commands
|
3
|
+
class PubSub
|
4
|
+
class Subscribe < Switchboard::Command
|
5
|
+
description "Subscribe to a pubsub node"
|
6
|
+
|
7
|
+
def self.run!
|
8
|
+
switchboard = Switchboard::Client.new do
|
9
|
+
# this executes in the main loop, so it doesn't really matter that this runs in a different thread
|
10
|
+
defer :subscribed do
|
11
|
+
subscribe_to(settings["pubsub.node"])
|
12
|
+
end
|
13
|
+
|
14
|
+
# define here or as hydrant.subscriptions_received
|
15
|
+
def subscribed(subscription)
|
16
|
+
if subscription && subscription.subscription == :subscribed
|
17
|
+
puts "Subscribe successful."
|
18
|
+
else
|
19
|
+
puts "Subscribe failed!"
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
if defined?(OAuth) && OPTIONS["oauth"]
|
25
|
+
switchboard.plug!(OAuthPubSubJack)
|
26
|
+
else
|
27
|
+
switchboard.plug!(PubSubJack)
|
28
|
+
end
|
29
|
+
switchboard.run!
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
module Switchboard
|
2
|
+
module Commands
|
3
|
+
class PubSub
|
4
|
+
class Subscriptions < Switchboard::Command
|
5
|
+
description "List pubsub subscriptions"
|
6
|
+
|
7
|
+
def self.run!
|
8
|
+
switchboard = Switchboard::Client.new do
|
9
|
+
# this executes in the main loop, so it doesn't really matter that this runs in a different thread
|
10
|
+
defer :subscriptions_received do
|
11
|
+
subscriptions(settings["pubsub.node"])
|
12
|
+
end
|
13
|
+
|
14
|
+
# define here or as hydrant.subscriptions_received
|
15
|
+
def subscriptions_received(subscriptions)
|
16
|
+
if subscriptions && subscriptions.any?
|
17
|
+
puts "Subscriptions:"
|
18
|
+
puts subscriptions.collect { |subscription| [subscription.subid, "#{subscription.jid || settings["jid"]} => #{subscription.node} (#{subscription.state})"].compact * ": " } * "\n"
|
19
|
+
else
|
20
|
+
puts "No subscriptions."
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
if defined?(OAuth) && OPTIONS["oauth"]
|
26
|
+
switchboard.plug!(OAuthPubSubJack)
|
27
|
+
else
|
28
|
+
switchboard.plug!(PubSubJack)
|
29
|
+
end
|
30
|
+
switchboard.run!
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module Switchboard
|
2
|
+
module Commands
|
3
|
+
class PubSub
|
4
|
+
class Unsubscribe < Switchboard::Command
|
5
|
+
description "Unsubscribe from a pubsub node"
|
6
|
+
|
7
|
+
def self.run!
|
8
|
+
switchboard = Switchboard::Client.new do
|
9
|
+
# this executes in the main loop, so it doesn't really matter that this runs in a different thread
|
10
|
+
defer :unsubscribed do
|
11
|
+
unsubscribe_from(settings["pubsub.node"])
|
12
|
+
end
|
13
|
+
|
14
|
+
# define here or as hydrant.subscriptions_received
|
15
|
+
def unsubscribed(successful)
|
16
|
+
puts "Unsubscribe was successful." if successful
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
if defined?(OAuth) && OPTIONS["oauth"]
|
21
|
+
switchboard.plug!(OAuthPubSubJack)
|
22
|
+
else
|
23
|
+
switchboard.plug!(PubSubJack)
|
24
|
+
end
|
25
|
+
switchboard.run!
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|