agent_xmpp 0.1.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 (73) hide show
  1. data/.document +5 -0
  2. data/.gitignore +11 -0
  3. data/LICENSE +20 -0
  4. data/README.rdoc +417 -0
  5. data/Rakefile +75 -0
  6. data/VERSION +1 -0
  7. data/agent_xmpp.gemspec +144 -0
  8. data/lib/agent_xmpp.rb +22 -0
  9. data/lib/agent_xmpp/admin.rb +113 -0
  10. data/lib/agent_xmpp/client.rb +7 -0
  11. data/lib/agent_xmpp/client/boot.rb +83 -0
  12. data/lib/agent_xmpp/client/client.rb +64 -0
  13. data/lib/agent_xmpp/client/connection.rb +108 -0
  14. data/lib/agent_xmpp/client/controller.rb +394 -0
  15. data/lib/agent_xmpp/client/message_delegate.rb +720 -0
  16. data/lib/agent_xmpp/client/message_pipe.rb +193 -0
  17. data/lib/agent_xmpp/client/response.rb +102 -0
  18. data/lib/agent_xmpp/config.rb +48 -0
  19. data/lib/agent_xmpp/main.rb +175 -0
  20. data/lib/agent_xmpp/models.rb +7 -0
  21. data/lib/agent_xmpp/models/contact.rb +85 -0
  22. data/lib/agent_xmpp/models/message.rb +152 -0
  23. data/lib/agent_xmpp/models/publication.rb +53 -0
  24. data/lib/agent_xmpp/models/roster.rb +107 -0
  25. data/lib/agent_xmpp/models/service.rb +91 -0
  26. data/lib/agent_xmpp/models/subscription.rb +61 -0
  27. data/lib/agent_xmpp/models/table_definitions.rb +107 -0
  28. data/lib/agent_xmpp/patches.rb +7 -0
  29. data/lib/agent_xmpp/patches/array.rb +32 -0
  30. data/lib/agent_xmpp/patches/float.rb +10 -0
  31. data/lib/agent_xmpp/patches/hash.rb +13 -0
  32. data/lib/agent_xmpp/patches/object.rb +15 -0
  33. data/lib/agent_xmpp/patches/rexml.rb +69 -0
  34. data/lib/agent_xmpp/patches/string.rb +15 -0
  35. data/lib/agent_xmpp/xmpp.rb +18 -0
  36. data/lib/agent_xmpp/xmpp/element.rb +158 -0
  37. data/lib/agent_xmpp/xmpp/entry.rb +36 -0
  38. data/lib/agent_xmpp/xmpp/error_response.rb +189 -0
  39. data/lib/agent_xmpp/xmpp/iq.rb +90 -0
  40. data/lib/agent_xmpp/xmpp/iq_command.rb +54 -0
  41. data/lib/agent_xmpp/xmpp/iq_disco.rb +206 -0
  42. data/lib/agent_xmpp/xmpp/iq_pubsub.rb +270 -0
  43. data/lib/agent_xmpp/xmpp/iq_roster.rb +183 -0
  44. data/lib/agent_xmpp/xmpp/iq_version.rb +89 -0
  45. data/lib/agent_xmpp/xmpp/jid.rb +150 -0
  46. data/lib/agent_xmpp/xmpp/message.rb +82 -0
  47. data/lib/agent_xmpp/xmpp/presence.rb +127 -0
  48. data/lib/agent_xmpp/xmpp/sasl.rb +241 -0
  49. data/lib/agent_xmpp/xmpp/stanza.rb +107 -0
  50. data/lib/agent_xmpp/xmpp/x_data.rb +357 -0
  51. data/test/app/app.rb +339 -0
  52. data/test/cases/test_application_message_processing.rb +65 -0
  53. data/test/cases/test_errors.rb +24 -0
  54. data/test/cases/test_presence_management.rb +139 -0
  55. data/test/cases/test_roster_management.rb +214 -0
  56. data/test/cases/test_service_discovery.rb +168 -0
  57. data/test/cases/test_session_management.rb +120 -0
  58. data/test/cases/test_version_discovery.rb +67 -0
  59. data/test/helpers/matchers.rb +23 -0
  60. data/test/helpers/mocks.rb +82 -0
  61. data/test/helpers/test_case_extensions.rb +45 -0
  62. data/test/helpers/test_client.rb +44 -0
  63. data/test/helpers/test_delegate.rb +60 -0
  64. data/test/helpers/test_helper.rb +91 -0
  65. data/test/messages/application_messages.rb +206 -0
  66. data/test/messages/error_messages.rb +35 -0
  67. data/test/messages/presence_messages.rb +66 -0
  68. data/test/messages/roster_messages.rb +126 -0
  69. data/test/messages/service_discovery_messages.rb +201 -0
  70. data/test/messages/session_messages.rb +158 -0
  71. data/test/messages/version_discovery_messages.rb +69 -0
  72. data/test/peer/peer.rb +21 -0
  73. metadata +187 -0
