jubjub 0.0.5 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (39) hide show
  1. data/README.mdown +42 -6
  2. data/lib/jubjub/connection/xmpp_gateway/muc.rb +4 -20
  3. data/lib/jubjub/connection/xmpp_gateway/pubsub.rb +194 -13
  4. data/lib/jubjub/data_form.rb +30 -0
  5. data/lib/jubjub/muc.rb +4 -93
  6. data/lib/jubjub/muc/collection.rb +55 -0
  7. data/lib/jubjub/muc/configuration.rb +5 -0
  8. data/lib/jubjub/muc/muc.rb +37 -0
  9. data/lib/jubjub/pubsub.rb +8 -201
  10. data/lib/jubjub/pubsub/affiliation.rb +83 -0
  11. data/lib/jubjub/pubsub/affiliation_collection.rb +38 -0
  12. data/lib/jubjub/pubsub/collection.rb +68 -0
  13. data/lib/jubjub/pubsub/configuration.rb +5 -0
  14. data/lib/jubjub/pubsub/item.rb +35 -0
  15. data/lib/jubjub/pubsub/item_collection.rb +35 -0
  16. data/lib/jubjub/pubsub/pubsub.rb +66 -0
  17. data/lib/jubjub/pubsub/subscription.rb +24 -0
  18. data/lib/jubjub/user.rb +2 -2
  19. data/spec/connection/xmpp_gateway_muc_spec.rb +3 -3
  20. data/spec/connection/xmpp_gateway_pubsub_spec.rb +167 -11
  21. data/spec/fixtures/dataform_1.xml +65 -0
  22. data/spec/fixtures/vcr_cassettes/pubsub_default_configuration.yml +118 -0
  23. data/spec/fixtures/vcr_cassettes/pubsub_modify_affiliations.yml +275 -0
  24. data/spec/fixtures/vcr_cassettes/pubsub_purge.yml +68 -0
  25. data/spec/fixtures/vcr_cassettes/pubsub_retrieve_affiliations.yml +99 -0
  26. data/spec/mixins/user_spec.rb +8 -8
  27. data/spec/models/muc_collection_spec.rb +17 -12
  28. data/spec/models/muc_configuration_spec.rb +1 -1
  29. data/spec/models/pubsub_affiliation_collection_spec.rb +86 -0
  30. data/spec/models/pubsub_affiliation_spec.rb +244 -0
  31. data/spec/models/pubsub_collection_spec.rb +50 -18
  32. data/spec/models/pubsub_item_collection_spec.rb +12 -12
  33. data/spec/models/pubsub_item_spec.rb +9 -2
  34. data/spec/models/pubsub_spec.rb +27 -2
  35. data/spec/models/pubsub_subscription_spec.rb +2 -2
  36. data/spec/spec_helper.rb +1 -1
  37. data/spec/support/helpers.rb +7 -0
  38. data/spec/support/shared_examples.rb +30 -0
  39. metadata +46 -19
@@ -1,6 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Jubjub::PubsubCollection do
3
+ describe Jubjub::Pubsub::Collection do
4
4
 
5
5
  describe "that are proxied like" do
6
6
 
@@ -15,8 +15,8 @@ describe Jubjub::PubsubCollection do
15
15
 
16
16
  describe "inspect" do
17
17
 
18
- it "should show the list of rooms, not MucCollection" do
19
- Jubjub::PubsubCollection.new('pubsub.foo.com', @mock_connection).inspect.should eql(@nodes.inspect)
18
+ it "should show the list of rooms, not Muc::Collection" do
19
+ Jubjub::Pubsub::Collection.new('pubsub.foo.com', @mock_connection).inspect.should eql(@nodes.inspect)
20
20
  end
21
21
 
22
22
  end
@@ -24,7 +24,7 @@ describe Jubjub::PubsubCollection do
24
24
  describe "map" do
25
25
 
26
26
  it "should pass the block to the rooms" do
27
- c = Jubjub::PubsubCollection.new('pubsub.foo.com', @mock_connection)
27
+ c = Jubjub::Pubsub::Collection.new('pubsub.foo.com', @mock_connection)
28
28
  c.map{|r| r.node.to_s }.should eql(['node_1', 'node_2'])
