troystribling-agent_xmpp 0.0.0 → 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (82) hide show
  1. data/README.rdoc +397 -2
  2. data/Rakefile +33 -21
  3. data/VERSION +1 -1
  4. data/agent_xmpp.gemspec +78 -33
  5. data/lib/agent_xmpp.rb +11 -7
  6. data/lib/agent_xmpp/app.rb +0 -5
  7. data/lib/agent_xmpp/app/boot.rb +47 -33
  8. data/lib/agent_xmpp/app/controller.rb +135 -19
  9. data/lib/agent_xmpp/client.rb +6 -1
  10. data/lib/agent_xmpp/client/client.rb +22 -155
  11. data/lib/agent_xmpp/client/connection.rb +41 -250
  12. data/lib/agent_xmpp/client/message_delegate.rb +706 -0
  13. data/lib/agent_xmpp/client/message_pipe.rb +176 -0
  14. data/lib/agent_xmpp/client/publish_model.rb +65 -0
  15. data/lib/agent_xmpp/{app/format.rb → client/response.rb} +19 -24
  16. data/lib/agent_xmpp/client/roster_model.rb +139 -0
  17. data/lib/agent_xmpp/client/services_model.rb +97 -0
  18. data/lib/agent_xmpp/config.rb +45 -0
  19. data/lib/agent_xmpp/main.rb +126 -0
  20. data/lib/agent_xmpp/patches.rb +6 -2
  21. data/lib/agent_xmpp/patches/{standard_library_patches/array.rb → array.rb} +14 -7
  22. data/lib/agent_xmpp/patches/{standard_library_patches/float.rb → float.rb} +0 -0
  23. data/lib/agent_xmpp/patches/{standard_library_patches/hash.rb → hash.rb} +3 -3
  24. data/lib/agent_xmpp/patches/{standard_library_patches/object.rb → object.rb} +3 -3
  25. data/lib/agent_xmpp/patches/rexml.rb +69 -0
  26. data/lib/agent_xmpp/patches/{standard_library_patches/string.rb → string.rb} +5 -0
  27. data/lib/agent_xmpp/xmpp.rb +17 -0
  28. data/lib/agent_xmpp/xmpp/element.rb +159 -0
  29. data/lib/agent_xmpp/xmpp/error_response.rb +179 -0
  30. data/lib/agent_xmpp/xmpp/iq.rb +90 -0
  31. data/lib/agent_xmpp/xmpp/iq_command.rb +47 -0
  32. data/lib/agent_xmpp/xmpp/iq_disco.rb +205 -0
  33. data/lib/agent_xmpp/xmpp/iq_pubsub.rb +268 -0
  34. data/lib/agent_xmpp/xmpp/iq_roster.rb +183 -0
  35. data/lib/agent_xmpp/xmpp/iq_version.rb +89 -0
  36. data/lib/agent_xmpp/xmpp/jid.rb +150 -0
  37. data/lib/agent_xmpp/xmpp/message.rb +82 -0
  38. data/lib/agent_xmpp/xmpp/presence.rb +127 -0
  39. data/lib/agent_xmpp/xmpp/sasl.rb +241 -0
  40. data/lib/agent_xmpp/xmpp/stanza.rb +107 -0
  41. data/lib/agent_xmpp/xmpp/x_data.rb +269 -0
  42. data/test/app/app.rb +134 -0
  43. data/test/cases/test_application_message_processing.rb +65 -0
  44. data/test/cases/test_errors.rb +24 -0
  45. data/test/cases/test_presence_management.rb +139 -0
  46. data/test/cases/test_roster_management.rb +214 -0
  47. data/test/cases/test_service_discovery.rb +168 -0
  48. data/test/cases/test_session_management.rb +120 -0
  49. data/test/cases/test_version_discovery.rb +67 -0
  50. data/test/helpers/matchers.rb +23 -0
  51. data/test/helpers/mocks.rb +82 -0
  52. data/test/helpers/test_case_extensions.rb +45 -0
  53. data/test/helpers/test_client.rb +44 -0
  54. data/test/helpers/test_delegate.rb +61 -0
  55. data/test/helpers/test_helper.rb +91 -0
  56. data/test/messages/application_messages.rb +206 -0
  57. data/test/messages/error_messages.rb +35 -0
  58. data/test/messages/presence_messages.rb +66 -0
  59. data/test/messages/roster_messages.rb +126 -0
  60. data/test/messages/service_discovery_messages.rb +201 -0
  61. data/test/messages/session_messages.rb +158 -0
  62. data/test/messages/version_discovery_messages.rb +69 -0
  63. data/test/peer/peer.rb +36 -0
  64. data/test/xml_messages.txt +197 -0
  65. metadata +82 -42
  66. data/bin/agent_xmpp +0 -56
  67. data/lib/agent_xmpp/app/chat_message_body_controller.rb +0 -16
  68. data/lib/agent_xmpp/app/map.rb +0 -45
  69. data/lib/agent_xmpp/app/routes.rb +0 -77
  70. data/lib/agent_xmpp/app/view.rb +0 -49
  71. data/lib/agent_xmpp/client/parser.rb +0 -71
  72. data/lib/agent_xmpp/patches/standard_library_patches.rb +0 -5
  73. data/lib/agent_xmpp/patches/xmpp4r_patches.rb +0 -3
  74. data/lib/agent_xmpp/patches/xmpp4r_patches/command.rb +0 -26
  75. data/lib/agent_xmpp/patches/xmpp4r_patches/iq.rb +0 -26
  76. data/lib/agent_xmpp/patches/xmpp4r_patches/x_data.rb +0 -116
  77. data/lib/agent_xmpp/utils.rb +0 -2
  78. data/lib/agent_xmpp/utils/logger.rb +0 -24
  79. data/lib/agent_xmpp/utils/roster.rb +0 -23
  80. data/lib/agent_xmpp/version.rb +0 -6
  81. data/test/agent_xmpp_test.rb +0 -7
  82. data/test/test_helper.rb +0 -10
