switchboard 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
+
|