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,21 @@
|
|
1
|
+
class Module
|
2
|
+
# Modified version from ActiveSupport to support :with (for additional arguments)
|
3
|
+
def delegate(*methods)
|
4
|
+
options = methods.pop
|
5
|
+
unless options.is_a?(Hash) && to = options[:to]
|
6
|
+
raise ArgumentError, "Delegation needs a target. Supply an options hash with a :to key as the last argument (e.g. delegate :hello, :to => :greeter)."
|
7
|
+
end
|
8
|
+
|
9
|
+
prefix = options[:prefix] && "#{options[:prefix] == true ? to : options[:prefix]}_"
|
10
|
+
with = options[:with] || []
|
11
|
+
|
12
|
+
methods.each do |method|
|
13
|
+
module_eval(<<-EOS, "(__DELEGATION__)", 1)
|
14
|
+
def #{prefix}#{method}(*args, &block)
|
15
|
+
args += [#{with * ", "}]
|
16
|
+
#{to}.__send__(#{method.inspect}, *args, &block)
|
17
|
+
end
|
18
|
+
EOS
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
module Kernel
|
2
|
+
|
3
|
+
# Like instance_eval but allows parameters to be passed.
|
4
|
+
|
5
|
+
def instance_exec(*args, &block)
|
6
|
+
mname = "__instance_exec_#{Thread.current.object_id.abs}_#{object_id.abs}"
|
7
|
+
Object.class_eval{ define_method(mname, &block) }
|
8
|
+
begin
|
9
|
+
ret = send(mname, *args)
|
10
|
+
ensure
|
11
|
+
Object.class_eval{ undef_method(mname) } rescue nil
|
12
|
+
end
|
13
|
+
ret
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
begin
|
2
|
+
require 'oauth'
|
3
|
+
rescue LoadError => e
|
4
|
+
lib = e.message.split("--").last.strip
|
5
|
+
puts "#{lib} is required."
|
6
|
+
exit 1
|
7
|
+
end
|
8
|
+
|
9
|
+
require 'oauth/version'
|
10
|
+
if OAuth::VERSION < "0.3.1.4"
|
11
|
+
puts "The OAuth library must be at least version 0.3.1.4."
|
12
|
+
exit 1
|
13
|
+
end
|
14
|
+
|
15
|
+
require 'switchboard/helpers/pubsub'
|
16
|
+
require 'oauth/consumer'
|
17
|
+
require 'oauth/request_proxy/mock_request'
|
18
|
+
require 'xmpp4r/pubsub'
|
19
|
+
require 'xmpp4r/pubsub/helper/oauth_service_helper'
|
20
|
+
|
21
|
+
module Switchboard
|
22
|
+
module Helpers
|
23
|
+
module OAuthPubSubHelper
|
24
|
+
include PubSubHelper
|
25
|
+
|
26
|
+
attr_reader :oauth_consumer, :oauth_token
|
27
|
+
|
28
|
+
delegate :create_node, :create_collection_node, :delete_node,
|
29
|
+
:delete_item_from, :get_config_from, :get_options_from, :get_items_from,
|
30
|
+
:publish_item_to, :publish_item_with_id_to, :purge_items_from,
|
31
|
+
:set_config_for, :subscribe_to, :unsubscribe_from,
|
32
|
+
:to => :pubsub
|
33
|
+
|
34
|
+
def subscriptions(node = nil)
|
35
|
+
if node
|
36
|
+
# TODO this needs to be implemented in OAuthServiceHelper
|
37
|
+
pubsub.get_subscriptions_from(node)
|
38
|
+
else
|
39
|
+
pubsub.get_subscriptions_from_all_nodes
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
require 'xmpp4r/pubsub'
|
2
|
+
# TODO this is broken in XMPP4R 0.4.0
|
3
|
+
# require 'xmpp4r/pubsub/helper/nodebrowser'
|
4
|
+
|
5
|
+
module Switchboard
|
6
|
+
module Helpers
|
7
|
+
module PubSubHelper
|
8
|
+
attr_reader :pubsub
|
9
|
+
|
10
|
+
delegate :create_node, :create_collection_node, :delete_node,
|
11
|
+
:delete_item_from, :get_config_from, :get_options_from, :get_items_from,
|
12
|
+
:publish_item_to, :publish_item_with_id_to, :purge_items_from,
|
13
|
+
:set_config_for, :subscribe_to, :unsubscribe_from,
|
14
|
+
:to => :pubsub
|
15
|
+
|
16
|
+
Switchboard::Core.hook(:pubsub_event)
|
17
|
+
|
18
|
+
def subscriptions(node = nil)
|
19
|
+
# NOTE: node-specific subscriptions do not appear to work in ejabberd 2.0.2
|
20
|
+
if node
|
21
|
+
pubsub.get_subscriptions_from(node)
|
22
|
+
else
|
23
|
+
pubsub.get_subscriptions_from_all_nodes
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
class AutoAcceptJack
|
2
|
+
def self.connect(switchboard, settings)
|
3
|
+
# complain if subscription requests were denied
|
4
|
+
switchboard.on_roster_subscription do |item, subscription|
|
5
|
+
unless subscription.type == :subscribed
|
6
|
+
puts "My subscription request was denied!"
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
# auto-accept subscription requests
|
11
|
+
switchboard.on_roster_subscription_request do |item, subscription|
|
12
|
+
puts "Accepting subscription from #{subscription.from}"
|
13
|
+
roster.accept_subscription(subscription.from)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require 'switchboard/colors'
|
2
|
+
|
3
|
+
class DebugJack
|
4
|
+
def self.connect(switchboard, settings)
|
5
|
+
switchboard.on_presence do |presence|
|
6
|
+
puts "<< #{presence.to_s}".green
|
7
|
+
end
|
8
|
+
|
9
|
+
switchboard.on_message do |message|
|
10
|
+
puts "<< #{message.to_s}".blue
|
11
|
+
end
|
12
|
+
|
13
|
+
switchboard.on_iq do |iq|
|
14
|
+
puts "<< #{iq.to_s}".yellow
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
class NotifyJack
|
2
|
+
def self.connect(switchboard, settings)
|
3
|
+
switchboard.on_roster_loaded do
|
4
|
+
roster.items.each do |jid, item|
|
5
|
+
presence(nil, jid)
|
6
|
+
end
|
7
|
+
end
|
8
|
+
|
9
|
+
switchboard.on_shutdown do
|
10
|
+
roster.items.each do |jid, item|
|
11
|
+
presence(:unavailable, jid)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
class OAuthPubSubJack
|
2
|
+
def self.connect(switchboard, settings)
|
3
|
+
require 'switchboard/helpers/oauth_pubsub'
|
4
|
+
|
5
|
+
# TODO generalize this pattern for required settings
|
6
|
+
unless settings["pubsub.server"]
|
7
|
+
puts "A pubsub server must be specified."
|
8
|
+
return false
|
9
|
+
end
|
10
|
+
|
11
|
+
switchboard.extend(Switchboard::Helpers::OAuthPubSubHelper)
|
12
|
+
|
13
|
+
switchboard.on_startup do
|
14
|
+
@oauth_consumer = OAuth::Consumer.new(settings["oauth.consumer_key"], settings["oauth.consumer_secret"])
|
15
|
+
@oauth_token = OAuth::Token.new(settings["oauth.token"], settings["oauth.token_secret"])
|
16
|
+
|
17
|
+
@pubsub = Jabber::PubSub::OAuthServiceHelper.new(client, settings["pubsub.server"], @oauth_consumer, @oauth_token)
|
18
|
+
@pubsub.add_event_callback do |event|
|
19
|
+
on(:pubsub_event, event)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'switchboard/helpers/pubsub'
|
2
|
+
|
3
|
+
class PubSubJack
|
4
|
+
def self.connect(switchboard, settings)
|
5
|
+
# TODO generalize this pattern for required settings
|
6
|
+
unless settings["pubsub.server"]
|
7
|
+
puts "A pubsub server must be specified."
|
8
|
+
return false
|
9
|
+
end
|
10
|
+
|
11
|
+
switchboard.extend(Switchboard::Helpers::PubSubHelper)
|
12
|
+
|
13
|
+
switchboard.on_startup do
|
14
|
+
@pubsub = Jabber::PubSub::ServiceHelper.new(client, settings["pubsub.server"])
|
15
|
+
|
16
|
+
@pubsub.add_event_callback do |event|
|
17
|
+
on(:pubsub_event, event)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
class RosterDebugJack
|
2
|
+
def self.connect(switchboard, settings)
|
3
|
+
switchboard.on_roster_presence do |item, old_presence, new_presence|
|
4
|
+
puts "[presence] << #{item.inspect}: #{old_presence.to_s}, #{new_presence.to_s}"
|
5
|
+
end
|
6
|
+
|
7
|
+
switchboard.on_roster_query do |query|
|
8
|
+
puts "[roster query] << #{query.to_s}"
|
9
|
+
end
|
10
|
+
|
11
|
+
switchboard.on_roster_subscription do |item, subscription|
|
12
|
+
puts "[subscription] << #{item.inspect}: #{subscription.to_s}"
|
13
|
+
end
|
14
|
+
|
15
|
+
switchboard.on_roster_subscription_request do |item, subscription|
|
16
|
+
puts "[subscription request] << #{item.inspect}: #{subscription.to_s}"
|
17
|
+
end
|
18
|
+
|
19
|
+
switchboard.on_roster_update do |old_item, new_item|
|
20
|
+
puts "[update] #{old_item.inspect}, #{new_item.inspect}"
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
require 'yaml'
|
2
|
+
|
3
|
+
module Switchboard
|
4
|
+
class Settings
|
5
|
+
DEFAULT_PATH = File.join(ENV["HOME"], ".switchboardrc")
|
6
|
+
|
7
|
+
def initialize(path = DEFAULT_PATH)
|
8
|
+
@path = path
|
9
|
+
|
10
|
+
if File.exists?(path)
|
11
|
+
set_perms
|
12
|
+
@config = YAML.load(File.read(path))
|
13
|
+
end
|
14
|
+
|
15
|
+
@config ||= {}
|
16
|
+
end
|
17
|
+
|
18
|
+
def get(key)
|
19
|
+
Switchboard::OPTIONS[key] || @config[key] || Switchboard::DEFAULT_OPTIONS[key]
|
20
|
+
end
|
21
|
+
|
22
|
+
alias_method :[], :get
|
23
|
+
|
24
|
+
def set!(key, value)
|
25
|
+
set(key, value)
|
26
|
+
write
|
27
|
+
set_perms
|
28
|
+
end
|
29
|
+
|
30
|
+
def set(key, value)
|
31
|
+
@config[key] = value
|
32
|
+
end
|
33
|
+
|
34
|
+
def []=(key, value)
|
35
|
+
set(key, value)
|
36
|
+
end
|
37
|
+
|
38
|
+
def write
|
39
|
+
open(@path, "w") do |f|
|
40
|
+
f << @config.to_yaml
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
def set_perms
|
45
|
+
File.chmod 0600, @path
|
46
|
+
end
|
47
|
+
|
48
|
+
end
|
49
|
+
end
|
data/switchboard.gemspec
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
# this file is automatically generated
|
2
|
+
Gem::Specification.new do |s|
|
3
|
+
s.name = "switchboard"
|
4
|
+
s.version = "0.1.0"
|
5
|
+
s.summary = "XMPP toolkit."
|
6
|
+
s.description = "A toolkit for assembling XMPP clients and interacting with XMPP servers."
|
7
|
+
s.authors = ["Seth Fitzsimmons"]
|
8
|
+
s.email = ["seth@mojodna.net"]
|
9
|
+
|
10
|
+
s.files = ["bin/switchboard", "examples/echo_bot.rb", "History.txt", "lib/switchboard/client.rb", "lib/switchboard/colors.rb", "lib/switchboard/commands/command.rb", "lib/switchboard/commands/config/config.rb", "lib/switchboard/commands/config.rb", "lib/switchboard/commands/default.rb", "lib/switchboard/commands/disco/disco.rb", "lib/switchboard/commands/disco/info.rb", "lib/switchboard/commands/disco/items.rb", "lib/switchboard/commands/disco.rb", "lib/switchboard/commands/grep.rb", "lib/switchboard/commands/help/help.rb", "lib/switchboard/commands/help.rb", "lib/switchboard/commands/last/last.rb", "lib/switchboard/commands/last.rb", "lib/switchboard/commands/pep/location.rb", "lib/switchboard/commands/pep/pep.rb", "lib/switchboard/commands/pep/tune.rb", "lib/switchboard/commands/pep.rb", "lib/switchboard/commands/pubsub/affiliations.rb", "lib/switchboard/commands/pubsub/config.rb", "lib/switchboard/commands/pubsub/create.rb", "lib/switchboard/commands/pubsub/delete.rb", "lib/switchboard/commands/pubsub/info.rb", "lib/switchboard/commands/pubsub/items.rb", "lib/switchboard/commands/pubsub/listen.rb", "lib/switchboard/commands/pubsub/nodes.rb", "lib/switchboard/commands/pubsub/options.rb", "lib/switchboard/commands/pubsub/publish.rb", "lib/switchboard/commands/pubsub/pubsub.rb", "lib/switchboard/commands/pubsub/purge.rb", "lib/switchboard/commands/pubsub/retract.rb", "lib/switchboard/commands/pubsub/subscribe.rb", "lib/switchboard/commands/pubsub/subscriptions.rb", "lib/switchboard/commands/pubsub/unsubscribe.rb", "lib/switchboard/commands/pubsub.rb", "lib/switchboard/commands/register.rb", "lib/switchboard/commands/roster/add.rb", "lib/switchboard/commands/roster/list.rb", "lib/switchboard/commands/roster/online.rb", "lib/switchboard/commands/roster/remove.rb", "lib/switchboard/commands/roster/roster.rb", "lib/switchboard/commands/roster.rb", "lib/switchboard/commands/unregister.rb", "lib/switchboard/commands.rb", "lib/switchboard/component.rb", "lib/switchboard/core.rb", "lib/switchboard/ext/delegate.rb", "lib/switchboard/ext/instance_exec.rb", "lib/switchboard/helpers/oauth_pubsub.rb", "lib/switchboard/helpers/pubsub.rb", "lib/switchboard/jacks/auto_accept.rb", "lib/switchboard/jacks/debug.rb", "lib/switchboard/jacks/echo.rb", "lib/switchboard/jacks/notify.rb", "lib/switchboard/jacks/oauth_pubsub.rb", "lib/switchboard/jacks/pubsub.rb", "lib/switchboard/jacks/roster_debug.rb", "lib/switchboard/jacks.rb", "lib/switchboard/settings.rb", "lib/switchboard/switchboard.rb", "lib/switchboard/version.rb", "lib/switchboard.rb", "Rakefile", "README.markdown", "switchboard.gemspec"]
|
11
|
+
s.executables = ["switchboard"]
|
12
|
+
s.require_paths = ["lib"]
|
13
|
+
|
14
|
+
s.add_dependency("xmpp4r", ">=", "0.5")
|
15
|
+
end
|
metadata
ADDED
@@ -0,0 +1,136 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: switchboard
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Seth Fitzsimmons
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
|
12
|
+
date: 2009-07-08 00:00:00 -07:00
|
13
|
+
default_executable:
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: xmpp4r
|
17
|
+
type: :runtime
|
18
|
+
version_requirement:
|
19
|
+
version_requirements: !ruby/object:Gem::Requirement
|
20
|
+
requirements:
|
21
|
+
- - ">="
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: "0"
|
24
|
+
- - "="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: "0.5"
|
27
|
+
version:
|
28
|
+
description: A toolkit for assembling XMPP clients and interacting with XMPP servers.
|
29
|
+
email:
|
30
|
+
- seth@mojodna.net
|
31
|
+
executables:
|
32
|
+
- switchboard
|
33
|
+
extensions: []
|
34
|
+
|
35
|
+
extra_rdoc_files: []
|
36
|
+
|
37
|
+
files:
|
38
|
+
- bin/switchboard
|
39
|
+
- examples/echo_bot.rb
|
40
|
+
- History.txt
|
41
|
+
- lib/switchboard/client.rb
|
42
|
+
- lib/switchboard/colors.rb
|
43
|
+
- lib/switchboard/commands/command.rb
|
44
|
+
- lib/switchboard/commands/config/config.rb
|
45
|
+
- lib/switchboard/commands/config.rb
|
46
|
+
- lib/switchboard/commands/default.rb
|
47
|
+
- lib/switchboard/commands/disco/disco.rb
|
48
|
+
- lib/switchboard/commands/disco/info.rb
|
49
|
+
- lib/switchboard/commands/disco/items.rb
|
50
|
+
- lib/switchboard/commands/disco.rb
|
51
|
+
- lib/switchboard/commands/grep.rb
|
52
|
+
- lib/switchboard/commands/help/help.rb
|
53
|
+
- lib/switchboard/commands/help.rb
|
54
|
+
- lib/switchboard/commands/last/last.rb
|
55
|
+
- lib/switchboard/commands/last.rb
|
56
|
+
- lib/switchboard/commands/pep/location.rb
|
57
|
+
- lib/switchboard/commands/pep/pep.rb
|
58
|
+
- lib/switchboard/commands/pep/tune.rb
|
59
|
+
- lib/switchboard/commands/pep.rb
|
60
|
+
- lib/switchboard/commands/pubsub/affiliations.rb
|
61
|
+
- lib/switchboard/commands/pubsub/config.rb
|
62
|
+
- lib/switchboard/commands/pubsub/create.rb
|
63
|
+
- lib/switchboard/commands/pubsub/delete.rb
|
64
|
+
- lib/switchboard/commands/pubsub/info.rb
|
65
|
+
- lib/switchboard/commands/pubsub/items.rb
|
66
|
+
- lib/switchboard/commands/pubsub/listen.rb
|
67
|
+
- lib/switchboard/commands/pubsub/nodes.rb
|
68
|
+
- lib/switchboard/commands/pubsub/options.rb
|
69
|
+
- lib/switchboard/commands/pubsub/publish.rb
|
70
|
+
- lib/switchboard/commands/pubsub/pubsub.rb
|
71
|
+
- lib/switchboard/commands/pubsub/purge.rb
|
72
|
+
- lib/switchboard/commands/pubsub/retract.rb
|
73
|
+
- lib/switchboard/commands/pubsub/subscribe.rb
|
74
|
+
- lib/switchboard/commands/pubsub/subscriptions.rb
|
75
|
+
- lib/switchboard/commands/pubsub/unsubscribe.rb
|
76
|
+
- lib/switchboard/commands/pubsub.rb
|
77
|
+
- lib/switchboard/commands/register.rb
|
78
|
+
- lib/switchboard/commands/roster/add.rb
|
79
|
+
- lib/switchboard/commands/roster/list.rb
|
80
|
+
- lib/switchboard/commands/roster/online.rb
|
81
|
+
- lib/switchboard/commands/roster/remove.rb
|
82
|
+
- lib/switchboard/commands/roster/roster.rb
|
83
|
+
- lib/switchboard/commands/roster.rb
|
84
|
+
- lib/switchboard/commands/unregister.rb
|
85
|
+
- lib/switchboard/commands.rb
|
86
|
+
- lib/switchboard/component.rb
|
87
|
+
- lib/switchboard/core.rb
|
88
|
+
- lib/switchboard/ext/delegate.rb
|
89
|
+
- lib/switchboard/ext/instance_exec.rb
|
90
|
+
- lib/switchboard/helpers/oauth_pubsub.rb
|
91
|
+
- lib/switchboard/helpers/pubsub.rb
|
92
|
+
- lib/switchboard/jacks/auto_accept.rb
|
93
|
+
- lib/switchboard/jacks/debug.rb
|
94
|
+
- lib/switchboard/jacks/echo.rb
|
95
|
+
- lib/switchboard/jacks/notify.rb
|
96
|
+
- lib/switchboard/jacks/oauth_pubsub.rb
|
97
|
+
- lib/switchboard/jacks/pubsub.rb
|
98
|
+
- lib/switchboard/jacks/roster_debug.rb
|
99
|
+
- lib/switchboard/jacks.rb
|
100
|
+
- lib/switchboard/settings.rb
|
101
|
+
- lib/switchboard/switchboard.rb
|
102
|
+
- lib/switchboard/version.rb
|
103
|
+
- lib/switchboard.rb
|
104
|
+
- Rakefile
|
105
|
+
- README.markdown
|
106
|
+
- switchboard.gemspec
|
107
|
+
has_rdoc: true
|
108
|
+
homepage:
|
109
|
+
licenses: []
|
110
|
+
|
111
|
+
post_install_message:
|
112
|
+
rdoc_options: []
|
113
|
+
|
114
|
+
require_paths:
|
115
|
+
- lib
|
116
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
117
|
+
requirements:
|
118
|
+
- - ">="
|
119
|
+
- !ruby/object:Gem::Version
|
120
|
+
version: "0"
|
121
|
+
version:
|
122
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
123
|
+
requirements:
|
124
|
+
- - ">="
|
125
|
+
- !ruby/object:Gem::Version
|
126
|
+
version: "0"
|
127
|
+
version:
|
128
|
+
requirements: []
|
129
|
+
|
130
|
+
rubyforge_project:
|
131
|
+
rubygems_version: 1.3.3
|
132
|
+
signing_key:
|
133
|
+
specification_version: 3
|
134
|
+
summary: XMPP toolkit.
|
135
|
+
test_files: []
|
136
|
+
|