@@ -0,0 +1,69 @@
1
+ ##############################################################################################################
2
+ module VersionDiscoveryMessages
3
+
4
+ #####-------------------------------------------------------------------------------------------------------
5
+ class << self
6
+
7
+ #### received messages
8
+ #.........................................................................................................
9
+ def recv_iq_get_query_version(client, from)
10
+ <<-MSG
11
+ <iq from='#{from}' to='#{client.client.jid.to_s}' id='1' type='get' xmlns='jabber:client'>
12
+ <query xmlns='jabber:iq:version'/>
13
+ </iq>
14
+ MSG
15
+ end
16
+
17
+ #.........................................................................................................
18
+ def recv_iq_result_query_version(client, from)
19
+ <<-MSG
20
+ <iq from='#{from}' to='#{client.client.jid.to_s}' id='1' type='result' xmlns='jabber:client'>
21
+ <query xmlns='jabber:iq:version'>
22
+ <name>AgentXMPP</name>
23
+ <version>0.0.0</version>
24
+ <os>Linux 2.6.27-14-generic</os>
25
+ </query>
26
+ </iq>
27
+ MSG
28
+ end
29
+
30
+ #.........................................................................................................
31
+ def recv_iq_error_query_version(client, from)
32
+ <<-MSG
33
+ <iq from='#{from}' to='#{client.client.jid.to_s}' id='1' type='error' xmlns='jabber:client'>
34
+ <query xmlns='jabber:iq:version'/>
35
+ <error code='503' type='cancel'>
36
+ <service-unavailable xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/>
37
+ </error>
38
+ </iq>
39
+ MSG
40
+ end
41
+
42
+ #### sent messages
43
+ #.........................................................................................................
44
+ def send_iq_result_query_version(client, to)
45
+ <<-MSG
46
+ <iq id='1' to='#{to}' type='result' xmlns='jabber:client'>
47
+ <query xmlns='jabber:iq:version'>
48
+ <name>#{AgentXmpp::AGENT_XMPP_NAME}</name>
49
+ <version>#{AgentXmpp::VERSION}</version>
50
+ <os>#{AgentXmpp::OS_VERSION}</os>
51
+ </query>
52
+ </iq>
53
+ MSG
54
+ end
55
+
56
+ #.........................................................................................................
57
+ def send_iq_get_query_version(client, to)
58
+ <<-MSG
59
+ <iq id='1' to='#{to}' type='get' xmlns='jabber:client'>
60
+ <query xmlns='jabber:iq:version'/>
61
+ </iq>
62
+ MSG
63
+ end
64
+
65
+ ## self
66
+ end
67
+
68
+ #### VersionDiscoveryMessages
69
+ end
@@ -0,0 +1,36 @@
1
+ ##########################################################################################################
2
+ require 'rubygems'
3
+ require "#{File.dirname(__FILE__)}/../../lib/agent_xmpp"
4
+
5
+ ##########################################################################################################
6
+ before_start do
7
+ AgentXmpp.logger.level = Logger::DEBUG
8
+ AgentXmpp.logger.info "before_start"
9
+ end
10
+
11
+ #.........................................................................................................
12
+ discovered_command_nodes do |jid, nodes|
13
+ AgentXmpp.logger.info "discovered_command_nodes"
14
+ nodes.each do |n|
15
+ AgentXmpp.logger.info "COMMAND NODE: #{jid}, #{n}"
16
+ end
17
+ end
18
+
19
+ ##########################################################################################################
20
+ execute 'hello' do
21
+ AgentXmpp.logger.info "EXECUTE: hello"
22
+ 'hello'
23
+ end
24
+
25
+ ##########################################################################################################
26
+ # send commands to all available resources of publisher
27
+ event 'dev@plan-b.ath.cx', 'shot' do
28
+ AgentXmpp.logger.info "EVENT: dev@plan-b.ath.cx/shot, #{params[:id]}"
29
+ AgentXmpp.logger.info "ONLINE RESOURCES: #{params[:resources].inspect}"
30
+ params[:resources].map do |r|
31
+ AgentXmpp.logger.info "COMMAND REQUEST: #{r}, hash_hello"
32
+ command(:to=>r, :node=> 'hash_hello') do |status, data|
33
+ AgentXmpp.logger.info "COMMAND RESPONSE: #{status}, #{data.inspect}"
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,197 @@
1
+ *** create pubsub node
2
+ <iq id='29293' to='pubsub.plan-b.ath.cx' type='set' xmlns='jabber:client'>
3
+ <pubsub xmlns='http://jabber.org/protocol/pubsub'>
4
+ <create node='/home/plan-b.ath.cx/test'/>
5
+ <configure/>
6
+ </pubsub>
7
+ </iq>
8
+
9
+ <iq id='29293' to='pubsub.planbresearch.com' type='set' xmlns='jabber:client'>
10
+ <pubsub xmlns='http://jabber.org/protocol/pubsub'>
11
+ <create node='/home/planbresearch.com/test'/>
12
+ <configure/>
13
+ </pubsub>
14
+ </iq>
15
+
16
+ *** Delete pubsub node
17
+ <iq id='34963' to='pubsub.plan-b.ath.cx' type='set' xmlns='jabber:client'>
18
+ <pubsub xmlns='http://jabber.org/protocol/pubsub#owner'>
19
+ <delete node='/home/plan-b.ath.cx/dev'/>
20
+ </pubsub>
21
+ </iq>
22
+
23
+ <iq id='34963' to='pubsub.planbresearch.com' type='set' xmlns='jabber:client'>
24
+ <pubsub xmlns='http://jabber.org/protocol/pubsub#owner'>
25
+ <delete node='/home/planbresearch.com/test'/>
26
+ </pubsub>
27
+ </iq>
28
+
29
+ **** subscribe to pubsub node
30
+ <iq id='34963' to='pubsub.plan-b.ath.cx' type='set' xmlns='jabber:client'>
31
+ <pubsub xmlns='http://jabber.org/protocol/pubsub'>
32
+ <subscribe node='/home/plan-b.ath.cx/dev/time' jid='test@plan-b.ath.cx'/>
33
+ </pubsub>
34
+ </iq>
35
+
36
+ **** unsubscribe to pubsub node
37
+ <iq id='23513' to='pubsub.plan-b.ath.cx' type='set' xmlns='jabber:client'>
38
+ <pubsub xmlns='http://jabber.org/protocol/pubsub'>
39
+ <unsubscribe node='/home/plan-b.ath.cx/dev/time' jid='dev@plan-b.ath.cx'/>
40
+ </pubsub>
41
+ </iq>
42
+
43
+ **** get subscriptions
44
+ <iq id='24272' to='pubsub.plan-b.ath.cx' type='get' xmlns='jabber:client'>
45
+ <pubsub xmlns='http://jabber.org/protocol/pubsub'>
46
+ <subscriptions/>
47
+ </pubsub>
48
+ </iq>
49
+
50
+ <iq id='24272' to='pubsub.planbresearch.com' type='get' xmlns='jabber:client'>
51
+ <pubsub xmlns='http://jabber.org/protocol/pubsub'>
52
+ <subscriptions/>
53
+ </pubsub>
54
+ </iq>
55
+
56
+ **** get pubsub node subscriber configuration
57
+ <iq type='get' to='pubsub.plan-b.ath.cx' id='23513'>
58
+ <pubsub xmlns='http://jabber.org/protocol/pubsub'>
59
+ <options node='/home/plan-b.ath.cx/test/val' jid='test@plan-b.ath.cx'/>
60
+ </pubsub>
61
+ </iq>
62
+
63
+ ****get pubsub node publisher configuration
64
+ <iq type='get' to='pubsub.plan-b.ath.cx' id='23513'>
65
+ <pubsub xmlns='http://jabber.org/protocol/pubsub#owner'>
66
+ <configure node='/home/plan-b.ath.cx/test/val' jid='test@plan-b.ath.cx'/>
67
+ </pubsub>
68
+ </iq>
69
+
70
+ **** publish to pubsub node
71
+ .... scalar
72
+ <iq id='36339' to='pubsub.planbresearch.com' type='set' xmlns='jabber:client'>
73
+ <pubsub xmlns='http://jabber.org/protocol/pubsub'>
74
+ <publish node='/home/planbresearch.com/test/val'>
75
+ <item><x type='result' xmlns='jabber:x:data'><field><value>The Value</value></field></x></item>
76
+ </publish>
77
+ </pubsub>
78
+ </iq>
79
+
80
+ <iq id='36339' to='pubsub.planbresearch.com' type='set' xmlns='jabber:client'>
81
+ <pubsub xmlns='http://jabber.org/protocol/pubsub'>
82
+ <publish node='/home/planbresearch.com/test/waiting'>
83
+ <item><x type='result' xmlns='jabber:x:data'><field><value>The Wait is Over</value></field></x></item>
84
+ </publish>
85
+ </pubsub>
86
+ </iq>
87
+
88
+ <iq id='36339' to='pubsub.plan-b.ath.cx' type='set' xmlns='jabber:client'>
89
+ <pubsub xmlns='http://jabber.org/protocol/pubsub'>
90
+ <publish node='/home/plan-b.ath.cx/test/val'>
91
+ <item><x type='result' xmlns='jabber:x:data'><field><value>The Value</value></field></x></item>
92
+ </publish>
93
+ </pubsub>
94
+ </iq>
95
+
96
+ .... scalar array
97
+ <iq id='36339' to='pubsub.planbresearch.com' type='set' xmlns='jabber:client'>
98
+ <pubsub xmlns='http://jabber.org/protocol/pubsub'>
99
+ <publish node='/home/planbresearch.com/test/val'>
100
+ <item><x type='result' xmlns='jabber:x:data'>
101
+ <field>
102
+ <value>The Value</value>
103
+ <value>The Other Value</value>
104
+ <value>The Final Value</value>
105
+ </field>
106
+ </x></item>
107
+ </publish>
108
+ </pubsub>
109
+ </iq>
110
+
111
+ <iq id='36339' to='pubsub.plan-b.ath.cx' type='set' xmlns='jabber:client'>
112
+ <pubsub xmlns='http://jabber.org/protocol/pubsub'>
113
+ <publish node='/home/plan-b.ath.cx/test/val'>
114
+ <item><x type='result' xmlns='jabber:x:data'>
115
+ <field>
116
+ <value>The Value</value>
117
+ <value>The Other Value</value>
118
+ <value>The Final Value</value>
119
+ </field>
120
+ </x></item>
121
+ </publish>
122
+ </pubsub>
123
+ </iq>
124
+
125
+ .... hash
126
+ <iq id='36339' to='pubsub.planbresearch.com' type='set' xmlns='jabber:client'>
127
+ <pubsub xmlns='http://jabber.org/protocol/pubsub'>
128
+ <publish node='/home/planbresearch.com/test/val'>
129
+ <item><x type='result' xmlns='jabber:x:data'>
130
+ <field var='attr1'>
131
+ <value>The Value</value>
132
+ </field>
133
+ <field var='attr2'>
134
+ <value>The Other Value</value>
135
+ </field>
136
+ </x></item>
137
+ </publish>
138
+ </pubsub>
139
+ </iq>
140
+
141
+ .... hash of arrays
142
+ <iq id='36339' to='pubsub.planbresearch.com' type='set' xmlns='jabber:client'>
143
+ <pubsub xmlns='http://jabber.org/protocol/pubsub'>
144
+ <publish node='/home/planbresearch.com/test/val'>
145
+ <item><x type='result' xmlns='jabber:x:data'>
146
+ <field var='attr1'>
147
+ <value>The Value</value>
148
+ <value>The Next Value</value>
149
+ <value>The NeLatxt Value</value>
150
+ </field>
151
+ <field var='attr2'>
152
+ <value>The Other Value</value>
153
+ <value>More Values</value>
154
+ </field>
155
+ </x></item>
156
+ </publish>
157
+ </pubsub>
158
+ </iq>
159
+
160
+ ... array of hashes
161
+ <iq id='36339' to='pubsub.planbresearch.com' type='set' xmlns='jabber:client'>
162
+ <pubsub xmlns='http://jabber.org/protocol/pubsub'>
163
+ <publish node='/home/planbresearch.com/test/val'>
164
+ <item><x type='result' xmlns='jabber:x:data'>
165
+ <reported>
166
+ <field var='attr1'/>
167
+ <field var='attr2'/>
168
+ </reported>
169
+ <item>
170
+ <field var='attr1'>
171
+ <value>The Value</value>
172
+ </field>
173
+ <field var='attr2'>
174
+ <value>The Other Value</value>
175
+ </field>
176
+ </item>
177
+ <item>
178
+ <field var='attr1'>
179
+ <value>More Values</value>
180
+ </field>
181
+ <field var='attr2'>
182
+ <value>Even more Values</value>
183
+ </field>
184
+ </item>
185
+ <item>
186
+ <field var='attr1'>
187
+ <value>Jut More Values</value>
188
+ <value>An array</value>
189
+ </field>
190
+ <field var='attr2'>
191
+ <value>And Even More Value</value>
192
+ </field>
193
+ </item>
194
+ </x></item>
195
+ </publish>
196
+ </pubsub>
197
+ </iq>
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: troystribling-agent_xmpp
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.0
4
+ version: 0.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Troy Stribling
@@ -9,8 +9,8 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-06-02 00:00:00 -07:00
13
- default_executable: agent_xmpp
12
+ date: 2009-08-03 00:00:00 -07:00
13
+ default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rake
@@ -42,20 +42,10 @@ dependencies:
42
42
  - !ruby/object:Gem::Version
