blather 0.6.2 → 0.7.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 (78) hide show
  1. data/.rspec +3 -0
  2. data/.travis.yml +1 -8
  3. data/CHANGELOG.md +230 -0
  4. data/Guardfile +4 -4
  5. data/README.md +2 -8
  6. data/Rakefile +14 -27
  7. data/blather.gemspec +8 -18
  8. data/lib/blather.rb +1 -0
  9. data/lib/blather/client/client.rb +8 -0
  10. data/lib/blather/roster.rb +7 -0
  11. data/lib/blather/stanza/iq/roster.rb +1 -1
  12. data/lib/blather/stanza/message/muc_user.rb +2 -0
  13. data/lib/blather/stanza/muc/muc_user_base.rb +4 -3
  14. data/lib/blather/stanza/presence.rb +12 -14
  15. data/lib/blather/stanza/presence/c.rb +58 -62
  16. data/lib/blather/stanza/presence/muc.rb +14 -10
  17. data/lib/blather/stanza/presence/muc_user.rb +47 -36
  18. data/lib/blather/stanza/presence/status.rb +106 -101
  19. data/lib/blather/stanza/presence/subscription.rb +59 -60
  20. data/lib/blather/stream.rb +1 -3
  21. data/lib/blather/stream/features/resource.rb +0 -1
  22. data/lib/blather/version.rb +1 -2
  23. data/lib/blather/xmpp_node.rb +24 -3
  24. data/spec/blather/client/client_spec.rb +64 -64
  25. data/spec/blather/client/dsl/pubsub_spec.rb +127 -127
  26. data/spec/blather/client/dsl_spec.rb +11 -11
  27. data/spec/blather/errors/sasl_error_spec.rb +3 -3
  28. data/spec/blather/errors/stanza_error_spec.rb +26 -26
  29. data/spec/blather/errors/stream_error_spec.rb +22 -22
  30. data/spec/blather/errors_spec.rb +7 -7
  31. data/spec/blather/file_transfer_spec.rb +16 -18
  32. data/spec/blather/jid_spec.rb +29 -29
  33. data/spec/blather/roster_item_spec.rb +18 -18
  34. data/spec/blather/roster_spec.rb +18 -18
  35. data/spec/blather/stanza/discos/disco_info_spec.rb +56 -57
  36. data/spec/blather/stanza/discos/disco_items_spec.rb +33 -33
  37. data/spec/blather/stanza/iq/command_spec.rb +57 -57
  38. data/spec/blather/stanza/iq/ibb_spec.rb +27 -39
  39. data/spec/blather/stanza/iq/ping_spec.rb +13 -9
  40. data/spec/blather/stanza/iq/query_spec.rb +16 -16
  41. data/spec/blather/stanza/iq/roster_spec.rb +29 -30
  42. data/spec/blather/stanza/iq/s5b_spec.rb +10 -13
  43. data/spec/blather/stanza/iq/si_spec.rb +20 -23
  44. data/spec/blather/stanza/iq/vcard_spec.rb +22 -25
  45. data/spec/blather/stanza/iq_spec.rb +12 -12
  46. data/spec/blather/stanza/message/muc_user_spec.rb +36 -36
  47. data/spec/blather/stanza/message_spec.rb +56 -56
  48. data/spec/blather/stanza/presence/c_spec.rb +17 -7
  49. data/spec/blather/stanza/presence/muc_spec.rb +8 -8
  50. data/spec/blather/stanza/presence/muc_user_spec.rb +23 -23
  51. data/spec/blather/stanza/presence/status_spec.rb +42 -30
  52. data/spec/blather/stanza/presence/subscription_spec.rb +22 -23
  53. data/spec/blather/stanza/presence_spec.rb +72 -34
  54. data/spec/blather/stanza/pubsub/affiliations_spec.rb +12 -12
  55. data/spec/blather/stanza/pubsub/create_spec.rb +10 -10
  56. data/spec/blather/stanza/pubsub/event_spec.rb +31 -31
  57. data/spec/blather/stanza/pubsub/items_spec.rb +21 -21
  58. data/spec/blather/stanza/pubsub/publish_spec.rb +21 -21
  59. data/spec/blather/stanza/pubsub/retract_spec.rb +20 -20
  60. data/spec/blather/stanza/pubsub/subscribe_spec.rb +17 -17
  61. data/spec/blather/stanza/pubsub/subscription_spec.rb +28 -28
  62. data/spec/blather/stanza/pubsub/subscriptions_spec.rb +11 -11
  63. data/spec/blather/stanza/pubsub/unsubscribe_spec.rb +22 -22
  64. data/spec/blather/stanza/pubsub_owner/delete_spec.rb +9 -9
  65. data/spec/blather/stanza/pubsub_owner/purge_spec.rb +9 -9
  66. data/spec/blather/stanza/pubsub_owner_spec.rb +6 -6
  67. data/spec/blather/stanza/pubsub_spec.rb +16 -16
  68. data/spec/blather/stanza/x_spec.rb +53 -53
  69. data/spec/blather/stanza_spec.rb +39 -39
  70. data/spec/blather/stream/client_spec.rb +133 -133
  71. data/spec/blather/stream/component_spec.rb +7 -7
  72. data/spec/blather/stream/parser_spec.rb +24 -24
  73. data/spec/blather/stream/ssl_spec.rb +7 -7
  74. data/spec/blather/xmpp_node_spec.rb +17 -7
  75. data/spec/blather_spec.rb +4 -4
  76. data/spec/spec_helper.rb +6 -54
  77. metadata +53 -68
  78. data/CHANGELOG +0 -220