29
29
  end
30
30
 
@@ -36,7 +36,7 @@ describe Jubjub::PubsubCollection do
36
36
 
37
37
  describe "jid" do
38
38
  it "should return the jid" do
39
- p = Jubjub::PubsubCollection.new "pubsub.foo.com", mock
39
+ p = Jubjub::Pubsub::Collection.new "pubsub.foo.com", mock
40
40
  p.jid.should == Jubjub::Jid.new('pubsub.foo.com')
41
41
  end
42
42
  end
@@ -47,7 +47,7 @@ describe Jubjub::PubsubCollection do
47
47
  @mock_connection.stub_chain :pubsub, :subscribe
48
48
  @mock_connection.pubsub.should_receive(:subscribe).with( Jubjub::Jid.new( 'pubsub.foo.com' ), 'node' )
49
49
 
50
- p = Jubjub::PubsubCollection.new "pubsub.foo.com", @mock_connection
50
+ p = Jubjub::Pubsub::Collection.new "pubsub.foo.com", @mock_connection
51
51
  p.subscribe "node"
52
52
  end
53
53
  end
@@ -61,28 +61,41 @@ describe Jubjub::PubsubCollection do
61
61
  it "without subid should call pubsub.unsubscribe on connection" do
62
62
  @mock_connection.pubsub.should_receive(:unsubscribe).with( Jubjub::Jid.new( 'pubsub.foo.com' ), 'node', nil )
63
63
 
64
- p = Jubjub::PubsubCollection.new "pubsub.foo.com", @mock_connection
64
+ p = Jubjub::Pubsub::Collection.new "pubsub.foo.com", @mock_connection
65
65
  p.unsubscribe "node"
66
66
  end
67
67
 
68
68
  it "with subid should call pubsub.unsubscribe on connection" do
69
69
  @mock_connection.pubsub.should_receive(:unsubscribe).with( Jubjub::Jid.new( 'pubsub.foo.com' ), 'node', '123' )
70
70
 
71
- p = Jubjub::PubsubCollection.new "pubsub.foo.com", @mock_connection
71
+ p = Jubjub::Pubsub::Collection.new "pubsub.foo.com", @mock_connection
72
72
  p.unsubscribe "node", "123"
73
73
  end
74
74
  end
75
75
 
76
76
  describe "create" do
77
- it "should call pubsub.create on connection" do
77
+ before do
78
78
  @mock_connection = mock
79
- @mock_connection.stub_chain :pubsub, :create
80
-
81
- @mock_connection.pubsub.should_receive(:create).with( Jubjub::Jid.new( 'pubsub.foo.com' ), 'node' )
79
+ @mock_connection.stub_chain :pubsub, :create
80
+ end
81
+
82
+ it "should call pubsub.create on connection" do
83
+ @mock_connection.pubsub.should_receive(:create).with( Jubjub::Jid.new( 'pubsub.foo.com' ), 'node', nil )
82
84
 
83
- p = Jubjub::PubsubCollection.new "pubsub.foo.com", @mock_connection
85
+ p = Jubjub::Pubsub::Collection.new "pubsub.foo.com", @mock_connection
84
86
  p.create "node"
85
87
  end
88
+
89
+ it "should yield a Pubsub::Configuration if a block is given" do
90
+ @config = Jubjub::Pubsub::Configuration.new( "foo" => { :type => "boolean", :value => "1", :label => "Foo" } )
91
+
92
+ @mock_connection.pubsub.should_receive( :default_configuration ).with( Jubjub::Jid.new( 'pubsub.foo.com' ) ).and_return( @config )
93
+ @mock_connection.pubsub.should_receive( :create ).with( Jubjub::Jid.new( 'pubsub.foo.com' ), 'node', @config )
94
+
95
+ Jubjub::Pubsub::Collection.new( "pubsub.foo.com", @mock_connection ).create( 'node' ){|config|
96
+ config.should == @config
97
+ }
98
+ end
86
99
  end