43
43
  version: 0.0.1
44
44
  version:
45
- - !ruby/object:Gem::Dependency
46
- name: xmpp4r
47
- type: :runtime
48
- version_requirement:
49
- version_requirements: !ruby/object:Gem::Requirement
50
- requirements:
51
- - - "="
52
- - !ruby/object:Gem::Version
53
- version: "0.4"
54
- version:
55
45
  description:
56
46
  email: troy.stribling@gmail.com
57
- executables:
58
- - agent_xmpp
47
+ executables: []
48
+
59
49
  extensions: []
60
50
 
61
51
  extra_rdoc_files:
@@ -69,39 +59,69 @@ files:
69
59
  - Rakefile
70
60
  - VERSION
71
61
  - agent_xmpp.gemspec
72
- - bin/agent_xmpp
73
62
  - lib/agent_xmpp.rb
74
63
  - lib/agent_xmpp/app.rb
75
64
  - lib/agent_xmpp/app/boot.rb
76
- - lib/agent_xmpp/app/chat_message_body_controller.rb
77
65
  - lib/agent_xmpp/app/controller.rb
78
- - lib/agent_xmpp/app/format.rb
79
- - lib/agent_xmpp/app/map.rb
80
- - lib/agent_xmpp/app/routes.rb
81
- - lib/agent_xmpp/app/view.rb
82
66
  - lib/agent_xmpp/client.rb