@@ -46,12 +46,12 @@ describe Blather::Stream::Component do
46
46
  when nil
47
47
  state = :started
48
48
  server.send_data "<?xml version='1.0'?><stream:stream xmlns='jabber:component:accept' xmlns:stream='http://etherx.jabber.org/streams' id='12345'>"
49
- val.must_match(/stream:stream/)
49
+ val.should match(/stream:stream/)
50
50
 
51
51
  when :started
52
52
  server.send_data '<handshake/>'
53
53
  EM.stop
54
- val.must_equal "<handshake>#{Digest::SHA1.hexdigest('12345'+"secret")}</handshake>"
54
+ val.should == "<handshake>#{Digest::SHA1.hexdigest('12345'+"secret")}</handshake>"
55
55
 
56
56
  end
57
57
  end
@@ -65,11 +65,11 @@ describe Blather::Stream::Component do
65
65
 
66
66
  Blather::Stream::Component.start @client, @jid || Blather::JID.new('n@d/r'), 'pass', '127.0.0.1', 50000 - rand(1000)
67
67
  }
68
- end.must_raise Blather::Stream::ConnectionFailed
68
+ end.should raise_error Blather::Stream::ConnectionFailed
69
69
  end
70
70
 
71
71
  it 'starts the stream once the connection is complete' do
72
- mocked_server(1) { |val, _| EM.stop; val.must_match(/stream:stream/) }
72
+ mocked_server(1) { |val, _| EM.stop; val.should match(/stream:stream/) }
73
73
  end
74
74
 
75
75
  it 'sends stanzas to the client when the stream is ready' do
@@ -85,12 +85,12 @@ describe Blather::Stream::Component do
85
85
  when nil
86
86
  state = :started
87
87
  server.send_data "<?xml version='1.0'?><stream:stream xmlns='jabber:component:accept' xmlns:stream='http://etherx.jabber.org/streams' id='12345'>"
88
- val.must_match(/stream:stream/)
88
+ val.should match(/stream:stream/)
89
89
 
90
90
  when :started
91
91
  server.send_data '<handshake/>'
92
92
  server.send_data "<message to='comp.id' from='d@e/f' type='chat' xml:lang='en'><body>Message!</body></message>"
