blather 0.2.3 → 0.3.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.
Files changed (47) hide show
  1. data/README.rdoc +7 -4
  2. data/Rakefile +3 -1
  3. data/examples/print_heirarchy.rb +76 -0
  4. data/lib/blather.rb +3 -3
  5. data/lib/blather/client.rb +4 -247
  6. data/lib/blather/client/client.rb +168 -0
  7. data/lib/blather/client/dsl.rb +99 -0
  8. data/lib/blather/errors.rb +5 -0
  9. data/lib/blather/errors/sasl_error.rb +6 -70
  10. data/lib/blather/errors/stanza_error.rb +12 -176
  11. data/lib/blather/errors/stream_error.rb +8 -186
  12. data/lib/blather/stanza.rb +2 -3
  13. data/lib/blather/stanza/{iq/disco.rb → disco.rb} +1 -3
  14. data/lib/blather/stanza/{iq/discos → disco}/disco_info.rb +3 -5
  15. data/lib/blather/stanza/{iq/discos → disco}/disco_items.rb +0 -2
  16. data/lib/blather/stanza/iq/query.rb +1 -1
  17. data/lib/blather/stanza/iq/roster.rb +2 -2
  18. data/lib/blather/stanza/pubsub/subscriber.rb +64 -0
  19. data/lib/blather/stream.rb +13 -7
  20. data/lib/blather/stream/component.rb +1 -1
  21. data/lib/blather/stream/parser.rb +11 -4
  22. data/lib/blather/stream/resource.rb +1 -1
  23. data/lib/blather/stream/sasl.rb +15 -9
  24. data/lib/blather/xmpp_node.rb +10 -4
  25. data/spec/blather/client/client_spec.rb +4 -0
  26. data/spec/blather/client/dsl_spec.rb +4 -0
  27. data/spec/blather/client_spec.rb +0 -0
  28. data/spec/blather/errors/sasl_error_spec.rb +2 -25
  29. data/spec/blather/errors/stanza_error_spec.rb +7 -18
  30. data/spec/blather/errors/stream_error_spec.rb +4 -15
  31. data/spec/blather/stanza/{iq/discos → discos}/disco_info_spec.rb +12 -12
  32. data/spec/blather/stanza/{iq/discos → discos}/disco_items_spec.rb +1 -1
  33. data/spec/blather/stanza/iq/query_spec.rb +7 -0
  34. data/spec/blather/stanza/iq/roster_spec.rb +21 -21
  35. data/spec/blather/stanza/pubsub/subscriber_spec.rb +70 -0
  36. data/spec/blather/stanza_spec.rb +1 -7
  37. data/spec/blather/stream/client_spec.rb +36 -7
  38. data/spec/spec_helper.rb +1 -1
  39. metadata +16 -18
  40. data/ext/Makefile +0 -149
  41. data/ext/mkmf.log +0 -30
  42. data/ext/push_parser.bundle +0 -0
  43. data/ext/push_parser.o +0 -0
  44. data/lib/autotest/discover.rb +0 -1
  45. data/lib/autotest/spec.rb +0 -60
  46. data/spec/blather/stanza/pubsub/event_spec.rb +0 -13
  47. data/spec/build_safe.rb +0 -20
@@ -1,4 +1,4 @@
1
- require File.join(File.dirname(__FILE__), *%w[.. .. .. .. spec_helper])
1
+ require File.join(File.dirname(__FILE__), *%w[.. .. .. spec_helper])
2
2
 
3
3
  def disco_info_xml
4
4
  <<-XML
@@ -24,7 +24,7 @@ describe 'Blather::Stanza::Iq::DiscoInfo' do
24
24
  end
25
25
 
26
26
  it 'has a node attribute' do
27
- n = Blather::Stanza::Iq::DiscoInfo.new nil, [], [], 'music'
27
+ n = Blather::Stanza::Iq::DiscoInfo.new nil, 'music', [], []
28
28
  n.node.must_equal 'music'
29
29
  n.node = :foo
30
30
  n.node.must_equal 'foo'
@@ -55,7 +55,7 @@ describe 'Blather::Stanza::Iq::DiscoInfo identities' do
55
55
  control = [ Stanza::Iq::DiscoInfo::Identity.new(*%w[name type category]),
56
56
  Stanza::Iq::DiscoInfo::Identity.new(*%w[name1 type1 category1])]
