blather 0.6.2 → 0.7.0

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