93
- val.must_equal "<handshake>#{Digest::SHA1.hexdigest('12345'+"secret")}</handshake>"
93
+ val.should == "<handshake>#{Digest::SHA1.hexdigest('12345'+"secret")}</handshake>"
94
94
 
95
95
  end
96
96
  end
@@ -102,7 +102,7 @@ describe Blather::Stream::Component do
102
102
  client.stubs(:jid=)
103
103
  msg = Blather::Stanza::Message.new 'to@jid.com', 'body'
104
104
  comp = Blather::Stream::Component.new nil, client, 'jid.com', 'pass'
105
- comp.expects(:send_data).with { |s| s.must_match(/^<message[^>]*from="jid\.com"/) }
105
+ comp.expects(:send_data).with { |s| s.should match(/^<message[^>]*from="jid\.com"/) }
106
106
  comp.send msg
107
107
  end
108
108
  end
@@ -17,16 +17,16 @@ describe Blather::Stream::Parser do
17
17
 
18
18
  def check_parse(data)
19
19
  @parser.receive_data data
20
- @client.data.size.must_equal 1
21
- @client.data[0].to_s.gsub(/\n\s*/,'').must_equal data
20
+ @client.data.size.should == 1
21
+ @client.data[0].to_s.gsub(/\n\s*/,'').should == data
22
22
  end
23
23
 
24
24
  it 'handles fragmented parsing' do
25
25
  @parser.receive_data '<foo>'
26
26
  @parser.receive_data '<bar/>'
27
27
  @parser.receive_data '</foo>'
28
- @client.data.size.must_equal 1
29
- @client.data[0].to_s.gsub(/\n\s*/,'').must_equal '<foo><bar/></foo>'
28
+ @client.data.size.should == 1
29
+ @client.data[0].to_s.gsub(/\n\s*/,'').should == '<foo><bar/></foo>'
30
30
  end
31
31
 
32
32
  it 'handles a basic example' do
@@ -88,15 +88,15 @@ describe Blather::Stream::Parser do
88
88
  "</message>",
89
89
  ]
90
90
  data.each { |d| @parser.receive_data d }
91
- @client.data.size.must_equal 1
92
- @client.data[0].to_s.split("\n").map{|n|n.strip}.must_equal data
93
- @client.data[0].xpath('//*[namespace-uri()="urn:ietf:params:xml:ns:xmpp-stanzas"]').size.must_equal 2
91
+ @client.data.size.should == 1
92
+ @client.data[0].to_s.split("\n").map{|n|n.strip}.should == data
93
+ @client.data[0].xpath('//*[namespace-uri()="urn:ietf:params:xml:ns:xmpp-stanzas"]').size.should == 2
94
94
  end
95
95
 
96
96
  it 'handles not absolute namespaces' do
97
- assert_nothing_raised do
97
+ lambda do
98
98
  @parser.receive_data '<iq type="result" id="blather0007" to="n@d/r"><vCard xmlns="vcard-temp"/></iq>'
99
- end
99
+ end.should_not raise_error
100
100
  end
101
101
 
102
102
  it 'responds with stream:stream as a separate response' do
@@ -105,19 +105,19 @@ describe Blather::Stream::Parser do
105
105
  '<foo/>'
106
106
  ]
107
107
  data.each { |d| @parser.receive_data d }
108
- @client.data.size.must_equal 2
109
- @client.data[0].document.xpath('/stream:stream[@to="example.com" and @version="1.0"]', 'xmlns' => 'jabber:client', 'stream' => 'http://etherx.jabber.org/streams').size.must_equal 1
110
- @client.data[1].to_s.must_equal '<foo/>'
108
+ @client.data.size.should == 2
109
+ @client.data[0].document.xpath('/stream:stream[@to="example.com" and @version="1.0"]', 'xmlns' => 'jabber:client', 'stream' => 'http://etherx.jabber.org/streams').size.should == 1
110
+ @client.data[1].to_s.should == '<foo/>'
111
111
  end