83
67
  - lib/agent_xmpp/client/client.rb
84
68
  - lib/agent_xmpp/client/connection.rb
85
- - lib/agent_xmpp/client/parser.rb
69
+ - lib/agent_xmpp/client/message_delegate.rb
70
+ - lib/agent_xmpp/client/message_pipe.rb
71
+ - lib/agent_xmpp/client/publish_model.rb
72
+ - lib/agent_xmpp/client/response.rb
73
+ - lib/agent_xmpp/client/roster_model.rb
74
+ - lib/agent_xmpp/client/services_model.rb
75
+ - lib/agent_xmpp/config.rb
76
+ - lib/agent_xmpp/main.rb
86
77
  - lib/agent_xmpp/patches.rb
87
- - lib/agent_xmpp/patches/standard_library_patches.rb
88
- - lib/agent_xmpp/patches/standard_library_patches/array.rb
89
- - lib/agent_xmpp/patches/standard_library_patches/float.rb
90
- - lib/agent_xmpp/patches/standard_library_patches/hash.rb
91
- - lib/agent_xmpp/patches/standard_library_patches/object.rb
92
- - lib/agent_xmpp/patches/standard_library_patches/string.rb
93
- - lib/agent_xmpp/patches/xmpp4r_patches.rb
94
- - lib/agent_xmpp/patches/xmpp4r_patches/command.rb
95
- - lib/agent_xmpp/patches/xmpp4r_patches/iq.rb
96
- - lib/agent_xmpp/patches/xmpp4r_patches/x_data.rb
97
- - lib/agent_xmpp/utils.rb
98
- - lib/agent_xmpp/utils/logger.rb
99
- - lib/agent_xmpp/utils/roster.rb
100
- - lib/agent_xmpp/version.rb
101
- - test/agent_xmpp_test.rb
102
- - test/test_helper.rb
78
+ - lib/agent_xmpp/patches/array.rb
79
+ - lib/agent_xmpp/patches/float.rb
80
+ - lib/agent_xmpp/patches/hash.rb
81
+ - lib/agent_xmpp/patches/object.rb
82
+ - lib/agent_xmpp/patches/rexml.rb
83
+ - lib/agent_xmpp/patches/string.rb
84
+ - lib/agent_xmpp/xmpp.rb
85
+ - lib/agent_xmpp/xmpp/element.rb
86
+ - lib/agent_xmpp/xmpp/error_response.rb
87
+ - lib/agent_xmpp/xmpp/iq.rb
88
+ - lib/agent_xmpp/xmpp/iq_command.rb
89
+ - lib/agent_xmpp/xmpp/iq_disco.rb
90
+ - lib/agent_xmpp/xmpp/iq_pubsub.rb
91
+ - lib/agent_xmpp/xmpp/iq_roster.rb
92
+ - lib/agent_xmpp/xmpp/iq_version.rb
93
+ - lib/agent_xmpp/xmpp/jid.rb
94
+ - lib/agent_xmpp/xmpp/message.rb
95
+ - lib/agent_xmpp/xmpp/presence.rb
96
+ - lib/agent_xmpp/xmpp/sasl.rb
97
+ - lib/agent_xmpp/xmpp/stanza.rb
98
+ - lib/agent_xmpp/xmpp/x_data.rb
99
+ - test/app/app.rb
100
+ - test/cases/test_application_message_processing.rb
101
+ - test/cases/test_errors.rb
102
+ - test/cases/test_presence_management.rb
103
+ - test/cases/test_roster_management.rb
104
+ - test/cases/test_service_discovery.rb
105
+ - test/cases/test_session_management.rb
106
+ - test/cases/test_version_discovery.rb
107
+ - test/helpers/matchers.rb
108
+ - test/helpers/mocks.rb
109
+ - test/helpers/test_case_extensions.rb
110
+ - test/helpers/test_client.rb
111
+ - test/helpers/test_delegate.rb
112
+ - test/helpers/test_helper.rb
113
+ - test/messages/application_messages.rb
114
+ - test/messages/error_messages.rb
115
+ - test/messages/presence_messages.rb
116
+ - test/messages/roster_messages.rb
117
+ - test/messages/service_discovery_messages.rb
118
+ - test/messages/session_messages.rb
119
+ - test/messages/version_discovery_messages.rb
120
+ - test/peer/peer.rb
121
+ - test/xml_messages.txt
103
122
  has_rdoc: true