57
57
 
58
- di = Stanza::Iq::DiscoInfo.new nil, ids
58
+ di = Stanza::Iq::DiscoInfo.new nil, nil, ids
59
59
  di.identities.size.must_equal 2
60
60
  di.identities.each { |i| control.include?(i).must_equal true }
61
61
  end
@@ -64,7 +64,7 @@ describe 'Blather::Stanza::Iq::DiscoInfo identities' do
64
64
  control = [ Stanza::Iq::DiscoInfo::Identity.new(*%w[name type category]),
65
65
  Stanza::Iq::DiscoInfo::Identity.new(*%w[name1 type1 category1])]
66
66
 
67
- di = Stanza::Iq::DiscoInfo.new nil, control
67
+ di = Stanza::Iq::DiscoInfo.new nil, nil, control
68
68
  di.identities.size.must_equal 2
69
69
  di.identities.each { |i| control.include?(i).must_equal true }
70
70
  end
@@ -72,7 +72,7 @@ describe 'Blather::Stanza::Iq::DiscoInfo identities' do
72
72
  it 'takes a single hash as identity' do
73
73
  control = [Stanza::Iq::DiscoInfo::Identity.new(*%w[name type category])]
74
74
 
75
- di = Stanza::Iq::DiscoInfo.new nil, {:name => 'name', :type => 'type', :category => 'category'}
75
+ di = Stanza::Iq::DiscoInfo.new nil, nil, {:name => 'name', :type => 'type', :category => 'category'}
76
76
  di.identities.size.must_equal 1
77
77
  di.identities.each { |i| control.include?(i).must_equal true }
78
78
  end
@@ -80,7 +80,7 @@ describe 'Blather::Stanza::Iq::DiscoInfo identities' do
80
80
  it 'takes a single identity object as identity' do
81
81
  control = [Stanza::Iq::DiscoInfo::Identity.new(*%w[name type category])]
82
82
 
83
- di = Stanza::Iq::DiscoInfo.new nil, control.first
83
+ di = Stanza::Iq::DiscoInfo.new nil, nil, control.first
84
84
  di.identities.size.must_equal 1
85
85
  di.identities.each { |i| control.include?(i).must_equal true }
86
86
  end
@@ -94,7 +94,7 @@ describe 'Blather::Stanza::Iq::DiscoInfo identities' do
94
94
  control = [ Stanza::Iq::DiscoInfo::Identity.new(*%w[name type category]),
95
95
  Stanza::Iq::DiscoInfo::Identity.new(*%w[name1 type1 category1])]
96
96
 
97
- di = Stanza::Iq::DiscoInfo.new nil, ids
97
+ di = Stanza::Iq::DiscoInfo.new nil, nil, ids
98
98
  di.identities.size.must_equal 2
99
99
  di.identities.each { |i| control.include?(i).must_equal true }
100
100
  end
@@ -105,7 +105,7 @@ describe 'Blather::Stanza::Iq::DiscoInfo features' do
105
105
  features = %w[feature1 feature2 feature3]
106
106
  control = features.map { |f| Stanza::Iq::DiscoInfo::Feature.new f }
107
107
 
108
- di = Stanza::Iq::DiscoInfo.new nil, [], features
108
+ di = Stanza::Iq::DiscoInfo.new nil, nil, [], features
109
109
  di.features.size.must_equal 3
110
110
  di.features.each { |f| control.include?(f).must_equal true }
111
111
  end
@@ -114,7 +114,7 @@ describe 'Blather::Stanza::Iq::DiscoInfo features' do
114
114
  features = %w[feature1 feature2 feature3]
115
115
  control = features.map { |f| Stanza::Iq::DiscoInfo::Feature.new f }
116
116
 
117
- di = Stanza::Iq::DiscoInfo.new nil, [], control
117
+ di = Stanza::Iq::DiscoInfo.new nil, nil, [], control
118
118
  di.features.size.must_equal 3
119
119
  di.features.each { |f| control.include?(f).must_equal true }
120
120
  end
@@ -122,7 +122,7 @@ describe 'Blather::Stanza::Iq::DiscoInfo features' do
122
122
  it 'takes a single string' do
123
123
  control = [Stanza::Iq::DiscoInfo::Feature.new('feature1')]
124
124
 