112
112
 
113
113
  it 'response with stream:end when receiving </stream:stream>' do
114
114
  @parser.receive_data '<stream:stream xmlns:stream="http://etherx.jabber.org/streams"/>'
115
- @client.data.size.must_equal 2
116
- @client.data[1].to_s.must_equal '<stream:end xmlns:stream="http://etherx.jabber.org/streams"/>'
115
+ @client.data.size.should == 2
116
+ @client.data[1].to_s.should == '<stream:end xmlns:stream="http://etherx.jabber.org/streams"/>'
117
117
  end
118
118
 
119
119
  it 'raises ParseError when an error is sent' do
120
- lambda { @parser.receive_data "<stream:stream>" }.must_raise(Blather::ParseError)
120
+ lambda { @parser.receive_data "<stream:stream>" }.should raise_error(Blather::ParseError)
121
121
  end
122
122
 
123
123
  it 'handles stream stanzas without an issue' do
@@ -126,9 +126,9 @@ describe Blather::Stream::Parser do
126
126
  '<stream:features/>'
127
127
  ]
128
128
  data.each { |d| @parser.receive_data d }
129
- @client.data.size.must_equal 2
130
- @client.data[0].document.xpath('/stream:stream[@to="example.com" and @version="1.0"]', 'xmlns' => 'jabber:client', 'stream' => 'http://etherx.jabber.org/streams').size.must_equal 1
131
- @client.data[1].to_s.must_equal '<stream:features xmlns:stream="http://etherx.jabber.org/streams"/>'
129
+ @client.data.size.should == 2
130
+ @client.data[0].document.xpath('/stream:stream[@to="example.com" and @version="1.0"]', 'xmlns' => 'jabber:client', 'stream' => 'http://etherx.jabber.org/streams').size.should == 1
131
+ @client.data[1].to_s.should == '<stream:features xmlns:stream="http://etherx.jabber.org/streams"/>'
132
132
  end
133
133
 
134
134
  it 'ignores the client namespace on stanzas' do
@@ -137,9 +137,9 @@ describe Blather::Stream::Parser do
137
137
  "<html xmlns='http://jabber.org/protocol/xhtml-im'><body xmlns='http://www.w3.org/1999/xhtml'>exit</body></html>",
138
138
  "</message>"
139
139
  ].each { |d| @parser.receive_data d }
140
- @client.data.size.must_equal 1
141
- @client.data[0].document.xpath('/message/body[.="exit"]').wont_be_empty
142
- @client.data[0].document.xpath('/message/im:html/xhtml:body[.="exit"]', 'im' => 'http://jabber.org/protocol/xhtml-im', 'xhtml' => 'http://www.w3.org/1999/xhtml').wont_be_empty
140
+ @client.data.size.should == 1
141
+ @client.data[0].document.xpath('/message/body[.="exit"]').should_not be_empty
142
+ @client.data[0].document.xpath('/message/im:html/xhtml:body[.="exit"]', 'im' => 'http://jabber.org/protocol/xhtml-im', 'xhtml' => 'http://www.w3.org/1999/xhtml').should_not be_empty
143
143
  end
144
144
 
145
145
  it 'ignores the component namespace on stanzas' do
@@ -148,8 +148,8 @@ describe Blather::Stream::Parser do
148
148
  "<html xmlns='http://jabber.org/protocol/xhtml-im'><body xmlns='http://www.w3.org/1999/xhtml'>exit</body></html>",
149
149
  "</message>"
150
150
  ].each { |d| @parser.receive_data d }