87
100
 
88
101
  describe "[]" do
@@ -95,7 +108,7 @@ describe Jubjub::PubsubCollection do
95
108
  @mock_connection.stub_chain( :pubsub, :list ).and_return(@nodes)
96
109
  end
97
110
 
98
- subject { Jubjub::PubsubCollection.new "pubsub.foo.com", @mock_connection }
111
+ subject { Jubjub::Pubsub::Collection.new "pubsub.foo.com", @mock_connection }
99
112
 
100
113
  it "should work like a normal array when passed a Fixnum" do
101
114
  subject[1].should == @nodes[1]
@@ -105,8 +118,8 @@ describe Jubjub::PubsubCollection do
105
118
  subject["node_1"].should == @nodes[0]
106
119
  end
107
120
 
108
- it "should return nil if nothing found" do
109
- subject['made-up'].should be_nil
121
+ it "should return Jubjub::Pubsub item if nothing found as it may still exist" do
122
+ subject['made-up'].should == Jubjub::Pubsub.new( 'pubsub.foo.com', 'made-up', @mock_connection )
110
123
  end
111
124
  end
112
125
 
@@ -123,7 +136,7 @@ describe Jubjub::PubsubCollection do
123
136
  'node_2'
124
137
  )
125
138
 
126
- p = Jubjub::PubsubCollection.new "pubsub.foo.com", @mock_connection
139
+ p = Jubjub::Pubsub::Collection.new "pubsub.foo.com", @mock_connection
127
140
  p.destroy "node", "pubsub.new.com", "node_2"
128
141
  end
129
142
 
@@ -138,11 +151,30 @@ describe Jubjub::PubsubCollection do
138
151
  nil
139
152
  )
140
153
 
141
- p = Jubjub::PubsubCollection.new "pubsub.foo.com", @mock_connection
154
+ p = Jubjub::Pubsub::Collection.new "pubsub.foo.com", @mock_connection
142
155
  p.destroy "node"
143
156
  end
144
157
  end
145
158
 
159
+ describe "purge" do
160
+
161
+ before do
162
+ @mock_connection = mock
163
+ @mock_connection.stub_chain :pubsub, :purge
164
+ end
165
+
166
+ it "should call pubsub.purge on connection" do
167
+ @mock_connection.pubsub.should_receive(:purge).with(
168
+ Jubjub::Jid.new('pubsub.foo.com'),
169
+ 'node'
170
+ )
171
+
172
+ m = Jubjub::Pubsub::Collection.new 'pubsub.foo.com', @mock_connection
173
+ m.purge('node')
174
+ end
175
+
176
+ end
177
+
146
178
  end
147
179
 
148
180
  end
@@ -1,30 +1,30 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Jubjub::PubsubItemCollection do
3
+ describe Jubjub::Pubsub::ItemCollection do
4
4
 
5
5
  describe "that are proxied like" do
6
6
 
7
7
  before do
8
8
  @mock_connection = mock
9
9
  @items = [
10
- Jubjub::PubsubItem.new('pubsub.foo.com', 'node_1', 'abc', '<foo></foo>', @mock_connection),
11
- Jubjub::PubsubItem.new('pubsub.foo.com', 'node_1', 'efg', '<bar></bar>', @mock_connection)
10
+ Jubjub::Pubsub::Item.new('pubsub.foo.com', 'node_1', 'abc', '<foo></foo>', @mock_connection),
11
+ Jubjub::Pubsub::Item.new('pubsub.foo.com', 'node_1', 'efg', '<bar></bar>', @mock_connection)
12
12
  ]
13
13
  @mock_connection.stub_chain( :pubsub, :retrieve_items ).and_return(@items)
14
14
  end
15
15
 
16
16
  describe "inspect" do
17
17
 
18
- it "should show the list of rooms, not MucCollection" do
19
- Jubjub::PubsubItemCollection.new('pubsub.foo.com', 'node_1', @mock_connection).inspect.should eql(@items.inspect)
18
+ it "should show the list of items, not Pubsub::ItemCollection" do
19
+ Jubjub::Pubsub::ItemCollection.new('pubsub.foo.com', 'node_1', @mock_connection).inspect.should eql(@items.inspect)
20
20
  end