125
- di = Stanza::Iq::DiscoInfo.new nil, [], 'feature1'
125
+ di = Stanza::Iq::DiscoInfo.new nil, nil, [], 'feature1'
126
126
  di.features.size.must_equal 1
127
127
  di.features.each { |f| control.include?(f).must_equal true }
128
128
  end
@@ -130,7 +130,7 @@ describe 'Blather::Stanza::Iq::DiscoInfo features' do
130
130
  it 'takes a single Feature object' do
131
131
  control = [Stanza::Iq::DiscoInfo::Feature.new('feature1')]
132
132
 
133
- di = Stanza::Iq::DiscoInfo.new nil, [], control.first
133
+ di = Stanza::Iq::DiscoInfo.new nil, nil, [], control.first
134
134
  di.features.size.must_equal 1
135
135
  di.features.each { |f| control.include?(f).must_equal true }
136
136
  end
@@ -140,7 +140,7 @@ describe 'Blather::Stanza::Iq::DiscoInfo features' do
140
140
  control = features.map { |f| Stanza::Iq::DiscoInfo::Feature.new f }
141
141
  features[1] = control[1]
142
142
 
143
- di = Stanza::Iq::DiscoInfo.new nil, [], features
143
+ di = Stanza::Iq::DiscoInfo.new nil, nil, [], features
144
144
  di.features.size.must_equal 3
145
145
  di.features.each { |f| control.include?(f).must_equal true }
146
146
  end
@@ -1,4 +1,4 @@
1
- require File.join(File.dirname(__FILE__), *%w[.. .. .. .. spec_helper])
1
+ require File.join(File.dirname(__FILE__), *%w[.. .. .. spec_helper])
2
2
 
3
3
  def disco_items_xml
4
4
  <<-XML
@@ -19,6 +19,13 @@ describe 'Blather::Stanza::Iq::Query' do
19
19
  query.children.detect { |n| n.element_name == 'query' }.wont_be_nil
20
20
  end
21
21
 
22
+ [:get, :set, :result, :error].each do |type|
23
+ it "can be set as \"#{type}\"" do
24
+ query = Stanza::Iq::Query.new type
25
+ query.type.must_equal type
26
+ end
27
+ end
28
+
22
29
  it 'sets type to "result" on reply' do
23
30
  query = Stanza::Iq::Query.new
24
31
  query.type.must_equal :get
@@ -1,27 +1,27 @@
1
1
  require File.join(File.dirname(__FILE__), *%w[.. .. .. spec_helper])
2
2
 
3
3
  def roster_xml
4
- <<-XML
5
- <iq to='juliet@example.com/balcony' type='result' id='roster_1'>
6
- <query xmlns='jabber:iq:roster'>
7
- <item jid='romeo@example.net'
8
- name='Romeo'
9
- subscription='both'>
10
- <group>Friends</group>
11
- </item>
12
- <item jid='mercutio@example.org'
13
- name='Mercutio'
14
- subscription='from'>
15
- <group>Friends</group>
16
- </item>
17
- <item jid='benvolio@example.org'
18
- name='Benvolio'
19
- subscription='both'>
20
- <group>Friends</group>
21
- </item>
22
- </query>
23
- </iq>
24
- XML
4
+ <<-XML
5
+ <iq to='juliet@example.com/balcony' type='result' id='roster_1'>
6
+ <query xmlns='jabber:iq:roster'>
7
+ <item jid='romeo@example.net'
8
+ name='Romeo'
9
+ subscription='both'>
10
+ <group>Friends</group>
11
+ </item>
12
+ <item jid='mercutio@example.org'
13
+ name='Mercutio'
14
+ subscription='from'>
15
+ <group>Friends</group>
16
+ </item>
17
+ <item jid='benvolio@example.org'
18
+ name='Benvolio'
19
+ subscription='both'>
20
+ <group>Friends</group>
21
+ </item>
22
+ </query>
23
+ </iq>
24
+ XML
25
25
  end
26
26
 
27
27
  describe 'Blather::Stanza::Iq::Roster' do