151
- @client.data.size.must_equal 1
152
- @client.data[0].document.xpath('/message/body[.="exit"]').wont_be_empty
153
- @client.data[0].document.xpath('/message/im:html/xhtml:body[.="exit"]', 'im' => 'http://jabber.org/protocol/xhtml-im', 'xhtml' => 'http://www.w3.org/1999/xhtml').wont_be_empty
151
+ @client.data.size.should == 1
152
+ @client.data[0].document.xpath('/message/body[.="exit"]').should_not be_empty
153
+ @client.data[0].document.xpath('/message/im:html/xhtml:body[.="exit"]', 'im' => 'http://jabber.org/protocol/xhtml-im', 'xhtml' => 'http://www.w3.org/1999/xhtml').should_not be_empty
154
154
  end
155
155
  end
@@ -6,27 +6,27 @@ describe Blather::CertStore do
6
6
  @cert = File.open("./test.crt", 'w') {|f| f.write(@pem) }
7
7
  @store = Blather::CertStore.new("./")
8
8
  end
9
-
9
+
10
10
  after do
11
11
  File.delete("./test.crt")
12
12
  end
13
-
13
+
14
14
  it 'can verify valid cert' do
15
15
  @store.trusted?(@pem).tap do |trusted|
16
- trusted.must_equal true
16
+ trusted.should == true
17
17
  end
18
18
  end
19
-
19
+
20
20
  it 'can verify invalid cert' do
21
21
  @store.trusted?(@pem.gsub("L", "a")).tap do |trusted|
22
- trusted.must_equal nil
22
+ trusted.should == nil
23
23
  end
24
24
  end
25
-
25
+
26
26
  it 'can verify without a cert store' do
27
27
  @store = Blather::CertStore.new("../")
28
28
  @store.trusted?(@pem).tap do |trusted|
29
- trusted.must_equal true
29
+ trusted.should == true
30
30
  end
31
31
  end
32
32
  end
@@ -6,32 +6,42 @@ describe Blather::XMPPNode do
6
6
  it 'generates a node based on the registered_name' do
7
7
  foo = Class.new(Blather::XMPPNode)
8
8
  foo.registered_name = 'foo'
9
- foo.new.element_name.must_equal 'foo'
9
+ foo.new.element_name.should == 'foo'
10
10
  end
11
11
 
12
12
  it 'sets the namespace on creation' do
13
13
  foo = Class.new(Blather::XMPPNode)
14
14
  foo.registered_ns = 'foo'
15
- foo.new('foo').namespace.href.must_equal 'foo'
15
+ foo.new('foo').namespace.href.should == 'foo'
16
16
  end
17
17
 
18
18
  it 'registers sub classes' do
19
19
  class RegistersSubClass < Blather::XMPPNode; register 'foo', 'foo:bar'; end
20
- RegistersSubClass.registered_name.must_equal 'foo'
21
- RegistersSubClass.registered_ns.must_equal 'foo:bar'
22
- Blather::XMPPNode.class_from_registration('foo', 'foo:bar').must_equal RegistersSubClass
20
+ RegistersSubClass.registered_name.should == 'foo'
21
+ RegistersSubClass.registered_ns.should == 'foo:bar'
22
+ Blather::XMPPNode.class_from_registration('foo', 'foo:bar').should == RegistersSubClass
23
23
  end
24
24
 
25
25
  it 'imports another node' do
26
26
  class ImportSubClass < Blather::XMPPNode; register 'foo', 'foo:bar'; end
27
27
  n = Blather::XMPPNode.new('foo')
28
28
  n.namespace = 'foo:bar'
29
- Blather::XMPPNode.import(n).must_be_kind_of ImportSubClass
29
+ Blather::XMPPNode.import(n).should be_kind_of ImportSubClass
30
30
  end
31
31
 
32
32
  it 'can convert itself into a stanza' do
33
33
  class StanzaConvert < Blather::XMPPNode; register 'foo'; end
34
34
  n = Blather::XMPPNode.new('foo')