21
21
 
22
22
  end
23
23
 
24
24
  describe "map" do
25
25
 
26
- it "should pass the block to the rooms" do
27
- c = Jubjub::PubsubItemCollection.new('pubsub.foo.com', 'node_1', @mock_connection)
26
+ it "should pass the block to the items" do
27
+ c = Jubjub::Pubsub::ItemCollection.new('pubsub.foo.com', 'node_1', @mock_connection)
28
28
  c.map{|r| r.data.to_s }.should eql(['<foo></foo>', '<bar></bar>'])
29
29
  end
30
30
 
@@ -36,13 +36,13 @@ describe Jubjub::PubsubItemCollection do
36
36
 
37
37
  describe "jid" do
38
38
  it "should return the jid" do
39
- Jubjub::PubsubItemCollection.new("pubsub.foo.com", "node", mock).jid.should == Jubjub::Jid.new("pubsub.foo.com")
39
+ Jubjub::Pubsub::ItemCollection.new("pubsub.foo.com", "node", mock).jid.should == Jubjub::Jid.new("pubsub.foo.com")
40
40
  end
41
41
  end
42
42
 
43
43
  describe "node" do
44
44
  it "should return the node" do
45
- Jubjub::PubsubItemCollection.new("pubsub.foo.com", "node", mock).node.should == 'node'
45
+ Jubjub::Pubsub::ItemCollection.new("pubsub.foo.com", "node", mock).node.should == 'node'
46
46
  end
47
47
  end
48
48
 
@@ -50,13 +50,13 @@ describe Jubjub::PubsubItemCollection do
50
50
  before do
51
51
  @mock_connection = mock
52
52
  @nodes = [
53
- Jubjub::PubsubItem.new('pubsub.foo.com', 'node_1', 'abc', '<foo></foo>', @mock_connection),
54
- Jubjub::PubsubItem.new('pubsub.foo.com', 'node_1', 'efg', '<bar></bar>', @mock_connection)
53
+ Jubjub::Pubsub::Item.new('pubsub.foo.com', 'node_1', 'abc', '<foo></foo>', @mock_connection),
54
+ Jubjub::Pubsub::Item.new('pubsub.foo.com', 'node_1', 'efg', '<bar></bar>', @mock_connection)
55
55
  ]
56
56
  @mock_connection.stub_chain( :pubsub, :retrieve_items ).and_return(@nodes)
57
57
  end
58
58
 
59
- subject { Jubjub::PubsubItemCollection.new "pubsub.foo.com", "node_1", @mock_connection }
59
+ subject { Jubjub::Pubsub::ItemCollection.new "pubsub.foo.com", "node_1", @mock_connection }
60
60
 
61
61
  it "should work like a normal array when passed a Fixnum" do
62
62
  subject[1].should == @nodes[1]
@@ -1,6 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Jubjub::PubsubItem do
3
+ describe Jubjub::Pubsub::Item do
4
4
 
5
5
  def pubsub_item_factory(override = {})
6
6
  options = {
@@ -11,7 +11,7 @@ describe Jubjub::PubsubItem do
11
11
  :connection => "SHHHH CONNECTION OBJECT"
12
12
  }.merge( override )
13
13
 