@@ -0,0 +1,70 @@
1
+ __END__
2
+ require File.join(File.dirname(__FILE__), *%w[.. .. .. spec_helper])
3
+ require File.join(File.dirname(__FILE__), *%w[.. .. .. fixtures pubsub])
4
+
5
+ describe 'Blather::Stanza::PubSub::Subscriber' do
6
+ it 'can request a subscription' do
7
+ sub = Blather::Stanza::PubSub.subscribe 'host.name', 'node_name', 'j@i.d'
8
+ sub.to.must_equal JID.new('host.name')
9
+ sub.set?.must_equal true
10
+ sub.find_first('//pubsub/subscription[@node="node_name" and @jid="j@i.d"]').wont_be_nil
11
+ end
12
+
13
+ it 'can request an unsubscribe' do
14
+ sub = Blather::Stanza::PubSub.unsubscribe 'host.name', 'node_name', 'j@i.d'
15
+ sub.to.must_equal JID.new('host.name')
16
+ sub.set?.must_equal true
17
+ sub.find_first('//pubsub/unsubscribe[@node="node_name" and @jid="j@i.d"]').wont_be_nil
18
+ end
19
+
20
+ it 'can request an unsubscribe with a subscription id' do
21
+ sub = Blather::Stanza::PubSub.unsubscribe 'host.name', 'node_name', 'j@i.d', 'subid'
22
+ sub.to.must_equal JID.new('host.name')
23
+ sub.set?.must_equal true
24
+ sub.find_first('//pubsub/unsubscribe[@node="node_name" and @jid="j@i.d" and @subid="subid"]').wont_be_nil
25
+ end
26
+
27
+ it 'knows if it is a subscription' do
28
+ node = XML::Document.string(subscriber_xml).root
29
+ stanza = Blather::Stanza::PubSub.import node
30
+ stanza.subscription?.wont_be_nil
31
+ end
32
+
33
+ it 'knows if it is not a subscription' do
34
+ node = XML::Document.string(unsubscribe_xml).root
35
+ stanza = Blather::Stanza::PubSub.import node
36
+ stanza.subscription?.must_be_nil
37
+ end
38
+
39
+ it 'knows the values of a subscription' do
40
+ node = XML::Document.string(subscriber_xml).root
41
+ stanza = Blather::Stanza::PubSub.import node
42
+ stanza.subscription.must_equal({
43
+ :node => 'princely_musings',
44
+ :jid => JID.new('francisco@denmark.lit'),
45
+ :subid => 'ba49252aaa4f5d320c24d3766f0bdcade78c78d3',
46
+ :subscription => 'subscribed'
47
+ })
48
+ end
49
+
50
+ it 'knows if it is a unsubscribe' do
51
+ node = XML::Document.string(unsubscribe_xml).root
52
+ stanza = Blather::Stanza::PubSub.import node
53
+ stanza.unsubscribe?.wont_be_nil
54
+ end
55
+
56
+ it 'knows if it is not a unsubscribe' do
57
+ node = XML::Document.string(subscriber_xml).root
58
+ stanza = Blather::Stanza::PubSub.import node
59
+ stanza.unsubscribe?.must_be_nil
60
+ end
61
+
62
+ it 'knows the values of the unsubscribe' do
63
+ node = XML::Document.string(unsubscribe_xml).root
64
+ stanza = Blather::Stanza::PubSub.import node
65
+ stanza.unsubscribe.must_equal({
66
+ :node => 'princely_musings',
67
+ :jid => JID.new('francisco@denmark.lit')
68
+ })
69
+ end
70
+ end
@@ -96,12 +96,6 @@ describe 'Blather::Stanza' do
96
96
  it 'can be converted into an error by error name' do
97
97
  s = Stanza.new('message')
98
98
  err = s.as_error 'internal-server-error', 'cancel'
99
- err.must_be_instance_of StanzaError::InternalServerError
100
- end
101
-
102
- it 'can be converted into an error by error class' do
103
- s = Stanza.new('message')
104
- err = s.as_error StanzaError::InternalServerError, 'cancel'
105
- err.must_be_instance_of StanzaError::InternalServerError
99
+ err.name.must_equal :internal_server_error
106
100
  end
107
101
  end
@@ -155,7 +155,7 @@ describe 'Blather::Stream::Client' do
155
155
  it 'sends client an error on stream:error' do
156
156
  @client = mock()
157
157
  @client.expects(:call).with do |v|
158
- v.must_be_instance_of(StreamError::Conflict)
158
+ v.name.must_equal :conflict
159
159
  v.text.must_equal 'Already signed in'
160
160
  v.to_s.must_equal "Stream Error (conflict): #{v.text}"