35
- n.to_stanza.must_be_kind_of StanzaConvert
35
+ n.to_stanza.should be_kind_of StanzaConvert
36
+ end
37
+
38
+ it 'can parse a string and import it' do
39
+ class StanzaParse < Blather::XMPPNode; register 'foo'; end
40
+ string = '<foo/>'
41
+ n = Nokogiri::XML(string).root
42
+ i = Blather::XMPPNode.import n
43
+ i.should be_kind_of StanzaParse
44
+ p = Blather::XMPPNode.parse string
45
+ p.should be_kind_of StanzaParse
36
46
  end
37
47
  end
data/spec/blather_spec.rb CHANGED
@@ -1,14 +1,14 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Blather do
4
-
4
+
5
5
  describe "while accessing to Logger object" do
6
6
  it "should return a Logger instance" do
7
- Blather.logger.must_be_instance_of Logger
7
+ Blather.logger.should be_instance_of Logger
8
8
  end
9
9
 
10
10
  it "should config log level to info by default" do
11
- Blather.logger.level.must_equal 1
11
+ Blather.logger.level.should == 1
12
12
  end
13
13
  end
14
14
 
@@ -21,7 +21,7 @@ describe Blather do
21
21
  Blather.logger.expects(:debug).with("foo bar").once
22
22
  Blather.log "foo bar"
23
23
  end
24
-
24
+
25
25
  %w<debug info error fatal>.each do |val|
26
26
  it "should forward to #{val} if configured that default level" do
27
27
  Blather.logger.expects(val.to_sym).with("foo bar").once
data/spec/spec_helper.rb CHANGED
@@ -1,62 +1,14 @@
1
- $:.unshift(File.join(File.dirname(__FILE__), "..", "lib"))
2
-
3
1
  require 'blather'
4
- require 'minitest/spec'
5
2
  require 'mocha'
6
- require 'mocha/expectation_error'
7
-
8
- MiniTest::Unit.autorun
9
-
10
- module MiniTest
11
- require 'pathname' if MINI_DIR =~ %r{^./}
12
3
 
13
- module Assertions
14
- def assert_change(stmt, args = {}, msg = nil)
15
- msg ||= proc {
16
- m = "Expected #{stmt} to change"
17
- m << " by #{mu_pp args[:by]}" if args[:by]
18
- m << (args[:from] ? " from #{mu_pp args[:from]}" : '') + " to #{mu_pp args[:to]}" if args[:to]
19
- m
20
- }.call
4
+ Dir[File.dirname(__FILE__) + "/support/**/*.rb"].each {|f| require f}
21
5
 
22
- init_val = eval stmt
23
- yield
24
- new_val = eval stmt
25
-
26
- assert_equal(args[:by], (new_val - init_val), msg) if args[:by]
27
- assert_equal([args[:from], args[:to]], [(init_val if args[:from]), new_val], msg) if args[:to]
28
- refute_equal(init_val, new_val, msg) if args.empty?
29
- end
30
-
31
- def assert_nothing_raised(*args)
32
- self._assertions += 1
33
- msg = Module === args.last ? nil : args.pop
34
- begin
35
- line = __LINE__; yield
36
- rescue Exception => e
37
- bt = e.backtrace
38
- as = e.instance_of?(MiniTest::Assertion)
39
- if as
40
- ans = /\A#{Regexp.quote(__FILE__)}:#{line}:in /o
41
- bt.reject! {|ln| ans =~ ln}
42
- end
43
- if ((args.empty? && !as) ||
44
- args.any? {|a| a.instance_of?(Module) ? e.is_a?(a) : e.class == a })
45
- msg = message(msg) { "Exception raised:\n<#{mu_pp(e)}>" }
46
- raise MiniTest::Assertion, msg.call, bt
47
- else
48
- raise
49
- end
50
- end
51
- nil
52
- end
53
- end
54
- end
6
+ RSpec.configure do |config|
7
+ config.mock_with :mocha
8
+ config.filter_run :focus => true
9
+ config.run_all_when_everything_filtered = true
55
10
 