@@ -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,21 @@
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_pubsub_node do |service, node|
13
+ AgentXmpp.logger.info "discovered_pubsub_node: #{service}, #{node}"
14
+ if node.eql?(AgentXmpp.user_pubsub_root+'/time')
15
+ AgentXmpp.logger.info "LAUNCHING TIME PUBLISH TASK"
16
+ EventMachine::PeriodicTimer.new(30) do
17
+ publish_time({:time => Time.now.to_s, :greeting => 'Rockin'})
18
+ AgentXmpp.logger.info "FIRING EVENT TIME: #{Time.now.to_s}"
19
+ end
20
+ end
21
+ end
metadata ADDED
@@ -0,0 +1,187 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: agent_xmpp
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Troy Stribling
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2010-08-21 00:00:00 -07:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: rake
17
+ type: :runtime
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: 0.8.3
24
+ version:
25
+ - !ruby/object:Gem::Dependency
26
+ name: eventmachine
27
+ type: :runtime
28
+ version_requirement:
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: 0.12.6
34
+ version:
35
+ - !ruby/object:Gem::Dependency
36
+ name: sequel
37
+ type: :runtime
38
+ version_requirement:
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ version: 3.9.0
44
+ version:
45
+ - !ruby/object:Gem::Dependency
46
+ name: evma_xmlpushparser
47
+ type: :runtime
48
+ version_requirement:
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: 0.0.1
54
+ version:
55
+ description:
56
+ email: troy.stribling@gmail.com
57
+ executables: []
58
+
59
+ extensions: []
60
+
61
+ extra_rdoc_files:
62
+ - LICENSE
63
+ - README.rdoc
64
+ files:
65
+ - .document
66
+ - .gitignore
67
+ - LICENSE
68
+ - README.rdoc
69
+ - Rakefile
70
+ - VERSION
71
+ - agent_xmpp.gemspec
72
+ - lib/agent_xmpp.rb
73
+ - lib/agent_xmpp/admin.rb
74
+ - lib/agent_xmpp/client.rb
75
+ - lib/agent_xmpp/client/boot.rb
76
+ - lib/agent_xmpp/client/client.rb
77
+ - lib/agent_xmpp/client/connection.rb
78
+ - lib/agent_xmpp/client/controller.rb
79
+ - lib/agent_xmpp/client/message_delegate.rb
80
+ - lib/agent_xmpp/client/message_pipe.rb
81
+ - lib/agent_xmpp/client/response.rb
82
+ - lib/agent_xmpp/config.rb
83
+ - lib/agent_xmpp/main.rb
84
+ - lib/agent_xmpp/models.rb
85
+ - lib/agent_xmpp/models/contact.rb
86
+ - lib/agent_xmpp/models/message.rb
87
+ - lib/agent_xmpp/models/publication.rb
88
+ - lib/agent_xmpp/models/roster.rb
89
+ - lib/agent_xmpp/models/service.rb
90
+ - lib/agent_xmpp/models/subscription.rb
91
+ - lib/agent_xmpp/models/table_definitions.rb
92
+ - lib/agent_xmpp/patches.rb
93
+ - lib/agent_xmpp/patches/array.rb
94
+ - lib/agent_xmpp/patches/float.rb
95
+ - lib/agent_xmpp/patches/hash.rb
96
+ - lib/agent_xmpp/patches/object.rb
97
+ - lib/agent_xmpp/patches/rexml.rb
98
+ - lib/agent_xmpp/patches/string.rb
99
+ - lib/agent_xmpp/xmpp.rb
100
+ - lib/agent_xmpp/xmpp/element.rb
101
+ - lib/agent_xmpp/xmpp/entry.rb
102
+ - lib/agent_xmpp/xmpp/error_response.rb
103
+ - lib/agent_xmpp/xmpp/iq.rb
104
+ - lib/agent_xmpp/xmpp/iq_command.rb
105
+ - lib/agent_xmpp/xmpp/iq_disco.rb
106
+ - lib/agent_xmpp/xmpp/iq_pubsub.rb
107
+ - lib/agent_xmpp/xmpp/iq_roster.rb
108
+ - lib/agent_xmpp/xmpp/iq_version.rb
109
+ - lib/agent_xmpp/xmpp/jid.rb
110
+ - lib/agent_xmpp/xmpp/message.rb
111
+ - lib/agent_xmpp/xmpp/presence.rb
112
+ - lib/agent_xmpp/xmpp/sasl.rb
113
+ - lib/agent_xmpp/xmpp/stanza.rb
114
+ - lib/agent_xmpp/xmpp/x_data.rb
115
+ - test/app/app.rb
116
+ - test/cases/test_application_message_processing.rb
117
+ - test/cases/test_errors.rb
118
+ - test/cases/test_presence_management.rb
119
+ - test/cases/test_roster_management.rb
120
+ - test/cases/test_service_discovery.rb
121
+ - test/cases/test_session_management.rb
122
+ - test/cases/test_version_discovery.rb
123
+ - test/helpers/matchers.rb
124
+ - test/helpers/mocks.rb
125
+ - test/helpers/test_case_extensions.rb
126
+ - test/helpers/test_client.rb
127
+ - test/helpers/test_delegate.rb
128
+ - test/helpers/test_helper.rb
129
+ - test/messages/application_messages.rb
130
+ - test/messages/error_messages.rb
131
+ - test/messages/presence_messages.rb
132
+ - test/messages/roster_messages.rb
133
+ - test/messages/service_discovery_messages.rb
134
+ - test/messages/session_messages.rb
135
+ - test/messages/version_discovery_messages.rb
136
+ - test/peer/peer.rb
137
+ has_rdoc: true
138
+ homepage: http://github.com/troystribling/agent_xmpp
139
+ licenses: []
140
+
141
+ post_install_message:
142
+ rdoc_options:
143
+ - --charset=UTF-8
144
+ require_paths:
145
+ - lib
146
+ required_ruby_version: !ruby/object:Gem::Requirement
147
+ requirements:
148
+ - - ">="
149
+ - !ruby/object:Gem::Version
150
+ version: "0"
151
+ version:
152
+ required_rubygems_version: !ruby/object:Gem::Requirement
153
+ requirements:
154
+ - - ">="
155
+ - !ruby/object:Gem::Version
156
+ version: "0"
157
+ version:
158
+ requirements: []
159
+
160
+ rubyforge_project:
161
+ rubygems_version: 1.3.5
162
+ signing_key:
163
+ specification_version: 3
164
+ summary: Agent XMPP is a ruby XMPP bot framework inspired by MVC web frameworks.
165
+ test_files:
166
+ - test/app/app.rb
167
+ - test/cases/test_application_message_processing.rb
168
+ - test/cases/test_errors.rb
169
+ - test/cases/test_presence_management.rb
170
+ - test/cases/test_roster_management.rb
171
+ - test/cases/test_service_discovery.rb
172
+ - test/cases/test_session_management.rb
173
+ - test/cases/test_version_discovery.rb
174
+ - test/helpers/matchers.rb
175
+ - test/helpers/mocks.rb
176
+ - test/helpers/test_case_extensions.rb
177
+ - test/helpers/test_client.rb
178
+ - test/helpers/test_delegate.rb
179
+ - test/helpers/test_helper.rb
180
+ - test/messages/application_messages.rb
181
+ - test/messages/error_messages.rb
182
+ - test/messages/presence_messages.rb
183
+ - test/messages/roster_messages.rb
184
+ - test/messages/service_discovery_messages.rb
185
+ - test/messages/session_messages.rb
186
+ - test/messages/version_discovery_messages.rb
187
+ - test/peer/peer.rb