14
- Jubjub::PubsubItem.new(
14
+ Jubjub::Pubsub::Item.new(
15
15
  options[:jid],
16
16
  options[:node],
17
17
  options[:item_id],
@@ -50,6 +50,13 @@ describe Jubjub::PubsubItem do
50
50
  end
51
51
  end
52
52
 
53
+ describe "uri" do
54
+ it "should return the uri of the item" do
55
+ item = pubsub_item_factory :jid => "theozaurus@foo.com", :node => "blah", :item_id => "123"
56
+ item.uri.should == "xmpp:theozaurus@foo.com?;node=blah;item=123"
57
+ end
58
+ end
59
+
53
60
  describe "retract" do
54
61
  it "should call pubsub.retract on connection" do
55
62
  @mock_connection = mock
@@ -38,6 +38,12 @@ describe Jubjub::Pubsub do
38
38
  end
39
39
  end
40
40
 
41
+ describe "uri" do
42
+ it "should return the uri of the node" do
43
+ Jubjub::Pubsub.new(Jubjub::Jid.new('theozaurus@foo.com'), 'blah', mock ).uri.should == "xmpp:theozaurus@foo.com?;node=blah"
44
+ end
45
+ end
46
+
41
47
  describe "subscribe" do
42
48
  it "should call pubsub.subscribe on connection" do
43
49
  @mock_connection = mock
@@ -141,15 +147,34 @@ describe Jubjub::Pubsub do
141
147
 
142
148
  end
143
149
 
150
+ describe "purge" do
151
+
152
+ before do
153
+ @mock_connection = mock
154
+ @mock_connection.stub_chain :pubsub, :purge
155
+ end
156
+
157
+ it "should call pubsub.purge on connection" do
158
+ @mock_connection.pubsub.should_receive(:purge).with(
159
+ Jubjub::Jid.new('pubsub.foo.com'),
160
+ 'node'
161
+ )
162
+
163
+ m = Jubjub::Pubsub.new 'pubsub.foo.com', 'node', @mock_connection
164
+ m.purge
165
+ end
166
+
167
+ end
168
+
144
169
  describe "items" do
145
170
 
146
171
  before do
147
172
  @mock_connection = mock
148
173
  end
149
174
 
150
- it 'should return Jubjub::PubsubItemCollection' do
175
+ it 'should return Jubjub::Pubsub::ItemCollection' do
151
176
  @pubsub_node = Jubjub::Pubsub.new 'pubsub.foo.com', 'node', @mock_connection
152
- @pubsub_node.items.should be_a Jubjub::PubsubItemCollection
177
+ @pubsub_node.items.should be_a Jubjub::Pubsub::ItemCollection
153
178
  @pubsub_node.items.jid.should == Jubjub::Jid.new('pubsub.foo.com')
154
179
  @pubsub_node.items.node.should == 'node'
155
180
  end
@@ -1,6 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Jubjub::PubsubSubscription do
3
+ describe Jubjub::Pubsub::Subscription do
4
4
 
5
5
  def pubsub_subscription_factory(override = {})
6
6
  options = {
@@ -12,7 +12,7 @@ describe Jubjub::PubsubSubscription do
12
12
  :connection => "SHHHH CONNECTION OBJECT"
13
13
  }.merge( override )
14
14
 
15
- Jubjub::PubsubSubscription.new(
15
+ Jubjub::Pubsub::Subscription.new(
16
16
  options[:jid],
17
17
  options[:node],
18
18
  options[:subscriber],
@@ -12,7 +12,7 @@ RSpec.configure do |config|
12
12
  end
13
13
 
14
14
  VCR.config do |config|
15
- config.cassette_library_dir = File.join(File.dirname(__FILE__),'fixtures','vcr_cassettes')
15
+ config.cassette_library_dir = fixture_path 'vcr_cassettes'
16
16
  config.stub_with :webmock
17
17
  config.default_cassette_options = { :record => :none, :match_requests_on => [:uri, :method, :body] }
18
18
  end
@@ -0,0 +1,7 @@
1
+ def xml_fixture(location)
2
+ Nokogiri::XML::Document.parse(File.open(fixture_path(location + ".xml")))
3
+ end
4
+
5
+ def fixture_path(location)
6
+ File.join(File.dirname(File.dirname(__FILE__)),'fixtures',location)
7
+ end
@@ -2,6 +2,36 @@ shared_examples_for "any data form" do
2
2
 
3
3
  describe "creating" do
4
4
 
5
+ it "should understand XML to build object" do
6
+ dataform_1 = xml_fixture 'dataform_1'
7
+ dataform = subject.class.new(dataform_1)
8
+
9
+ expected = {
10
+ "public" => { :type => "boolean", :value => "", :label => "Public bot?" },
11
+ "FORM_TYPE" => { :type => "hidden", :value => "jabber:bot", :label => nil},
12
+ "invitelist" => { :type => "jid-multi", :value => [], :label=>"People to invite"},
13
+ "description" => { :type => "text-multi", :value => [], :label=>"Helpful description of your bot"},
14
+ "password" => { :type => "text-private", :value => "", :label=>"Password for special access"},
15
+ "botname" => { :type => "text-single", :value => "", :label=>"The name of your bot"},
16
+ "features" => { :type => "list-multi", :value => ["news", "search"], :label => "What features will the bot support?", :options => [
17
+ {:value => "contests", :label=>"Contests"},
18
+ {:value => "news", :label=>"News"},
19
+ {:value => "polls", :label=>"Polls"},
20
+ {:value => "reminders", :label=>"Reminders"},
21
+ {:value => "search", :label=>"Search"}
22
+ ]},
23
+ "maxsubs" => { :type => "list-single", :value => "20", :label => "Maximum number of subscribers", :options => [
24
+ { :value => "10", :label=>"10"},
25
+ { :value => "20", :label=>"20"},
26
+ { :value => "30", :label=>"30"},
27
+ { :value => "50", :label=>"50"},
28
+ { :value => "100", :label=>"100"},
29
+ { :value => "none", :label=>"None"}]}
30
+ }
31
+
32
+ dataform.fields.should == expected
33
+ end
34
+
5
35
  it "should understand hash to build object" do
6
36
  params = {
7
37
  "muc#roomconfig_allowvisitornickchange" => { :type => "boolean", :value => "1", :label => "Allow visitors to change nickname" },
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jubjub
3
3
  version: !ruby/object:Gem::Version
4
- hash: 21
4
+ hash: 19
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 5
10
- version: 0.0.5
9
+ - 6
10
+ version: 0.0.6
11
11
  platform: ruby
12
12
  authors:
13
13
  - Theo Cushion
@@ -15,12 +15,11 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-05-23 00:00:00 +01:00
18
+ date: 2011-06-16 00:00:00 +01:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
22
- type: :runtime
23
- requirement: &id001 !ruby/object:Gem::Requirement
22
+ version_requirements: &id001 !ruby/object:Gem::Requirement
24
23
  none: false
25
24
  requirements:
26
25
  - - ">="
@@ -30,11 +29,11 @@ dependencies:
30
29
  - 0
31
30
  version: "0"
32
31
  name: nokogiri
32
+ type: :runtime
33
33
  prerelease: false
34
- version_requirements: *id001
34
+ requirement: *id001
35
35
  - !ruby/object:Gem::Dependency
36
- type: :development
37
- requirement: &id002 !ruby/object:Gem::Requirement
36
+ version_requirements: &id002 !ruby/object:Gem::Requirement
38
37
  none: false
39
38
  requirements:
40
39
  - - ">="
@@ -44,11 +43,11 @@ dependencies:
44
43
  - 0
45
44
  version: "0"
46
45
  name: rake
46
+ type: :development
47
47
  prerelease: false
48
- version_requirements: *id002
48
+ requirement: *id002
49
49
  - !ruby/object:Gem::Dependency
50
- type: :development
51
- requirement: &id003 !ruby/object:Gem::Requirement
50
+ version_requirements: &id003 !ruby/object:Gem::Requirement
52
51
  none: false
53
52
  requirements:
54
53
  - - ">="
@@ -58,11 +57,11 @@ dependencies:
58
57
  - 0
59
58
  version: "0"
60
59
  name: vcr
60
+ type: :development
61
61
  prerelease: false
62
- version_requirements: *id003
62
+ requirement: *id003
63
63
  - !ruby/object:Gem::Dependency
64
- type: :development
65
- requirement: &id004 !ruby/object:Gem::Requirement
64
+ version_requirements: &id004 !ruby/object:Gem::Requirement
66
65
  none: false
67
66
  requirements:
68
67
  - - ~>
@@ -73,11 +72,11 @@ dependencies:
73
72
  - 6
74
73
  version: "1.6"
75
74
  name: webmock
75
+ type: :development
76
76
  prerelease: false
77
- version_requirements: *id004
77
+ requirement: *id004
78
78
  - !ruby/object:Gem::Dependency
79
- type: :development
80
- requirement: &id005 !ruby/object:Gem::Requirement
79
+ version_requirements: &id005 !ruby/object:Gem::Requirement
81
80
  none: false
82
81
  requirements:
83
82
  - - ~>
@@ -88,8 +87,9 @@ dependencies:
88
87
  - 4
89
88
  version: "2.4"
90
89
  name: rspec
90
+ type: :development
91
91
  prerelease: false
92
- version_requirements: *id005
92
+ requirement: *id005
93
93
  description: jubjub is designed to provie a simple API for controller XMPP servers and their resources. Currently it should be used in conjunction with xmpp_gateway, but the architecture has been left so that other backends could be implemented.
94
94
  email: theo.c@zepler.net
95
95
  executables: []
@@ -106,7 +106,18 @@ files:
106
106
  - lib/jubjub/data_form.rb
107
107
  - lib/jubjub/errors.rb
108
108
  - lib/jubjub/jid.rb
109
+ - lib/jubjub/muc/collection.rb
110
+ - lib/jubjub/muc/configuration.rb
111
+ - lib/jubjub/muc/muc.rb
109
112
  - lib/jubjub/muc.rb
113
+ - lib/jubjub/pubsub/affiliation.rb
114
+ - lib/jubjub/pubsub/affiliation_collection.rb
115
+ - lib/jubjub/pubsub/collection.rb
116
+ - lib/jubjub/pubsub/configuration.rb
117
+ - lib/jubjub/pubsub/item.rb
118
+ - lib/jubjub/pubsub/item_collection.rb
119
+ - lib/jubjub/pubsub/pubsub.rb
120
+ - lib/jubjub/pubsub/subscription.rb
110
121
  - lib/jubjub/pubsub.rb
111
122
  - lib/jubjub/user.rb
112
123
  - lib/jubjub.rb
@@ -114,6 +125,7 @@ files:
114
125
  - README.mdown
115
126
  - spec/connection/xmpp_gateway_muc_spec.rb
116
127
  - spec/connection/xmpp_gateway_pubsub_spec.rb
128
+ - spec/fixtures/dataform_1.xml
117
129
  - spec/fixtures/vcr_cassettes/muc_configuration.yml
118
130
  - spec/fixtures/vcr_cassettes/muc_create.yml
119
131
  - spec/fixtures/vcr_cassettes/muc_create_with_configuration.yml
@@ -121,13 +133,17 @@ files:
121
133
  - spec/fixtures/vcr_cassettes/muc_exit.yml
122
134
  - spec/fixtures/vcr_cassettes/muc_list.yml
123
135
  - spec/fixtures/vcr_cassettes/pubsub_create.yml
136
+ - spec/fixtures/vcr_cassettes/pubsub_default_configuration.yml
124
137
  - spec/fixtures/vcr_cassettes/pubsub_destroy.yml
125
138
  - spec/fixtures/vcr_cassettes/pubsub_destroy_with_redirect.yml
126
139
  - spec/fixtures/vcr_cassettes/pubsub_list.yml
140
+ - spec/fixtures/vcr_cassettes/pubsub_modify_affiliations.yml
127
141
  - spec/fixtures/vcr_cassettes/pubsub_publish_with_dataform_payload.yml
128
142
  - spec/fixtures/vcr_cassettes/pubsub_publish_with_id.yml
129
143
  - spec/fixtures/vcr_cassettes/pubsub_publish_with_string_payload.yml
144
+ - spec/fixtures/vcr_cassettes/pubsub_purge.yml
130
145
  - spec/fixtures/vcr_cassettes/pubsub_retract.yml
146
+ - spec/fixtures/vcr_cassettes/pubsub_retrieve_affiliations.yml
131
147
  - spec/fixtures/vcr_cassettes/pubsub_retrieve_items.yml
132
148
  - spec/fixtures/vcr_cassettes/pubsub_setup_node.yml
133
149
  - spec/fixtures/vcr_cassettes/pubsub_subscribe.yml
@@ -139,12 +155,15 @@ files:
139
155
  - spec/models/muc_collection_spec.rb
140
156
  - spec/models/muc_configuration_spec.rb
141
157
  - spec/models/muc_spec.rb
158
+ - spec/models/pubsub_affiliation_collection_spec.rb
159
+ - spec/models/pubsub_affiliation_spec.rb
142
160
  - spec/models/pubsub_collection_spec.rb
143
161
  - spec/models/pubsub_item_collection_spec.rb
144
162
  - spec/models/pubsub_item_spec.rb
145
163
  - spec/models/pubsub_spec.rb
146
164
  - spec/models/pubsub_subscription_spec.rb
147
165
  - spec/spec_helper.rb
166
+ - spec/support/helpers.rb
148
167
  - spec/support/shared_examples.rb
149
168
  - .rspec
150
169
  - .infinity_test
@@ -187,6 +206,7 @@ summary: An Object to XMPP mapper to make managing XMPP resources easy
187
206
  test_files:
188
207
  - spec/connection/xmpp_gateway_muc_spec.rb
189
208
  - spec/connection/xmpp_gateway_pubsub_spec.rb
209
+ - spec/fixtures/dataform_1.xml
190
210
  - spec/fixtures/vcr_cassettes/muc_configuration.yml
191
211
  - spec/fixtures/vcr_cassettes/muc_create.yml
192
212
  - spec/fixtures/vcr_cassettes/muc_create_with_configuration.yml
@@ -194,13 +214,17 @@ test_files:
194
214
  - spec/fixtures/vcr_cassettes/muc_exit.yml
195
215
  - spec/fixtures/vcr_cassettes/muc_list.yml
196
216
  - spec/fixtures/vcr_cassettes/pubsub_create.yml
217
+ - spec/fixtures/vcr_cassettes/pubsub_default_configuration.yml
197
218
  - spec/fixtures/vcr_cassettes/pubsub_destroy.yml
198
219
  - spec/fixtures/vcr_cassettes/pubsub_destroy_with_redirect.yml
199
220
  - spec/fixtures/vcr_cassettes/pubsub_list.yml
221
+ - spec/fixtures/vcr_cassettes/pubsub_modify_affiliations.yml
200
222
  - spec/fixtures/vcr_cassettes/pubsub_publish_with_dataform_payload.yml
201
223
  - spec/fixtures/vcr_cassettes/pubsub_publish_with_id.yml
202
224
  - spec/fixtures/vcr_cassettes/pubsub_publish_with_string_payload.yml
225
+ - spec/fixtures/vcr_cassettes/pubsub_purge.yml
203
226
  - spec/fixtures/vcr_cassettes/pubsub_retract.yml
227
+ - spec/fixtures/vcr_cassettes/pubsub_retrieve_affiliations.yml
204
228
  - spec/fixtures/vcr_cassettes/pubsub_retrieve_items.yml
205
229
  - spec/fixtures/vcr_cassettes/pubsub_setup_node.yml
206
230
  - spec/fixtures/vcr_cassettes/pubsub_subscribe.yml
@@ -212,12 +236,15 @@ test_files:
212
236
  - spec/models/muc_collection_spec.rb
213
237
  - spec/models/muc_configuration_spec.rb
214
238
  - spec/models/muc_spec.rb
239
+ - spec/models/pubsub_affiliation_collection_spec.rb
240
+ - spec/models/pubsub_affiliation_spec.rb
215
241
  - spec/models/pubsub_collection_spec.rb
216
242
  - spec/models/pubsub_item_collection_spec.rb
217
243
  - spec/models/pubsub_item_spec.rb
218
244
  - spec/models/pubsub_spec.rb
219
245
  - spec/models/pubsub_subscription_spec.rb
220
246
  - spec/spec_helper.rb
247
+ - spec/support/helpers.rb
221
248
  - spec/support/shared_examples.rb
222
249
  - .rspec
223
250
  - .infinity_test