56
- class Object
57
- def must_change *args, &block
58
- return MiniTest::Spec.current.assert_change(*args, &self)
59
- end
11
+ config.before(:each) { GirlFriday::WorkQueue.immediate! }
60
12
  end
61
13
 
62
14
  def parse_stanza(xml)
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.6.2
4
+ version: 0.7.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-02-28 00:00:00.000000000 Z
12
+ date: 2012-03-15 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: eventmachine
16
- requirement: &2156245180 !ruby/object:Gem::Requirement
16
+ requirement: &2160912760 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 0.12.6
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *2156245180
24
+ version_requirements: *2160912760
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: nokogiri
27
- requirement: &2156244500 !ruby/object:Gem::Requirement
27
+ requirement: &2160912200 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,21 +32,21 @@ dependencies:
32
32
  version: 1.4.0
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *2156244500
35
+ version_requirements: *2160912200
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: niceogiri
38
- requirement: &2156243540 !ruby/object:Gem::Requirement
38
+ requirement: &2160911680 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
- - - ! '>='
41
+ - - ~>
42
42
  - !ruby/object:Gem::Version
43
- version: 0.1.0
43
+ version: 1.0.0
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *2156243540
46
+ version_requirements: *2160911680
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: activesupport
49
- requirement: &2156242620 !ruby/object:Gem::Requirement
49
+ requirement: &2160911180 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,65 +54,65 @@ dependencies:
54
54
  version: 3.0.7
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *2156242620
57
+ version_requirements: *2160911180
58
58
  - !ruby/object:Gem::Dependency
59
- name: minitest
60
- requirement: &2156241660 !ruby/object:Gem::Requirement
59
+ name: girl_friday
60
+ requirement: &2160910780 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
- - - ~>
63
+ - - ! '>='
64
64
  - !ruby/object:Gem::Version
65
- version: 1.7.1
66
- type: :development
65
+ version: '0'
66
+ type: :runtime
67
67
  prerelease: false
68
- version_requirements: *2156241660
68
+ version_requirements: *2160910780
69
69
  - !ruby/object:Gem::Dependency
70
- name: mocha
71
- requirement: &2156240420 !ruby/object:Gem::Requirement
70
+ name: bundler
71
+ requirement: &2160910100 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ~>
75
75
  - !ruby/object:Gem::Version
76
- version: 0.9.12
76
+ version: '1.0'
77
77
  type: :development
78
78
  prerelease: false
79
- version_requirements: *2156240420
79
+ version_requirements: *2160910100
80
80
  - !ruby/object:Gem::Dependency
81
- name: bundler
82
- requirement: &2156239840 !ruby/object:Gem::Requirement
81
+ name: rake
82
+ requirement: &2160830340 !ruby/object:Gem::Requirement
83
83
  none: false
84
84
  requirements:
85
- - - ~>
85
+ - - ! '>='
86
86
  - !ruby/object:Gem::Version
87
- version: 1.0.0
87
+ version: '0'
88
88
  type: :development
89
89
  prerelease: false
90
- version_requirements: *2156239840
90
+ version_requirements: *2160830340
91
91
  - !ruby/object:Gem::Dependency
92
- name: rcov
93
- requirement: &2156238560 !ruby/object:Gem::Requirement
92
+ name: rspec
93
+ requirement: &2160829420 !ruby/object:Gem::Requirement
94
94
  none: false
95
95
  requirements:
96
96
  - - ~>
97
97
  - !ruby/object:Gem::Version
98
- version: 0.9.9
98
+ version: '2.7'
99
99
  type: :development
100
100
  prerelease: false
101
- version_requirements: *2156238560
101
+ version_requirements: *2160829420
102
102
  - !ruby/object:Gem::Dependency
103
- name: yard
104
- requirement: &2156237900 !ruby/object:Gem::Requirement
103
+ name: mocha
104
+ requirement: &2160828500 !ruby/object:Gem::Requirement
105
105
  none: false