104
123
  homepage: http://github.com/troystribling/agent_xmpp
124
+ licenses:
105
125
  post_install_message:
106
126
  rdoc_options:
107
127
  - --charset=UTF-8
@@ -122,10 +142,30 @@ required_rubygems_version: !ruby/object:Gem::Requirement
122
142
  requirements: []
123
143
 
124
144
  rubyforge_project:
125
- rubygems_version: 1.2.0
145
+ rubygems_version: 1.3.5
126
146
  signing_key:
127
147
  specification_version: 2
128
- summary: TODO
148
+ summary: Agent XMPP is a ruby XMPP bot framework inspired by MVC web frameworks.
129
149
  test_files:
130
- - test/agent_xmpp_test.rb
131
- - test/test_helper.rb
150
+ - test/app/app.rb
151
+ - test/cases/test_application_message_processing.rb
152
+ - test/cases/test_errors.rb
153
+ - test/cases/test_presence_management.rb
154
+ - test/cases/test_roster_management.rb
155
+ - test/cases/test_service_discovery.rb
156
+ - test/cases/test_session_management.rb
157
+ - test/cases/test_version_discovery.rb
158
+ - test/helpers/matchers.rb
159
+ - test/helpers/mocks.rb
160
+ - test/helpers/test_case_extensions.rb
161
+ - test/helpers/test_client.rb
162
+ - test/helpers/test_delegate.rb
163
+ - test/helpers/test_helper.rb
164
+ - test/messages/application_messages.rb
165
+ - test/messages/error_messages.rb
166
+ - test/messages/presence_messages.rb
167
+ - test/messages/roster_messages.rb
168
+ - test/messages/service_discovery_messages.rb
169
+ - test/messages/session_messages.rb
170
+ - test/messages/version_discovery_messages.rb
171
+ - test/peer/peer.rb