161
161
  end
@@ -353,7 +353,7 @@ describe 'Blather::Stream::Client' do
353
353
  when :started
354
354
  state = :auth_sent
355
355
  server.send_data "<success xmlns='urn:ietf:params:xml:ns:xmpp-sasl' />"
356
- val.must_equal('<auth xmlns="urn:ietf:params:xml:ns:xmpp-sasl" mechanism="ANONYMOUS">bg==</auth>')
356
+ val.must_equal('<auth xmlns="urn:ietf:params:xml:ns:xmpp-sasl" mechanism="ANONYMOUS"/>')
357
357
 
358
358
  when :auth_sent
359
359
  EM.stop
@@ -368,12 +368,41 @@ describe 'Blather::Stream::Client' do
368
368
  end
369
369
  end
370
370
 
371
- it 'tried each possible mechanism until it fails completely' do
371
+ it 'connects via ANONYMOUS if the JID has a blank node' do
372
+ state = nil
373
+ @jid = JID.new '@d'
374
+
375
+ mocked_server(3) do |val, server|
376
+ case state
377
+ when nil
378
+ state = :started
379
+ server.send_data "<?xml version='1.0'?><stream:stream xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams'><stream:features><mechanisms xmlns='urn:ietf:params:xml:ns:xmpp-sasl'><mechanism>DIGEST-MD5</mechanism><mechanism>PLAIN</mechanism><mechanism>ANONYMOUS</mechanism></mechanisms></stream:features>"
380
+ val.must_match(/stream:stream/)
381
+
382
+ when :started
383
+ state = :auth_sent
384
+ server.send_data "<success xmlns='urn:ietf:params:xml:ns:xmpp-sasl' />"
385
+ val.must_equal('<auth xmlns="urn:ietf:params:xml:ns:xmpp-sasl" mechanism="ANONYMOUS"/>')
386
+
387
+ when :auth_sent
388
+ EM.stop
389
+ state = :complete
390
+ val.must_match(/stream:stream/)
391
+
392
+ else
393
+ EM.stop
394
+ false
395
+
396
+ end
397
+ end
398
+ end
399
+
400
+ it 'tries each possible mechanism until it fails completely' do
372
401
  state = nil
373
402
  @client = mock()
374
403
  @client.expects(:call).with do |n|
375
404
  n.must_be_kind_of(SASLError)
376
- n.must_be_instance_of SASLError::NotAuthorized
405
+ n.name.must_equal :not_authorized
377
406
  end
378
407
 
379
408
  mocked_server(5) do |val, server|
@@ -472,7 +501,7 @@ describe 'Blather::Stream::Client' do
472
501
  it "fails on #{error_type}" do
473
502
  @client = mock()
474
503
  @client.expects(:call).with do |n|
475
- n.must_be_instance_of SASLError.class_from_registration(error_type)
504
+ n.name.must_equal error_type.gsub('-','_').to_sym
476
505
  end
477
506
  state = nil
478
507
  mocked_server(3) do |val, server|
@@ -601,7 +630,7 @@ describe 'Blather::Stream::Client' do
601
630
  state = nil
602
631
  @client = mock()
603
632
  @client.expects(:call).with do |n|
604
- n.must_be_instance_of StanzaError::BadRequest
633
+ n.name.must_equal :bad_request
605
634
  end
606
635
  mocked_server(3) do |val, server|
607
636
  case state
@@ -695,7 +724,7 @@ describe 'Blather::Stream::Client' do
695
724
  state = nil
696
725
  @client = mock()
697
726
  @client.expects(:call).with do |n|
698
- n.must_be_instance_of StanzaError::InternalServerError
727
+ n.name.must_equal :internal_server_error
699
728
  end
700
729
  mocked_server(3) do |val, server|
701
730
  case state
data/spec/spec_helper.rb CHANGED
@@ -1,4 +1,4 @@
1
- require File.join(File.dirname(__FILE__), *%w[.. lib blather])
1
+ require File.expand_path(File.join(File.dirname(__FILE__), *%w[.. lib blather]))
2
2
  require 'rubygems'
3
3
  require 'minitest/spec'
4
4
  require 'mocha'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: blather
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.3
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeff Smick
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-05-07 00:00:00 -07:00
12
+ date: 2009-05-12 00:00:00 -07:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -44,16 +44,13 @@ extra_rdoc_files:
44
44
  files:
45
45
  - examples/drb_client.rb
46
46
  - examples/echo.rb
47
- - ext/Makefile
47
+ - examples/print_heirarchy.rb
48
48
  - ext/extconf.rb
49
- - ext/mkmf.log
50
- - ext/push_parser.bundle
51
49
  - ext/push_parser.c
52
- - ext/push_parser.o
53
- - lib/autotest/discover.rb
54
- - lib/autotest/spec.rb
55
50
  - lib/blather.rb
56
51
  - lib/blather/client.rb
52
+ - lib/blather/client/client.rb
53
+ - lib/blather/client/dsl.rb
57
54
  - lib/blather/core_ext/active_support.rb
58
55
  - lib/blather/core_ext/libxml.rb
59
56
  - lib/blather/errors.rb
@@ -64,16 +61,17 @@ files:
64
61
  - lib/blather/roster.rb
65
62
  - lib/blather/roster_item.rb
66
63
  - lib/blather/stanza.rb
64
+ - lib/blather/stanza/disco.rb
65
+ - lib/blather/stanza/disco/disco_info.rb
66
+ - lib/blather/stanza/disco/disco_items.rb
67
67
  - lib/blather/stanza/iq.rb
68
- - lib/blather/stanza/iq/disco.rb
69
- - lib/blather/stanza/iq/discos/disco_info.rb
70
- - lib/blather/stanza/iq/discos/disco_items.rb
71
68
  - lib/blather/stanza/iq/query.rb
72
69
  - lib/blather/stanza/iq/roster.rb
73
70
  - lib/blather/stanza/message.rb
74
71
  - lib/blather/stanza/presence.rb
75
72
  - lib/blather/stanza/presence/status.rb
76
73
  - lib/blather/stanza/presence/subscription.rb
74
+ - lib/blather/stanza/pubsub/subscriber.rb
77
75
  - lib/blather/stream.rb
78
76
  - lib/blather/stream/client.rb
79
77
  - lib/blather/stream/component.rb
@@ -110,11 +108,14 @@ required_rubygems_version: !ruby/object:Gem::Requirement
110
108
  requirements: []
111
109
 
112
110
  rubyforge_project: squishtech
113
- rubygems_version: 1.3.2
111
+ rubygems_version: 1.3.3
114
112
  signing_key:
115
113
  specification_version: 3
116
114
  summary: An evented XMPP library written on EventMachine and libxml-ruby
117
115
  test_files:
116
+ - spec/blather/client/client_spec.rb
117
+ - spec/blather/client/dsl_spec.rb
118
+ - spec/blather/client_spec.rb
118
119
  - spec/blather/core_ext/libxml_spec.rb
119
120
  - spec/blather/errors/sasl_error_spec.rb
120
121
  - spec/blather/errors/stanza_error_spec.rb
@@ -123,8 +124,8 @@ test_files:
123
124
  - spec/blather/jid_spec.rb
124
125
  - spec/blather/roster_item_spec.rb
125
126
  - spec/blather/roster_spec.rb
126
- - spec/blather/stanza/iq/discos/disco_info_spec.rb
127
- - spec/blather/stanza/iq/discos/disco_items_spec.rb
127
+ - spec/blather/stanza/discos/disco_info_spec.rb
128
+ - spec/blather/stanza/discos/disco_items_spec.rb
128
129
  - spec/blather/stanza/iq/query_spec.rb
129
130
  - spec/blather/stanza/iq/roster_spec.rb
130
131
  - spec/blather/stanza/iq_spec.rb
@@ -132,12 +133,9 @@ test_files:
132
133
  - spec/blather/stanza/presence/status_spec.rb
133
134
  - spec/blather/stanza/presence/subscription_spec.rb
134
135
  - spec/blather/stanza/presence_spec.rb
135
- - spec/blather/stanza/pubsub/event_spec.rb
136
+ - spec/blather/stanza/pubsub/subscriber_spec.rb
136
137
  - spec/blather/stanza_spec.rb
137
138
  - spec/blather/stream/client_spec.rb
138
139
  - spec/blather/stream/component_spec.rb
139
140
  - spec/blather/xmpp_node_spec.rb
140
- - spec/build_safe.rb
141
141
  - spec/spec_helper.rb
142
- - examples/drb_client.rb
143
- - examples/echo.rb