106
106
  requirements:
107
107
  - - ~>
108
108
  - !ruby/object:Gem::Version
109
- version: 0.6.1
109
+ version: 0.9.12
110
110
  type: :development
111
111
  prerelease: false
112
- version_requirements: *2156237900
112
+ version_requirements: *2160828500
113
113
  - !ruby/object:Gem::Dependency
114
- name: rake
115
- requirement: &2156237420 !ruby/object:Gem::Requirement
114
+ name: guard-rspec
115
+ requirement: &2160828100 !ruby/object:Gem::Requirement
116
116
  none: false
117
117
  requirements:
118
118
  - - ! '>='
@@ -120,43 +120,21 @@ dependencies:
120
120
  version: '0'
121
121
  type: :development
122
122
  prerelease: false
123
- version_requirements: *2156237420
123
+ version_requirements: *2160828100
124
124
  - !ruby/object:Gem::Dependency
125
- name: guard-minitest
126
- requirement: &2156236560 !ruby/object:Gem::Requirement
125
+ name: yard
126
+ requirement: &2160827480 !ruby/object:Gem::Requirement
127
127
  none: false
128
128
  requirements:
129
- - - ! '>='
129
+ - - ~>
130
130
  - !ruby/object:Gem::Version
131
- version: '0'
131
+ version: 0.6.1
132
132
  type: :development
133
133
  prerelease: false
134
- version_requirements: *2156236560
134
+ version_requirements: *2160827480
135
135
  - !ruby/object:Gem::Dependency
136
136
  name: bluecloth
137
- requirement: &2156235340 !ruby/object:Gem::Requirement
138
- none: false
139
- requirements:
140
- - - ! '>='
141
- - !ruby/object:Gem::Version
142
- version: '0'
143
- type: :development
144
- prerelease: false
145
- version_requirements: *2156235340
146
- - !ruby/object:Gem::Dependency
147
- name: growl_notify
148
- requirement: &2156233800 !ruby/object:Gem::Requirement
149
- none: false
150
- requirements:
151
- - - ! '>='
152
- - !ruby/object:Gem::Version
153
- version: '0'
154
- type: :development
155
- prerelease: false
156
- version_requirements: *2156233800
157
- - !ruby/object:Gem::Dependency
158
- name: rb-fsevent
159
- requirement: &2156232440 !ruby/object:Gem::Requirement
137
+ requirement: &2160826940 !ruby/object:Gem::Requirement
160
138
  none: false
161
139
  requirements:
162
140
  - - ! '>='
@@ -164,7 +142,7 @@ dependencies:
164
142
  version: '0'
165
143
  type: :development
166
144
  prerelease: false
167
- version_requirements: *2156232440
145
+ version_requirements: *2160826940
168
146
  description: An XMPP DSL for Ruby written on top of EventMachine and Nokogiri
169
147
  email: sprsquish@gmail.com
170
148
  executables: []
@@ -176,8 +154,9 @@ files:
176
154
  - .autotest
177
155
  - .gemtest
178
156
  - .gitignore
157
+ - .rspec
179
158
  - .travis.yml
180
- - CHANGELOG
159
+ - CHANGELOG.md
181
160
  - Gemfile
182
161
  - Guardfile
183
162
  - LICENSE
@@ -333,12 +312,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
333
312
  - - ! '>='
334
313
  - !ruby/object:Gem::Version
335
314
  version: '0'
315
+ segments:
316
+ - 0
317
+ hash: -4263563827557354673
336
318
  required_rubygems_version: !ruby/object:Gem::Requirement
337
319
  none: false
338
320
  requirements:
339
321
  - - ! '>='
340
322
  - !ruby/object:Gem::Version
341
323
  version: '0'
324
+ segments:
325
+ - 0
326
+ hash: -4263563827557354673
342
327
  requirements: []
343
328
  rubyforge_project:
344
329
  rubygems_version: 1.8.10