steam-condenser 1.3.6 → 1.3.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (500) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +6 -1
  3. data/Gemfile.lock +1 -1
  4. data/doc/A2M_GET_SERVERS_BATCH2_Packet.html +426 -0
  5. data/doc/A2S_INFO_Packet.html +260 -0
  6. data/doc/A2S_PLAYER_Packet.html +295 -0
  7. data/doc/A2S_RULES_Packet.html +296 -0
  8. data/doc/A2S_SERVERQUERY_GETCHALLENGE_Packet.html +261 -0
  9. data/doc/AbstractL4DStats.html +1023 -0
  10. data/doc/AbstractL4DWeapon.html +749 -0
  11. data/doc/AlienSwarmMission.html +1555 -0
  12. data/doc/AlienSwarmStats.html +1012 -0
  13. data/doc/AlienSwarmWeapon.html +640 -0
  14. data/doc/AppNews.html +1441 -0
  15. data/doc/C2M_CHECKMD5_Packet.html +342 -0
  16. data/doc/CSSMap.html +805 -0
  17. data/doc/CSSStats.html +866 -0
  18. data/doc/CSSWeapon.html +888 -0
  19. data/doc/Cacheable/ClassMethods.html +697 -0
  20. data/doc/Cacheable.html +911 -0
  21. data/doc/DefenseGridStats.html +2592 -0
  22. data/doc/DoDSClass.html +1263 -0
  23. data/doc/DoDSStats.html +519 -0
  24. data/doc/DoDSWeapon.html +803 -0
  25. data/doc/Dota2BetaInventory.html +354 -0
  26. data/doc/Dota2Inventory.html +354 -0
  27. data/doc/Dota2Item.html +388 -0
  28. data/doc/GameAchievement.html +1255 -0
  29. data/doc/GameClass.html +321 -0
  30. data/doc/GameInventory.html +1469 -0
  31. data/doc/GameItem.html +1900 -0
  32. data/doc/GameItemSchema.html +1444 -0
  33. data/doc/GameLeaderboard.html +1706 -0
  34. data/doc/GameLeaderboardEntry.html +629 -0
  35. data/doc/GameServer.html +2419 -0
  36. data/doc/GameStats.html +1459 -0
  37. data/doc/GameWeapon.html +607 -0
  38. data/doc/GoldSrcServer.html +738 -0
  39. data/doc/GoldSrcSocket.html +849 -0
  40. data/doc/L4D2Map.html +737 -0
  41. data/doc/L4D2Stats.html +986 -0
  42. data/doc/L4D2Weapon.html +486 -0
  43. data/doc/L4DExplosive.html +374 -0
  44. data/doc/L4DMap.html +775 -0
  45. data/doc/L4DStats.html +563 -0
  46. data/doc/L4DWeapon.html +296 -0
  47. data/doc/M2A_SERVER_BATCH_Packet.html +430 -0
  48. data/doc/M2C_ISVALIDMD5_Packet.html +383 -0
  49. data/doc/M2S_REQUESTRESTART_Packet.html +382 -0
  50. data/doc/MasterServer.html +1069 -0
  51. data/doc/MasterServerSocket.html +295 -0
  52. data/doc/PacketFormatError.html +173 -0
  53. data/doc/Portal2Inventory.html +354 -0
  54. data/doc/Portal2Item.html +602 -0
  55. data/doc/Portal2Stats.html +400 -0
  56. data/doc/RCONAuthRequest.html +317 -0
  57. data/doc/RCONAuthResponse.html +305 -0
  58. data/doc/RCONBanError.html +252 -0
  59. data/doc/RCONExecRequest.html +317 -0
  60. data/doc/RCONExecResponse.html +406 -0
  61. data/doc/RCONGoldSrcRequest.html +363 -0
  62. data/doc/RCONGoldSrcResponse.html +367 -0
  63. data/doc/RCONNoAuthError.html +252 -0
  64. data/doc/RCONPacket.html +564 -0
  65. data/doc/RCONPacketFactory.html +300 -0
  66. data/doc/RCONSocket.html +696 -0
  67. data/doc/RCONTerminator.html +304 -0
  68. data/doc/RequestWithChallenge.html +233 -0
  69. data/doc/S2A_INFO2_Packet.html +416 -0
  70. data/doc/S2A_INFO_BasePacket.html +266 -0
  71. data/doc/S2A_INFO_DETAILED_Packet.html +371 -0
  72. data/doc/S2A_LOGSTRING_Packet.html +373 -0
  73. data/doc/S2A_PLAYER_Packet.html +417 -0
  74. data/doc/S2A_RULES_Packet.html +411 -0
  75. data/doc/S2C_CHALLENGE_Packet.html +370 -0
  76. data/doc/S2M_HEARTBEAT2_Packet.html +445 -0
  77. data/doc/Server.html +874 -0
  78. data/doc/SourceServer.html +893 -0
  79. data/doc/SourceSocket.html +350 -0
  80. data/doc/SteamCondenser/Community/AbstractL4DStats.html +1026 -0
  81. data/doc/SteamCondenser/Community/AbstractL4DWeapon.html +749 -0
  82. data/doc/SteamCondenser/Community/AlienSwarmMission.html +1557 -0
  83. data/doc/SteamCondenser/Community/AlienSwarmStats.html +1013 -0
  84. data/doc/SteamCondenser/Community/AlienSwarmWeapon.html +641 -0
  85. data/doc/SteamCondenser/Community/AppNews.html +1441 -0
  86. data/doc/SteamCondenser/Community/CSSMap.html +805 -0
  87. data/doc/SteamCondenser/Community/CSSStats.html +866 -0
  88. data/doc/SteamCondenser/Community/CSSWeapon.html +889 -0
  89. data/doc/SteamCondenser/Community/Cacheable/ClassMethods.html +695 -0
  90. data/doc/SteamCondenser/Community/Cacheable.html +911 -0
  91. data/doc/SteamCondenser/Community/DefenseGridStats.html +2593 -0
  92. data/doc/SteamCondenser/Community/DoDSClass.html +1263 -0
  93. data/doc/SteamCondenser/Community/DoDSStats.html +520 -0
  94. data/doc/SteamCondenser/Community/DoDSWeapon.html +803 -0
  95. data/doc/SteamCondenser/Community/Dota2BetaInventory.html +354 -0
  96. data/doc/SteamCondenser/Community/Dota2Inventory.html +354 -0
  97. data/doc/SteamCondenser/Community/Dota2Item.html +388 -0
  98. data/doc/SteamCondenser/Community/Dota2Match.html +505 -0
  99. data/doc/SteamCondenser/Community/GameAchievement.html +1100 -0
  100. data/doc/SteamCondenser/Community/GameClass.html +321 -0
  101. data/doc/SteamCondenser/Community/GameInventory.html +1469 -0
  102. data/doc/SteamCondenser/Community/GameItem.html +1900 -0
  103. data/doc/SteamCondenser/Community/GameItemSchema.html +1444 -0
  104. data/doc/SteamCondenser/Community/GameLeaderboard.html +1707 -0
  105. data/doc/SteamCondenser/Community/GameLeaderboardEntry.html +630 -0
  106. data/doc/SteamCondenser/Community/GameStats.html +1461 -0
  107. data/doc/SteamCondenser/Community/GameStatsSchema.html +771 -0
  108. data/doc/SteamCondenser/Community/GameStatsValue/Instance.html +262 -0
  109. data/doc/SteamCondenser/Community/GameStatsValue.html +596 -0
  110. data/doc/SteamCondenser/Community/GameWeapon.html +608 -0
  111. data/doc/SteamCondenser/Community/L4D2Map.html +737 -0
  112. data/doc/SteamCondenser/Community/L4D2Stats.html +989 -0
  113. data/doc/SteamCondenser/Community/L4D2Weapon.html +486 -0
  114. data/doc/SteamCondenser/Community/L4DExplosive.html +375 -0
  115. data/doc/SteamCondenser/Community/L4DMap.html +775 -0
  116. data/doc/SteamCondenser/Community/L4DStats.html +564 -0
  117. data/doc/SteamCondenser/Community/L4DWeapon.html +296 -0
  118. data/doc/SteamCondenser/Community/Portal2Inventory.html +354 -0
  119. data/doc/SteamCondenser/Community/Portal2Item.html +603 -0
  120. data/doc/SteamCondenser/Community/Portal2Stats.html +400 -0
  121. data/doc/SteamCondenser/Community/SteamGame.html +1862 -0
  122. data/doc/SteamCondenser/Community/SteamGroup.html +1018 -0
  123. data/doc/SteamCondenser/Community/SteamId.html +4430 -0
  124. data/doc/SteamCondenser/Community/TF2BetaInventory.html +345 -0
  125. data/doc/SteamCondenser/Community/TF2Class.html +1186 -0
  126. data/doc/SteamCondenser/Community/TF2ClassFactory.html +273 -0
  127. data/doc/SteamCondenser/Community/TF2Engineer.html +555 -0
  128. data/doc/SteamCondenser/Community/TF2GoldenWrench.html +760 -0
  129. data/doc/SteamCondenser/Community/TF2Inventory.html +354 -0
  130. data/doc/SteamCondenser/Community/TF2Item.html +602 -0
  131. data/doc/SteamCondenser/Community/TF2Medic.html +463 -0
  132. data/doc/SteamCondenser/Community/TF2Sniper.html +372 -0
  133. data/doc/SteamCondenser/Community/TF2Spy.html +553 -0
  134. data/doc/SteamCondenser/Community/TF2Stats.html +728 -0
  135. data/doc/SteamCondenser/Community/UserStats.html +760 -0
  136. data/doc/SteamCondenser/Community/WebApi.html +1116 -0
  137. data/doc/SteamCondenser/Community/XMLData.html +274 -0
  138. data/doc/SteamCondenser/Community.html +134 -0
  139. data/doc/SteamCondenser/Error/PacketFormat.html +173 -0
  140. data/doc/SteamCondenser/Error/RCONBan.html +253 -0
  141. data/doc/SteamCondenser/Error/RCONNoAuth.html +252 -0
  142. data/doc/SteamCondenser/Error/Timeout.html +254 -0
  143. data/doc/SteamCondenser/Error/WebApi.html +354 -0
  144. data/doc/SteamCondenser/Error.html +380 -0
  145. data/doc/SteamCondenser/Logging.html +616 -0
  146. data/doc/SteamCondenser/Servers/BaseServer.html +870 -0
  147. data/doc/SteamCondenser/Servers/GameServer.html +2428 -0
  148. data/doc/SteamCondenser/Servers/GoldSrcServer.html +738 -0
  149. data/doc/SteamCondenser/Servers/MasterServer.html +819 -0
  150. data/doc/SteamCondenser/Servers/Packets/A2M_GET_SERVERS_BATCH2_Packet.html +427 -0
  151. data/doc/SteamCondenser/Servers/Packets/A2S_INFO_Packet.html +260 -0
  152. data/doc/SteamCondenser/Servers/Packets/A2S_PLAYER_Packet.html +295 -0
  153. data/doc/SteamCondenser/Servers/Packets/A2S_RULES_Packet.html +296 -0
  154. data/doc/SteamCondenser/Servers/Packets/A2S_SERVERQUERY_GETCHALLENGE_Packet.html +261 -0
  155. data/doc/SteamCondenser/Servers/Packets/BasePacket.html +462 -0
  156. data/doc/SteamCondenser/Servers/Packets/M2A_SERVER_BATCH_Packet.html +430 -0
  157. data/doc/SteamCondenser/Servers/Packets/RCON/BasePacket.html +564 -0
  158. data/doc/SteamCondenser/Servers/Packets/RCON/RCONAuthRequest.html +317 -0
  159. data/doc/SteamCondenser/Servers/Packets/RCON/RCONAuthResponse.html +305 -0
  160. data/doc/SteamCondenser/Servers/Packets/RCON/RCONExecRequest.html +317 -0
  161. data/doc/SteamCondenser/Servers/Packets/RCON/RCONExecResponse.html +406 -0
  162. data/doc/SteamCondenser/Servers/Packets/RCON/RCONGoldSrcRequest.html +363 -0
  163. data/doc/SteamCondenser/Servers/Packets/RCON/RCONGoldSrcResponse.html +368 -0
  164. data/doc/SteamCondenser/Servers/Packets/RCON/RCONPacketFactory.html +302 -0
  165. data/doc/SteamCondenser/Servers/Packets/RCON/RCONTerminator.html +304 -0
  166. data/doc/SteamCondenser/Servers/Packets/RCON.html +119 -0
  167. data/doc/SteamCondenser/Servers/Packets/RequestWithChallenge.html +233 -0
  168. data/doc/SteamCondenser/Servers/Packets/S2A_INFO2_Packet.html +416 -0
  169. data/doc/SteamCondenser/Servers/Packets/S2A_INFO_BasePacket.html +266 -0
  170. data/doc/SteamCondenser/Servers/Packets/S2A_INFO_DETAILED_Packet.html +371 -0
  171. data/doc/SteamCondenser/Servers/Packets/S2A_LOGSTRING_Packet.html +373 -0
  172. data/doc/SteamCondenser/Servers/Packets/S2A_PLAYER_Packet.html +417 -0
  173. data/doc/SteamCondenser/Servers/Packets/S2A_RULES_Packet.html +411 -0
  174. data/doc/SteamCondenser/Servers/Packets/S2C_CHALLENGE_Packet.html +370 -0
  175. data/doc/SteamCondenser/Servers/Packets/SteamPacketFactory.html +532 -0
  176. data/doc/SteamCondenser/Servers/Packets.html +132 -0
  177. data/doc/SteamCondenser/Servers/Sockets/BaseSocket.html +733 -0
  178. data/doc/SteamCondenser/Servers/Sockets/GoldSrcSocket.html +862 -0
  179. data/doc/SteamCondenser/Servers/Sockets/MasterServerSocket.html +306 -0
  180. data/doc/SteamCondenser/Servers/Sockets/RCONSocket.html +709 -0
  181. data/doc/SteamCondenser/Servers/Sockets/SourceSocket.html +367 -0
  182. data/doc/SteamCondenser/Servers/Sockets.html +119 -0
  183. data/doc/SteamCondenser/Servers/SourceServer.html +892 -0
  184. data/doc/SteamCondenser/Servers/SteamPlayer.html +1764 -0
  185. data/doc/SteamCondenser/Servers.html +133 -0
  186. data/doc/SteamCondenser/TimeoutError.html +254 -0
  187. data/doc/SteamCondenser.html +155 -0
  188. data/doc/SteamCondenserError.html +370 -0
  189. data/doc/SteamGame.html +1950 -0
  190. data/doc/SteamGroup.html +1023 -0
  191. data/doc/SteamId.html +4299 -0
  192. data/doc/SteamPacket.html +486 -0
  193. data/doc/SteamPacketFactory.html +556 -0
  194. data/doc/SteamPlayer.html +1764 -0
  195. data/doc/SteamSocket.html +725 -0
  196. data/doc/StringIO.html +939 -0
  197. data/doc/TF2BetaInventory.html +330 -0
  198. data/doc/TF2Class.html +1185 -0
  199. data/doc/TF2ClassFactory.html +273 -0
  200. data/doc/TF2Engineer.html +555 -0
  201. data/doc/TF2GoldenWrench.html +760 -0
  202. data/doc/TF2Inventory.html +354 -0
  203. data/doc/TF2Item.html +602 -0
  204. data/doc/TF2Medic.html +463 -0
  205. data/doc/TF2Sniper.html +372 -0
  206. data/doc/TF2Spy.html +553 -0
  207. data/doc/TF2Stats.html +728 -0
  208. data/doc/WebApi.html +1108 -0
  209. data/doc/WebApiError.html +351 -0
  210. data/doc/XMLData.html +274 -0
  211. data/doc/_index.html +728 -0
  212. data/doc/class_list.html +54 -0
  213. data/doc/css/common.css +1 -0
  214. data/doc/css/full_list.css +57 -0
  215. data/doc/css/style.css +338 -0
  216. data/doc/file.CHANGELOG.html +368 -0
  217. data/doc/file.CONTRIBUTING.html +140 -0
  218. data/doc/file.LICENSE.html +100 -0
  219. data/doc/file.README.html +152 -0
  220. data/doc/file_list.html +65 -0
  221. data/doc/frames.html +28 -0
  222. data/doc/index.html +152 -0
  223. data/doc/js/app.js +214 -0
  224. data/doc/js/full_list.js +178 -0
  225. data/doc/js/jquery.js +4 -0
  226. data/doc/method_list.html +3155 -0
  227. data/doc/top-level-namespace.html +114 -0
  228. data/lib/steam/community/web_api.rb +6 -2
  229. data/lib/steam/servers/source_server.rb +8 -2
  230. data/lib/steam-condenser/version.rb +1 -1
  231. data/pkg/steam-condenser-1.3.5/Gemfile.lock +1 -1
  232. data/pkg/steam-condenser-1.3.6/CHANGELOG.md +228 -0
  233. data/pkg/steam-condenser-1.3.6/CONTRIBUTING.md +59 -0
  234. data/pkg/steam-condenser-1.3.6/Gemfile +7 -0
  235. data/pkg/steam-condenser-1.3.6/Gemfile.lock +45 -0
  236. data/pkg/steam-condenser-1.3.6/LICENSE +25 -0
  237. data/pkg/steam-condenser-1.3.6/README.md +75 -0
  238. data/pkg/steam-condenser-1.3.6/Rakefile +46 -0
  239. data/pkg/steam-condenser-1.3.6/lib/core_ext/stringio.rb +91 -0
  240. data/pkg/steam-condenser-1.3.6/lib/errors/packet_format_error.rb +13 -0
  241. data/pkg/steam-condenser-1.3.6/lib/errors/rcon_ban_error.rb +22 -0
  242. data/pkg/steam-condenser-1.3.6/lib/errors/rcon_no_auth_error.rb +21 -0
  243. data/pkg/steam-condenser-1.3.6/lib/errors/steam_condenser_error.rb +26 -0
  244. data/pkg/steam-condenser-1.3.6/lib/errors/timeout_error.rb +28 -0
  245. data/pkg/steam-condenser-1.3.6/lib/errors/web_api_error.rb +57 -0
  246. data/pkg/steam-condenser-1.3.6/lib/steam/community/alien_swarm/alien_swarm_mission.rb +120 -0
  247. data/pkg/steam-condenser-1.3.6/lib/steam/community/alien_swarm/alien_swarm_stats.rb +188 -0
  248. data/pkg/steam-condenser-1.3.6/lib/steam/community/alien_swarm/alien_swarm_weapon.rb +49 -0
  249. data/pkg/steam-condenser-1.3.6/lib/steam/community/app_news.rb +133 -0
  250. data/pkg/steam-condenser-1.3.6/lib/steam/community/cacheable.rb +199 -0
  251. data/pkg/steam-condenser-1.3.6/lib/steam/community/css/css_map.rb +61 -0
  252. data/pkg/steam-condenser-1.3.6/lib/steam/community/css/css_stats.rb +140 -0
  253. data/pkg/steam-condenser-1.3.6/lib/steam/community/css/css_weapon.rb +69 -0
  254. data/pkg/steam-condenser-1.3.6/lib/steam/community/defense_grid/defense_grid_stats.rb +238 -0
  255. data/pkg/steam-condenser-1.3.6/lib/steam/community/dods/dods_class.rb +90 -0
  256. data/pkg/steam-condenser-1.3.6/lib/steam/community/dods/dods_stats.rb +62 -0
  257. data/pkg/steam-condenser-1.3.6/lib/steam/community/dods/dods_weapon.rb +67 -0
  258. data/pkg/steam-condenser-1.3.6/lib/steam/community/dota2/dota2_beta_inventory.rb +30 -0
  259. data/pkg/steam-condenser-1.3.6/lib/steam/community/dota2/dota2_inventory.rb +30 -0
  260. data/pkg/steam-condenser-1.3.6/lib/steam/community/dota2/dota2_item.rb +33 -0
  261. data/pkg/steam-condenser-1.3.6/lib/steam/community/game_achievement.rb +109 -0
  262. data/pkg/steam-condenser-1.3.6/lib/steam/community/game_class.rb +22 -0
  263. data/pkg/steam-condenser-1.3.6/lib/steam/community/game_inventory.rb +171 -0
  264. data/pkg/steam-condenser-1.3.6/lib/steam/community/game_item.rb +155 -0
  265. data/pkg/steam-condenser-1.3.6/lib/steam/community/game_item_schema.rb +131 -0
  266. data/pkg/steam-condenser-1.3.6/lib/steam/community/game_leaderboard.rb +212 -0
  267. data/pkg/steam-condenser-1.3.6/lib/steam/community/game_leaderboard_entry.rb +43 -0
  268. data/pkg/steam-condenser-1.3.6/lib/steam/community/game_stats.rb +175 -0
  269. data/pkg/steam-condenser-1.3.6/lib/steam/community/game_weapon.rb +41 -0
  270. data/pkg/steam-condenser-1.3.6/lib/steam/community/l4d/abstract_l4d_stats.rb +188 -0
  271. data/pkg/steam-condenser-1.3.6/lib/steam/community/l4d/abstract_l4d_weapon.rb +56 -0
  272. data/pkg/steam-condenser-1.3.6/lib/steam/community/l4d/l4d2_map.rb +90 -0
  273. data/pkg/steam-condenser-1.3.6/lib/steam/community/l4d/l4d2_stats.rb +179 -0
  274. data/pkg/steam-condenser-1.3.6/lib/steam/community/l4d/l4d2_weapon.rb +38 -0
  275. data/pkg/steam-condenser-1.3.6/lib/steam/community/l4d/l4d_explosive.rb +34 -0
  276. data/pkg/steam-condenser-1.3.6/lib/steam/community/l4d/l4d_map.rb +65 -0
  277. data/pkg/steam-condenser-1.3.6/lib/steam/community/l4d/l4d_stats.rb +73 -0
  278. data/pkg/steam-condenser-1.3.6/lib/steam/community/l4d/l4d_weapon.rb +26 -0
  279. data/pkg/steam-condenser-1.3.6/lib/steam/community/portal2/portal2_inventory.rb +30 -0
  280. data/pkg/steam-condenser-1.3.6/lib/steam/community/portal2/portal2_item.rb +55 -0
  281. data/pkg/steam-condenser-1.3.6/lib/steam/community/portal2/portal2_stats.rb +33 -0
  282. data/pkg/steam-condenser-1.3.6/lib/steam/community/steam_game.rb +193 -0
  283. data/pkg/steam-condenser-1.3.6/lib/steam/community/steam_group.rb +129 -0
  284. data/pkg/steam-condenser-1.3.6/lib/steam/community/steam_id.rb +495 -0
  285. data/pkg/steam-condenser-1.3.6/lib/steam/community/tf2/tf2_beta_inventory.rb +28 -0
  286. data/pkg/steam-condenser-1.3.6/lib/steam/community/tf2/tf2_class.rb +92 -0
  287. data/pkg/steam-condenser-1.3.6/lib/steam/community/tf2/tf2_class_factory.rb +40 -0
  288. data/pkg/steam-condenser-1.3.6/lib/steam/community/tf2/tf2_engineer.rb +43 -0
  289. data/pkg/steam-condenser-1.3.6/lib/steam/community/tf2/tf2_golden_wrench.rb +70 -0
  290. data/pkg/steam-condenser-1.3.6/lib/steam/community/tf2/tf2_inventory.rb +30 -0
  291. data/pkg/steam-condenser-1.3.6/lib/steam/community/tf2/tf2_item.rb +55 -0
  292. data/pkg/steam-condenser-1.3.6/lib/steam/community/tf2/tf2_medic.rb +35 -0
  293. data/pkg/steam-condenser-1.3.6/lib/steam/community/tf2/tf2_sniper.rb +28 -0
  294. data/pkg/steam-condenser-1.3.6/lib/steam/community/tf2/tf2_spy.rb +41 -0
  295. data/pkg/steam-condenser-1.3.6/lib/steam/community/tf2/tf2_stats.rb +77 -0
  296. data/pkg/steam-condenser-1.3.6/lib/steam/community/web_api.rb +135 -0
  297. data/pkg/steam-condenser-1.3.6/lib/steam/community/xml_data.rb +27 -0
  298. data/pkg/steam-condenser-1.3.6/lib/steam/packets/a2m_get_servers_batch2_packet.rb +59 -0
  299. data/pkg/steam-condenser-1.3.6/lib/steam/packets/a2s_info_packet.rb +24 -0
  300. data/pkg/steam-condenser-1.3.6/lib/steam/packets/a2s_player_packet.rb +31 -0
  301. data/pkg/steam-condenser-1.3.6/lib/steam/packets/a2s_rules_packet.rb +32 -0
  302. data/pkg/steam-condenser-1.3.6/lib/steam/packets/a2s_serverquery_getchallenge_packet.rb +25 -0
  303. data/pkg/steam-condenser-1.3.6/lib/steam/packets/c2m_checkmd5_packet.rb +31 -0
  304. data/pkg/steam-condenser-1.3.6/lib/steam/packets/m2a_server_batch_packet.rb +52 -0
  305. data/pkg/steam-condenser-1.3.6/lib/steam/packets/m2c_isvalidmd5_packet.rb +34 -0
  306. data/pkg/steam-condenser-1.3.6/lib/steam/packets/m2s_requestrestart_packet.rb +34 -0
  307. data/pkg/steam-condenser-1.3.6/lib/steam/packets/rcon/rcon_auth_request.rb +28 -0
  308. data/pkg/steam-condenser-1.3.6/lib/steam/packets/rcon/rcon_auth_response.rb +30 -0
  309. data/pkg/steam-condenser-1.3.6/lib/steam/packets/rcon/rcon_exec_request.rb +28 -0
  310. data/pkg/steam-condenser-1.3.6/lib/steam/packets/rcon/rcon_exec_response.rb +37 -0
  311. data/pkg/steam-condenser-1.3.6/lib/steam/packets/rcon/rcon_goldsrc_request.rb +35 -0
  312. data/pkg/steam-condenser-1.3.6/lib/steam/packets/rcon/rcon_goldsrc_response.rb +34 -0
  313. data/pkg/steam-condenser-1.3.6/lib/steam/packets/rcon/rcon_packet.rb +57 -0
  314. data/pkg/steam-condenser-1.3.6/lib/steam/packets/rcon/rcon_packet_factory.rb +43 -0
  315. data/pkg/steam-condenser-1.3.6/lib/steam/packets/rcon/rcon_terminator.rb +29 -0
  316. data/pkg/steam-condenser-1.3.6/lib/steam/packets/request_with_challenge.rb +19 -0
  317. data/pkg/steam-condenser-1.3.6/lib/steam/packets/s2a_info2_packet.rb +76 -0
  318. data/pkg/steam-condenser-1.3.6/lib/steam/packets/s2a_info_base_packet.rb +25 -0
  319. data/pkg/steam-condenser-1.3.6/lib/steam/packets/s2a_info_detailed_packet.rb +64 -0
  320. data/pkg/steam-condenser-1.3.6/lib/steam/packets/s2a_logstring_packet.rb +30 -0
  321. data/pkg/steam-condenser-1.3.6/lib/steam/packets/s2a_player_packet.rb +44 -0
  322. data/pkg/steam-condenser-1.3.6/lib/steam/packets/s2a_rules_packet.rb +48 -0
  323. data/pkg/steam-condenser-1.3.6/lib/steam/packets/s2c_challenge_packet.rb +35 -0
  324. data/pkg/steam-condenser-1.3.6/lib/steam/packets/s2m_heartbeat2_packet.rb +72 -0
  325. data/pkg/steam-condenser-1.3.6/lib/steam/packets/steam_packet.rb +52 -0
  326. data/pkg/steam-condenser-1.3.6/lib/steam/packets/steam_packet_factory.rb +113 -0
  327. data/pkg/steam-condenser-1.3.6/lib/steam/servers/game_server.rb +393 -0
  328. data/pkg/steam-condenser-1.3.6/lib/steam/servers/goldsrc_server.rb +74 -0
  329. data/pkg/steam-condenser-1.3.6/lib/steam/servers/master_server.rb +188 -0
  330. data/pkg/steam-condenser-1.3.6/lib/steam/servers/server.rb +115 -0
  331. data/pkg/steam-condenser-1.3.6/lib/steam/servers/source_server.rb +117 -0
  332. data/pkg/steam-condenser-1.3.6/lib/steam/sockets/goldsrc_socket.rb +142 -0
  333. data/pkg/steam-condenser-1.3.6/lib/steam/sockets/master_server_socket.rb +34 -0
  334. data/pkg/steam-condenser-1.3.6/lib/steam/sockets/rcon_socket.rb +103 -0
  335. data/pkg/steam-condenser-1.3.6/lib/steam/sockets/source_socket.rb +73 -0
  336. data/pkg/steam-condenser-1.3.6/lib/steam/sockets/steam_socket.rb +91 -0
  337. data/pkg/steam-condenser-1.3.6/lib/steam/steam_player.rb +143 -0
  338. data/pkg/steam-condenser-1.3.6/lib/steam-condenser/community.rb +24 -0
  339. data/pkg/steam-condenser-1.3.6/lib/steam-condenser/servers.rb +24 -0
  340. data/pkg/steam-condenser-1.3.6/lib/steam-condenser/version.rb +11 -0
  341. data/pkg/steam-condenser-1.3.6/lib/steam-condenser.rb +18 -0
  342. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/Gemfile +7 -0
  343. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/Gemfile.lock +45 -0
  344. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/LICENSE +25 -0
  345. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/README.md +70 -0
  346. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/Rakefile +46 -0
  347. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/core_ext/stringio.rb +91 -0
  348. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/errors/packet_format_error.rb +13 -0
  349. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/errors/rcon_ban_error.rb +22 -0
  350. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/errors/rcon_no_auth_error.rb +21 -0
  351. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/errors/steam_condenser_error.rb +26 -0
  352. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/errors/timeout_error.rb +28 -0
  353. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/errors/web_api_error.rb +57 -0
  354. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/steam/community/alien_swarm/alien_swarm_mission.rb +119 -0
  355. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/steam/community/alien_swarm/alien_swarm_stats.rb +186 -0
  356. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/steam/community/alien_swarm/alien_swarm_weapon.rb +49 -0
  357. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/steam/community/app_news.rb +133 -0
  358. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/steam/community/cacheable.rb +199 -0
  359. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/steam/community/css/css_map.rb +61 -0
  360. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/steam/community/css/css_stats.rb +142 -0
  361. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/steam/community/css/css_weapon.rb +69 -0
  362. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/steam/community/defense_grid/defense_grid_stats.rb +238 -0
  363. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/steam/community/dods/dods_class.rb +90 -0
  364. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/steam/community/dods/dods_stats.rb +62 -0
  365. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/steam/community/dods/dods_weapon.rb +67 -0
  366. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/steam/community/dota2/dota2_beta_inventory.rb +30 -0
  367. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/steam/community/dota2/dota2_inventory.rb +30 -0
  368. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/steam/community/dota2/dota2_item.rb +33 -0
  369. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/steam/community/game_achievement.rb +109 -0
  370. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/steam/community/game_class.rb +22 -0
  371. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/steam/community/game_inventory.rb +171 -0
  372. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/steam/community/game_item.rb +156 -0
  373. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/steam/community/game_item_schema.rb +131 -0
  374. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/steam/community/game_leaderboard.rb +205 -0
  375. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/steam/community/game_leaderboard_entry.rb +43 -0
  376. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/steam/community/game_stats.rb +175 -0
  377. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/steam/community/game_weapon.rb +41 -0
  378. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/steam/community/l4d/abstract_l4d_stats.rb +185 -0
  379. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/steam/community/l4d/abstract_l4d_weapon.rb +56 -0
  380. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/steam/community/l4d/l4d2_map.rb +90 -0
  381. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/steam/community/l4d/l4d2_stats.rb +174 -0
  382. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/steam/community/l4d/l4d2_weapon.rb +38 -0
  383. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/steam/community/l4d/l4d_explosive.rb +34 -0
  384. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/steam/community/l4d/l4d_map.rb +65 -0
  385. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/steam/community/l4d/l4d_stats.rb +73 -0
  386. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/steam/community/l4d/l4d_weapon.rb +26 -0
  387. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/steam/community/portal2/portal2_inventory.rb +30 -0
  388. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/steam/community/portal2/portal2_item.rb +55 -0
  389. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/steam/community/portal2/portal2_stats.rb +33 -0
  390. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/steam/community/steam_game.rb +193 -0
  391. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/steam/community/steam_group.rb +129 -0
  392. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/steam/community/steam_id.rb +498 -0
  393. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/steam/community/tf2/tf2_beta_inventory.rb +28 -0
  394. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/steam/community/tf2/tf2_class.rb +92 -0
  395. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/steam/community/tf2/tf2_class_factory.rb +40 -0
  396. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/steam/community/tf2/tf2_engineer.rb +43 -0
  397. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/steam/community/tf2/tf2_golden_wrench.rb +70 -0
  398. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/steam/community/tf2/tf2_inventory.rb +30 -0
  399. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/steam/community/tf2/tf2_item.rb +55 -0
  400. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/steam/community/tf2/tf2_medic.rb +35 -0
  401. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/steam/community/tf2/tf2_sniper.rb +28 -0
  402. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/steam/community/tf2/tf2_spy.rb +41 -0
  403. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/steam/community/tf2/tf2_stats.rb +77 -0
  404. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/steam/community/web_api.rb +130 -0
  405. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/steam/community/xml_data.rb +27 -0
  406. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/steam/packets/a2m_get_servers_batch2_packet.rb +59 -0
  407. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/steam/packets/a2s_info_packet.rb +24 -0
  408. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/steam/packets/a2s_player_packet.rb +31 -0
  409. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/steam/packets/a2s_rules_packet.rb +32 -0
  410. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/steam/packets/a2s_serverquery_getchallenge_packet.rb +25 -0
  411. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/steam/packets/c2m_checkmd5_packet.rb +31 -0
  412. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/steam/packets/m2a_server_batch_packet.rb +52 -0
  413. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/steam/packets/m2c_isvalidmd5_packet.rb +34 -0
  414. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/steam/packets/m2s_requestrestart_packet.rb +34 -0
  415. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/steam/packets/rcon/rcon_auth_request.rb +28 -0
  416. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/steam/packets/rcon/rcon_auth_response.rb +30 -0
  417. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/steam/packets/rcon/rcon_exec_request.rb +28 -0
  418. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/steam/packets/rcon/rcon_exec_response.rb +37 -0
  419. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/steam/packets/rcon/rcon_goldsrc_request.rb +35 -0
  420. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/steam/packets/rcon/rcon_goldsrc_response.rb +34 -0
  421. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/steam/packets/rcon/rcon_packet.rb +57 -0
  422. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/steam/packets/rcon/rcon_packet_factory.rb +43 -0
  423. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/steam/packets/rcon/rcon_terminator.rb +29 -0
  424. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/steam/packets/request_with_challenge.rb +19 -0
  425. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/steam/packets/s2a_info2_packet.rb +74 -0
  426. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/steam/packets/s2a_info_base_packet.rb +25 -0
  427. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/steam/packets/s2a_info_detailed_packet.rb +59 -0
  428. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/steam/packets/s2a_logstring_packet.rb +30 -0
  429. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/steam/packets/s2a_player_packet.rb +44 -0
  430. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/steam/packets/s2a_rules_packet.rb +48 -0
  431. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/steam/packets/s2c_challenge_packet.rb +35 -0
  432. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/steam/packets/s2m_heartbeat2_packet.rb +72 -0
  433. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/steam/packets/steam_packet.rb +52 -0
  434. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/steam/packets/steam_packet_factory.rb +108 -0
  435. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/steam/servers/game_server.rb +392 -0
  436. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/steam/servers/goldsrc_server.rb +74 -0
  437. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/steam/servers/master_server.rb +188 -0
  438. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/steam/servers/server.rb +115 -0
  439. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/steam/servers/source_server.rb +117 -0
  440. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/steam/sockets/goldsrc_socket.rb +142 -0
  441. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/steam/sockets/master_server_socket.rb +34 -0
  442. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/steam/sockets/rcon_socket.rb +103 -0
  443. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/steam/sockets/source_socket.rb +78 -0
  444. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/steam/sockets/steam_socket.rb +91 -0
  445. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/steam/steam_player.rb +143 -0
  446. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/steam-condenser/community.rb +24 -0
  447. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/steam-condenser/servers.rb +24 -0
  448. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/steam-condenser/version.rb +11 -0
  449. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/lib/steam-condenser.rb +18 -0
  450. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/steam-condenser.gemspec +26 -0
  451. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/test/core_ext/test_stringio.rb +59 -0
  452. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/test/fixtures/invalid.xml +2 -0
  453. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/test/fixtures/sonofthor.xml +882 -0
  454. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/test/fixtures/status_goldsrc +3 -0
  455. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/test/fixtures/status_source +3 -0
  456. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/test/fixtures/valve-members.xml +231 -0
  457. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/test/helper.rb +48 -0
  458. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/test/steam/community/test_cacheable.rb +100 -0
  459. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/test/steam/community/test_steam_group.rb +83 -0
  460. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/test/steam/community/test_steam_id.rb +144 -0
  461. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/test/steam/community/test_web_api.rb +98 -0
  462. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/test/steam/packets/test_steam_packet.rb +37 -0
  463. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/test/steam/servers/test_game_server.rb +296 -0
  464. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/test/steam/servers/test_goldsrc_server.rb +59 -0
  465. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/test/steam/servers/test_master_server.rb +131 -0
  466. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/test/steam/servers/test_server.rb +72 -0
  467. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/test/steam/servers/test_source_server.rb +134 -0
  468. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/test/steam/sockets/test_goldsrc_socket.rb +127 -0
  469. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/test/steam/sockets/test_master_server_socket.rb +42 -0
  470. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/test/steam/sockets/test_rcon_socket.rb +118 -0
  471. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/test/steam/sockets/test_source_socket.rb +77 -0
  472. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5/test/steam/sockets/test_steam_socket.rb +97 -0
  473. data/pkg/steam-condenser-1.3.6/pkg/steam-condenser-1.3.5.gem +0 -0
  474. data/pkg/steam-condenser-1.3.6/steam-condenser.gemspec +25 -0
  475. data/pkg/steam-condenser-1.3.6/test/core_ext/test_stringio.rb +59 -0
  476. data/pkg/steam-condenser-1.3.6/test/fixtures/invalid.xml +2 -0
  477. data/pkg/steam-condenser-1.3.6/test/fixtures/sonofthor.xml +882 -0
  478. data/pkg/steam-condenser-1.3.6/test/fixtures/status_goldsrc +3 -0
  479. data/pkg/steam-condenser-1.3.6/test/fixtures/status_source +3 -0
  480. data/pkg/steam-condenser-1.3.6/test/fixtures/valve-members.xml +231 -0
  481. data/pkg/steam-condenser-1.3.6/test/helper.rb +48 -0
  482. data/pkg/steam-condenser-1.3.6/test/steam/community/test_cacheable.rb +103 -0
  483. data/pkg/steam-condenser-1.3.6/test/steam/community/test_steam_group.rb +83 -0
  484. data/pkg/steam-condenser-1.3.6/test/steam/community/test_steam_id.rb +144 -0
  485. data/pkg/steam-condenser-1.3.6/test/steam/community/test_web_api.rb +111 -0
  486. data/pkg/steam-condenser-1.3.6/test/steam/packets/test_steam_packet.rb +37 -0
  487. data/pkg/steam-condenser-1.3.6/test/steam/servers/test_game_server.rb +296 -0
  488. data/pkg/steam-condenser-1.3.6/test/steam/servers/test_goldsrc_server.rb +59 -0
  489. data/pkg/steam-condenser-1.3.6/test/steam/servers/test_master_server.rb +131 -0
  490. data/pkg/steam-condenser-1.3.6/test/steam/servers/test_server.rb +72 -0
  491. data/pkg/steam-condenser-1.3.6/test/steam/servers/test_source_server.rb +134 -0
  492. data/pkg/steam-condenser-1.3.6/test/steam/sockets/test_goldsrc_socket.rb +127 -0
  493. data/pkg/steam-condenser-1.3.6/test/steam/sockets/test_master_server_socket.rb +42 -0
  494. data/pkg/steam-condenser-1.3.6/test/steam/sockets/test_rcon_socket.rb +118 -0
  495. data/pkg/steam-condenser-1.3.6/test/steam/sockets/test_source_socket.rb +77 -0
  496. data/pkg/steam-condenser-1.3.6/test/steam/sockets/test_steam_socket.rb +97 -0
  497. data/pkg/steam-condenser-1.3.6.gem +0 -0
  498. data/test/steam/community/test_web_api.rb +13 -0
  499. data/test/steam/servers/test_source_server.rb +18 -7
  500. metadata +493 -3
@@ -0,0 +1,2419 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4
+ <head>
5
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
6
+ <title>
7
+ Module: GameServer
8
+
9
+ &mdash; Metior — API Documentation
10
+
11
+ </title>
12
+
13
+ <link rel="stylesheet" href="css/style.css" type="text/css" charset="utf-8" />
14
+
15
+ <link rel="stylesheet" href="css/common.css" type="text/css" charset="utf-8" />
16
+
17
+ <script type="text/javascript" charset="utf-8">
18
+ hasFrames = window.top.frames.main ? true : false;
19
+ relpath = '';
20
+ framesUrl = "frames.html#!" + escape(window.location.href);
21
+ </script>
22
+
23
+
24
+ <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
25
+
26
+ <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
27
+
28
+
29
+ </head>
30
+ <body>
31
+ <div id="header">
32
+ <div id="menu">
33
+
34
+ <a href="_index.html">Index (G)</a> &raquo;
35
+
36
+
37
+ <span class="title">GameServer</span>
38
+
39
+
40
+ <div class="noframes"><span class="title">(</span><a href="." target="_top">no frames</a><span class="title">)</span></div>
41
+ </div>
42
+
43
+ <div id="search">
44
+
45
+ <a class="full_list_link" id="class_list_link"
46
+ href="class_list.html">
47
+ Class List
48
+ </a>
49
+
50
+ <a class="full_list_link" id="method_list_link"
51
+ href="method_list.html">
52
+ Method List
53
+ </a>
54
+
55
+ <a class="full_list_link" id="file_list_link"
56
+ href="file_list.html">
57
+ File List
58
+ </a>
59
+
60
+ </div>
61
+ <div class="clear"></div>
62
+ </div>
63
+
64
+ <iframe id="search_frame"></iframe>
65
+
66
+ <div id="content"><h1>Module: GameServer
67
+
68
+
69
+
70
+ </h1>
71
+
72
+ <dl class="box">
73
+
74
+
75
+
76
+
77
+
78
+ <dt class="r1">Includes:</dt>
79
+ <dd class="r1"><span class='object_link'><a href="Server.html" title="Server (module)">Server</a></span></dd>
80
+
81
+
82
+
83
+
84
+ <dt class="r2">Included in:</dt>
85
+ <dd class="r2"><span class='object_link'><a href="GoldSrcServer.html" title="GoldSrcServer (class)">GoldSrcServer</a></span>, <span class='object_link'><a href="SourceServer.html" title="SourceServer (class)">SourceServer</a></span></dd>
86
+
87
+
88
+
89
+ <dt class="r1 last">Defined in:</dt>
90
+ <dd class="r1 last">lib/steam/servers/game_server.rb</dd>
91
+
92
+ </dl>
93
+ <div class="clear"></div>
94
+
95
+ <h2>Overview</h2><div class="docstring">
96
+ <div class="discussion">
97
+ <p>This module is included by classes representing different game server
98
+ implementations and provides the basic functionality to communicate with
99
+ them using the common query protocol</p>
100
+
101
+
102
+ </div>
103
+ </div>
104
+ <div class="tags">
105
+
106
+ <p class="tag_title">Author:</p>
107
+ <ul class="author">
108
+
109
+ <li>
110
+
111
+
112
+
113
+
114
+
115
+ <div class='inline'><p>Sebastian Staudt</p>
116
+ </div>
117
+
118
+ </li>
119
+
120
+ </ul>
121
+
122
+ </div>
123
+
124
+
125
+
126
+
127
+
128
+ <h2>Instance Attribute Summary</h2>
129
+
130
+ <h3 class="inherited">Attributes included from <span class='object_link'><a href="Server.html" title="Server (module)">Server</a></span></h3>
131
+ <p class="inherited"><span class='object_link'><a href="Server.html#host_names-instance_method" title="Server#host_names (method)">#host_names</a></span>, <span class='object_link'><a href="Server.html#ip_addresses-instance_method" title="Server#ip_addresses (method)">#ip_addresses</a></span></p>
132
+
133
+
134
+
135
+ <h2>
136
+ Class Method Summary
137
+ <small>(<a href="#" class="summary_toggle">collapse</a>)</small>
138
+ </h2>
139
+
140
+ <ul class="summary">
141
+
142
+ <li class="public ">
143
+ <span class="summary_signature">
144
+
145
+ <a href="#player_status_attributes-class_method" title="player_status_attributes (class method)">+ (Array&lt;Symbol&gt;) <strong>player_status_attributes</strong>(status_header) </a>
146
+
147
+
148
+
149
+ </span>
150
+
151
+
152
+
153
+
154
+
155
+
156
+
157
+
158
+
159
+ <span class="summary_desc"><div class='inline'><p>Parses the player attribute names supplied by <code>rcon status</code>.</p>
160
+ </div></span>
161
+
162
+ </li>
163
+
164
+
165
+ <li class="public ">
166
+ <span class="summary_signature">
167
+
168
+ <a href="#split_player_status-class_method" title="split_player_status (class method)">+ (Hash&lt;Symbol, String&gt;) <strong>split_player_status</strong>(attributes, player_status) </a>
169
+
170
+
171
+
172
+ </span>
173
+
174
+
175
+
176
+
177
+
178
+
179
+
180
+
181
+
182
+ <span class="summary_desc"><div class='inline'><p>Splits the player status obtained with <code>rcon status</code>.</p>
183
+ </div></span>
184
+
185
+ </li>
186
+
187
+
188
+ </ul>
189
+
190
+ <h2>
191
+ Instance Method Summary
192
+ <small>(<a href="#" class="summary_toggle">collapse</a>)</small>
193
+ </h2>
194
+
195
+ <ul class="summary">
196
+
197
+ <li class="public ">
198
+ <span class="summary_signature">
199
+
200
+ <a href="#handle_response_for_request-instance_method" title="#handle_response_for_request (instance method)">- (Object) <strong>handle_response_for_request</strong>(request_type, repeat_on_failure = true) </a>
201
+
202
+
203
+
204
+ </span>
205
+
206
+
207
+
208
+
209
+
210
+
211
+
212
+
213
+
214
+ <span class="summary_desc"><div class='inline'><p>Sends the specified request to the server and handles the returned response.</p>
215
+ </div></span>
216
+
217
+ </li>
218
+
219
+
220
+ <li class="public ">
221
+ <span class="summary_signature">
222
+
223
+ <a href="#init-instance_method" title="#init (instance method)">- (Object) <strong>init</strong> </a>
224
+
225
+
226
+
227
+ </span>
228
+
229
+
230
+
231
+
232
+
233
+
234
+
235
+
236
+
237
+ <span class="summary_desc"><div class='inline'><p>Initializes this server object with basic information.</p>
238
+ </div></span>
239
+
240
+ </li>
241
+
242
+
243
+ <li class="public ">
244
+ <span class="summary_signature">
245
+
246
+ <a href="#initialize-instance_method" title="#initialize (instance method)">- (GameServer) <strong>initialize</strong>(address, port = 27015) </a>
247
+
248
+
249
+
250
+ </span>
251
+
252
+
253
+
254
+
255
+
256
+
257
+
258
+
259
+
260
+ <span class="summary_desc"><div class='inline'><p>Creates a new instance of a game server object.</p>
261
+ </div></span>
262
+
263
+ </li>
264
+
265
+
266
+ <li class="public ">
267
+ <span class="summary_signature">
268
+
269
+ <a href="#ping-instance_method" title="#ping (instance method)">- (Fixnum) <strong>ping</strong> </a>
270
+
271
+
272
+
273
+ </span>
274
+
275
+
276
+
277
+
278
+
279
+
280
+
281
+
282
+
283
+ <span class="summary_desc"><div class='inline'><p>Returns the last measured response time of this server.</p>
284
+ </div></span>
285
+
286
+ </li>
287
+
288
+
289
+ <li class="public ">
290
+ <span class="summary_signature">
291
+
292
+ <a href="#players-instance_method" title="#players (instance method)">- (Hash) <strong>players</strong>(rcon_password = nil) </a>
293
+
294
+
295
+
296
+ </span>
297
+
298
+
299
+
300
+
301
+
302
+
303
+
304
+
305
+
306
+ <span class="summary_desc"><div class='inline'><p>Returns a list of players currently playing on this server.</p>
307
+ </div></span>
308
+
309
+ </li>
310
+
311
+
312
+ <li class="public ">
313
+ <span class="summary_signature">
314
+
315
+ <a href="#rcon_auth-instance_method" title="#rcon_auth (instance method)">- (Boolean) <strong>rcon_auth</strong>(password) </a>
316
+
317
+
318
+
319
+ </span>
320
+
321
+
322
+
323
+
324
+ <span class="abstract note title">abstract</span>
325
+
326
+
327
+
328
+
329
+ <span class="summary_desc"><div class='inline'><p>Authenticates the connection for RCON communication with the server.</p>
330
+ </div></span>
331
+
332
+ </li>
333
+
334
+
335
+ <li class="public ">
336
+ <span class="summary_signature">
337
+
338
+ <a href="#rcon_authenticated%3F-instance_method" title="#rcon_authenticated? (instance method)">- (Boolean) <strong>rcon_authenticated?</strong> </a>
339
+
340
+
341
+
342
+ </span>
343
+
344
+
345
+
346
+
347
+
348
+
349
+
350
+
351
+
352
+ <span class="summary_desc"><div class='inline'><p>Returns whether the RCON connection to this server is already authenticated.</p>
353
+ </div></span>
354
+
355
+ </li>
356
+
357
+
358
+ <li class="public ">
359
+ <span class="summary_signature">
360
+
361
+ <a href="#rcon_exec-instance_method" title="#rcon_exec (instance method)">- (String) <strong>rcon_exec</strong>(command) </a>
362
+
363
+
364
+
365
+ </span>
366
+
367
+
368
+
369
+
370
+ <span class="abstract note title">abstract</span>
371
+
372
+
373
+
374
+
375
+ <span class="summary_desc"><div class='inline'><p>Remotely executes a command on the server via RCON.</p>
376
+ </div></span>
377
+
378
+ </li>
379
+
380
+
381
+ <li class="protected ">
382
+ <span class="summary_signature">
383
+
384
+ <a href="#reply-instance_method" title="#reply (instance method)">- (SteamPacket) <strong>reply</strong> </a>
385
+
386
+
387
+
388
+ </span>
389
+
390
+
391
+
392
+ <span class="note title protected">protected</span>
393
+
394
+
395
+
396
+
397
+
398
+ <span class="summary_desc"><div class='inline'><p>Receives a response from the server.</p>
399
+ </div></span>
400
+
401
+ </li>
402
+
403
+
404
+ <li class="public ">
405
+ <span class="summary_signature">
406
+
407
+ <a href="#rules-instance_method" title="#rules (instance method)">- (Hash&lt;String, String&gt;) <strong>rules</strong> </a>
408
+
409
+
410
+
411
+ </span>
412
+
413
+
414
+
415
+
416
+
417
+
418
+
419
+
420
+
421
+ <span class="summary_desc"><div class='inline'><p>Returns the settings applied on the server.</p>
422
+ </div></span>
423
+
424
+ </li>
425
+
426
+
427
+ <li class="protected ">
428
+ <span class="summary_signature">
429
+
430
+ <a href="#send_request-instance_method" title="#send_request (instance method)">- (Object) <strong>send_request</strong>(packet) </a>
431
+
432
+
433
+
434
+ </span>
435
+
436
+
437
+
438
+ <span class="note title protected">protected</span>
439
+
440
+
441
+
442
+
443
+
444
+ <span class="summary_desc"><div class='inline'><p>Sends a request packet to the server.</p>
445
+ </div></span>
446
+
447
+ </li>
448
+
449
+
450
+ <li class="public ">
451
+ <span class="summary_signature">
452
+
453
+ <a href="#server_info-instance_method" title="#server_info (instance method)">- (Hash) <strong>server_info</strong> </a>
454
+
455
+
456
+
457
+ </span>
458
+
459
+
460
+
461
+
462
+
463
+
464
+
465
+
466
+
467
+ <span class="summary_desc"><div class='inline'><p>Returns a hash with basic information on the server.</p>
468
+ </div></span>
469
+
470
+ </li>
471
+
472
+
473
+ <li class="public ">
474
+ <span class="summary_signature">
475
+
476
+ <a href="#to_s-instance_method" title="#to_s (instance method)">- (String) <strong>to_s</strong> </a>
477
+
478
+
479
+
480
+ </span>
481
+
482
+
483
+
484
+
485
+
486
+
487
+
488
+
489
+
490
+ <span class="summary_desc"><div class='inline'><p>Returns a human-readable text representation of the server.</p>
491
+ </div></span>
492
+
493
+ </li>
494
+
495
+
496
+ <li class="public ">
497
+ <span class="summary_signature">
498
+
499
+ <a href="#update_challenge_number-instance_method" title="#update_challenge_number (instance method)">- (Object) <strong>update_challenge_number</strong> </a>
500
+
501
+
502
+
503
+ </span>
504
+
505
+
506
+
507
+
508
+
509
+
510
+
511
+
512
+
513
+ <span class="summary_desc"><div class='inline'><p>Sends a A2S_SERVERQUERY_GETCHALLENGE request to the server and updates the challenge number used to communicate with this server.</p>
514
+ </div></span>
515
+
516
+ </li>
517
+
518
+
519
+ <li class="public ">
520
+ <span class="summary_signature">
521
+
522
+ <a href="#update_ping-instance_method" title="#update_ping (instance method)">- (Fixnum) <strong>update_ping</strong> </a>
523
+
524
+
525
+
526
+ </span>
527
+
528
+
529
+
530
+
531
+
532
+
533
+
534
+
535
+
536
+ <span class="summary_desc"><div class='inline'><p>Sends a A2S_INFO request to the server and measures the time needed for the reply.</p>
537
+ </div></span>
538
+
539
+ </li>
540
+
541
+
542
+ <li class="public ">
543
+ <span class="summary_signature">
544
+
545
+ <a href="#update_players-instance_method" title="#update_players (instance method)">- (Object) <strong>update_players</strong>(rcon_password = nil) </a>
546
+
547
+
548
+
549
+ </span>
550
+
551
+
552
+
553
+
554
+
555
+
556
+
557
+
558
+
559
+ <span class="summary_desc"><div class='inline'><p>Sends a A2S_PLAYERS request to the server and updates the players&#39; data for this server.</p>
560
+ </div></span>
561
+
562
+ </li>
563
+
564
+
565
+ <li class="public ">
566
+ <span class="summary_signature">
567
+
568
+ <a href="#update_rules-instance_method" title="#update_rules (instance method)">- (Object) <strong>update_rules</strong> </a>
569
+
570
+
571
+
572
+ </span>
573
+
574
+
575
+
576
+
577
+
578
+
579
+
580
+
581
+
582
+ <span class="summary_desc"><div class='inline'><p>Sends a A2S_RULES request to the server and updates the rules of this server.</p>
583
+ </div></span>
584
+
585
+ </li>
586
+
587
+
588
+ <li class="public ">
589
+ <span class="summary_signature">
590
+
591
+ <a href="#update_server_info-instance_method" title="#update_server_info (instance method)">- (Object) <strong>update_server_info</strong> </a>
592
+
593
+
594
+
595
+ </span>
596
+
597
+
598
+
599
+
600
+
601
+
602
+
603
+
604
+
605
+ <span class="summary_desc"><div class='inline'><p>Sends a A2S_INFO request to the server and updates this server&#39;s basic information.</p>
606
+ </div></span>
607
+
608
+ </li>
609
+
610
+
611
+ </ul>
612
+
613
+
614
+
615
+
616
+
617
+
618
+
619
+
620
+
621
+
622
+
623
+ <h3 class="inherited">Methods included from <span class='object_link'><a href="Server.html" title="Server (module)">Server</a></span></h3>
624
+ <p class="inherited"><span class='object_link'><a href="Server.html#disconnect-instance_method" title="Server#disconnect (method)">#disconnect</a></span>, <span class='object_link'><a href="Server.html#failsafe-instance_method" title="Server#failsafe (method)">#failsafe</a></span>, <span class='object_link'><a href="Server.html#init_socket-instance_method" title="Server#init_socket (method)">#init_socket</a></span>, <span class='object_link'><a href="Server.html#rotate_ip-instance_method" title="Server#rotate_ip (method)">#rotate_ip</a></span></p>
625
+
626
+
627
+ <div id="class_method_details" class="method_details_list">
628
+ <h2>Class Method Details</h2>
629
+
630
+
631
+ <div class="method_details first">
632
+ <h3 class="signature first" id="player_status_attributes-class_method">
633
+
634
+ + (<tt>Array&lt;Symbol&gt;</tt>) <strong>player_status_attributes</strong>(status_header)
635
+
636
+
637
+
638
+
639
+
640
+ </h3><div class="docstring">
641
+ <div class="discussion">
642
+ <p>Parses the player attribute names supplied by <code>rcon status</code></p>
643
+
644
+
645
+ </div>
646
+ </div>
647
+ <div class="tags">
648
+ <p class="tag_title">Parameters:</p>
649
+ <ul class="param">
650
+
651
+ <li>
652
+
653
+ <span class='name'>status_header</span>
654
+
655
+
656
+ <span class='type'>(<tt>String</tt>)</span>
657
+
658
+
659
+
660
+ &mdash;
661
+ <div class='inline'><p>The header line provided by <code>rcon status</code></p>
662
+ </div>
663
+
664
+ </li>
665
+
666
+ </ul>
667
+
668
+ <p class="tag_title">Returns:</p>
669
+ <ul class="return">
670
+
671
+ <li>
672
+
673
+
674
+ <span class='type'>(<tt>Array&lt;Symbol&gt;</tt>)</span>
675
+
676
+
677
+
678
+ &mdash;
679
+ <div class='inline'><p>Split player attribute names</p>
680
+ </div>
681
+
682
+ </li>
683
+
684
+ </ul>
685
+
686
+ <p class="tag_title">See Also:</p>
687
+ <ul class="see">
688
+
689
+ <li><span class='object_link'><a href="#split_player_status-class_method" title="GameServer.split_player_status (method)">split_player_status</a></span></li>
690
+
691
+ </ul>
692
+
693
+ </div><table class="source_code">
694
+ <tr>
695
+ <td>
696
+ <pre class="lines">
697
+
698
+
699
+ 33
700
+ 34
701
+ 35
702
+ 36
703
+ 37
704
+ 38
705
+ 39
706
+ 40
707
+ 41
708
+ 42
709
+ 43
710
+ 44</pre>
711
+ </td>
712
+ <td>
713
+ <pre class="code"><span class="info file"># File 'lib/steam/servers/game_server.rb', line 33</span>
714
+
715
+ <span class='rubyid_def def kw'>def</span> <span class='rubyid_self self kw'>self</span><span class='dot token'>.</span><span class='rubyid_player_status_attributes identifier id'>player_status_attributes</span><span class='lparen token'>(</span><span class='rubyid_status_header identifier id'>status_header</span><span class='rparen token'>)</span>
716
+ <span class='rubyid_status_header identifier id'>status_header</span><span class='dot token'>.</span><span class='rubyid_split identifier id'>split</span><span class='dot token'>.</span><span class='rubyid_map identifier id'>map</span> <span class='rubyid_do do kw'>do</span> <span class='bitor op'>|</span><span class='rubyid_attribute identifier id'>attribute</span><span class='bitor op'>|</span>
717
+ <span class='rubyid_case case kw'>case</span> <span class='rubyid_attribute identifier id'>attribute</span>
718
+ <span class='rubyid_when when kw'>when</span> <span class='string val'>'connected'</span>
719
+ <span class='symbol val'>:time</span>
720
+ <span class='rubyid_when when kw'>when</span> <span class='string val'>'frag'</span>
721
+ <span class='symbol val'>:score</span>
722
+ <span class='rubyid_else else kw'>else</span>
723
+ <span class='rubyid_attribute identifier id'>attribute</span><span class='dot token'>.</span><span class='rubyid_to_sym identifier id'>to_sym</span>
724
+ <span class='rubyid_end end kw'>end</span>
725
+ <span class='rubyid_end end kw'>end</span>
726
+ <span class='rubyid_end end kw'>end</span>
727
+ </pre>
728
+ </td>
729
+ </tr>
730
+ </table>
731
+ </div>
732
+
733
+ <div class="method_details ">
734
+ <h3 class="signature " id="split_player_status-class_method">
735
+
736
+ + (<tt>Hash&lt;Symbol, String&gt;</tt>) <strong>split_player_status</strong>(attributes, player_status)
737
+
738
+
739
+
740
+
741
+
742
+ </h3><div class="docstring">
743
+ <div class="discussion">
744
+ <p>Splits the player status obtained with <code>rcon status</code></p>
745
+
746
+
747
+ </div>
748
+ </div>
749
+ <div class="tags">
750
+ <p class="tag_title">Parameters:</p>
751
+ <ul class="param">
752
+
753
+ <li>
754
+
755
+ <span class='name'>attributes</span>
756
+
757
+
758
+ <span class='type'>(<tt>Array&lt;Symbol&gt;</tt>)</span>
759
+
760
+
761
+
762
+ &mdash;
763
+ <div class='inline'><p>The attribute names</p>
764
+ </div>
765
+
766
+ </li>
767
+
768
+ <li>
769
+
770
+ <span class='name'>player_status</span>
771
+
772
+
773
+ <span class='type'>(<tt>String</tt>)</span>
774
+
775
+
776
+
777
+ &mdash;
778
+ <div class='inline'><p>The status line of a single player</p>
779
+ </div>
780
+
781
+ </li>
782
+
783
+ </ul>
784
+
785
+ <p class="tag_title">Returns:</p>
786
+ <ul class="return">
787
+
788
+ <li>
789
+
790
+
791
+ <span class='type'>(<tt>Hash&lt;Symbol, String&gt;</tt>)</span>
792
+
793
+
794
+
795
+ &mdash;
796
+ <div class='inline'><p>The attributes with the corresponding values
797
+ for this player</p>
798
+ </div>
799
+
800
+ </li>
801
+
802
+ </ul>
803
+
804
+ <p class="tag_title">See Also:</p>
805
+ <ul class="see">
806
+
807
+ <li><span class='object_link'><a href="#player_status_attributes-class_method" title="GameServer.player_status_attributes (method)">player_status_attributes</a></span></li>
808
+
809
+ </ul>
810
+
811
+ </div><table class="source_code">
812
+ <tr>
813
+ <td>
814
+ <pre class="lines">
815
+
816
+
817
+ 53
818
+ 54
819
+ 55
820
+ 56
821
+ 57
822
+ 58
823
+ 59
824
+ 60
825
+ 61
826
+ 62
827
+ 63
828
+ 64
829
+ 65
830
+ 66
831
+ 67
832
+ 68
833
+ 69
834
+ 70
835
+ 71
836
+ 72
837
+ 73
838
+ 74
839
+ 75
840
+ 76
841
+ 77
842
+ 78</pre>
843
+ </td>
844
+ <td>
845
+ <pre class="code"><span class="info file"># File 'lib/steam/servers/game_server.rb', line 53</span>
846
+
847
+ <span class='rubyid_def def kw'>def</span> <span class='rubyid_self self kw'>self</span><span class='dot token'>.</span><span class='rubyid_split_player_status identifier id'>split_player_status</span><span class='lparen token'>(</span><span class='rubyid_attributes identifier id'>attributes</span><span class='comma token'>,</span> <span class='rubyid_player_status identifier id'>player_status</span><span class='rparen token'>)</span>
848
+ <span class='rubyid_player_status identifier id'>player_status</span><span class='dot token'>.</span><span class='rubyid_sub! fid id'>sub!</span> <span class='regexp val'>/^\d+ +/</span><span class='comma token'>,</span> <span class='string val'>''</span> <span class='rubyid_if if_mod kw'>if</span> <span class='rubyid_attributes identifier id'>attributes</span><span class='dot token'>.</span><span class='rubyid_first identifier id'>first</span> <span class='neq op'>!=</span> <span class='symbol val'>:userid</span>
849
+
850
+ <span class='rubyid_first_quote identifier id'>first_quote</span> <span class='assign token'>=</span> <span class='rubyid_player_status identifier id'>player_status</span><span class='dot token'>.</span><span class='rubyid_index identifier id'>index</span> <span class='string val'>'&quot;'</span>
851
+ <span class='rubyid_last_quote identifier id'>last_quote</span> <span class='assign token'>=</span> <span class='rubyid_player_status identifier id'>player_status</span><span class='dot token'>.</span><span class='rubyid_rindex identifier id'>rindex</span> <span class='string val'>'&quot;'</span>
852
+ <span class='rubyid_data identifier id'>data</span> <span class='assign token'>=</span> <span class='lbrack token'>[</span>
853
+ <span class='rubyid_player_status identifier id'>player_status</span><span class='lbrack token'>[</span><span class='integer val'>0</span><span class='comma token'>,</span> <span class='rubyid_first_quote identifier id'>first_quote</span><span class='rbrack token'>]</span><span class='comma token'>,</span>
854
+ <span class='rubyid_player_status identifier id'>player_status</span><span class='lbrack token'>[</span><span class='rubyid_first_quote identifier id'>first_quote</span> <span class='plus op'>+</span> <span class='float val'>1</span><span class='dot2 op'>..</span><span class='rubyid_last_quote identifier id'>last_quote</span> <span class='minus op'>-</span> <span class='integer val'>1</span><span class='rbrack token'>]</span><span class='comma token'>,</span>
855
+ <span class='rubyid_player_status identifier id'>player_status</span><span class='lbrack token'>[</span><span class='rubyid_last_quote identifier id'>last_quote</span> <span class='plus op'>+</span> <span class='float val'>1</span><span class='dot2 op'>..</span><span class='integer val'>-1</span><span class='rbrack token'>]</span>
856
+ <span class='rbrack token'>]</span>
857
+ <span class='rubyid_data identifier id'>data</span> <span class='assign token'>=</span> <span class='lbrack token'>[</span> <span class='rubyid_data identifier id'>data</span><span class='lbrack token'>[</span><span class='integer val'>0</span><span class='rbrack token'>]</span><span class='dot token'>.</span><span class='rubyid_split identifier id'>split</span><span class='comma token'>,</span> <span class='rubyid_data identifier id'>data</span><span class='lbrack token'>[</span><span class='integer val'>1</span><span class='rbrack token'>]</span><span class='comma token'>,</span> <span class='rubyid_data identifier id'>data</span><span class='lbrack token'>[</span><span class='integer val'>2</span><span class='rbrack token'>]</span><span class='dot token'>.</span><span class='rubyid_split identifier id'>split</span> <span class='rbrack token'>]</span>
858
+ <span class='rubyid_data identifier id'>data</span><span class='dot token'>.</span><span class='rubyid_flatten! fid id'>flatten!</span>
859
+
860
+ <span class='rubyid_if if kw'>if</span> <span class='rubyid_attributes identifier id'>attributes</span><span class='dot token'>.</span><span class='rubyid_size identifier id'>size</span> <span class='gt op'>&gt;</span> <span class='rubyid_data identifier id'>data</span><span class='dot token'>.</span><span class='rubyid_size identifier id'>size</span> <span class='andop op'>&amp;&amp;</span> <span class='rubyid_attributes identifier id'>attributes</span><span class='dot token'>.</span><span class='rubyid_include? fid id'>include?</span><span class='lparen token'>(</span><span class='symbol val'>:state</span><span class='rparen token'>)</span>
861
+ <span class='rubyid_data identifier id'>data</span><span class='dot token'>.</span><span class='rubyid_insert identifier id'>insert</span> <span class='integer val'>3</span><span class='comma token'>,</span> <span class='rubyid_nil nil kw'>nil</span><span class='comma token'>,</span> <span class='rubyid_nil nil kw'>nil</span><span class='comma token'>,</span> <span class='rubyid_nil nil kw'>nil</span>
862
+ <span class='rubyid_elsif elsif kw'>elsif</span> <span class='rubyid_attributes identifier id'>attributes</span><span class='dot token'>.</span><span class='rubyid_size identifier id'>size</span> <span class='lt op'>&lt;</span> <span class='rubyid_data identifier id'>data</span><span class='dot token'>.</span><span class='rubyid_size identifier id'>size</span>
863
+ <span class='rubyid_data identifier id'>data</span><span class='dot token'>.</span><span class='rubyid_delete_at identifier id'>delete_at</span> <span class='integer val'>1</span>
864
+ <span class='rubyid_end end kw'>end</span>
865
+
866
+ <span class='rubyid_player_data identifier id'>player_data</span> <span class='assign token'>=</span> <span class='lbrace token'>{</span><span class='rbrace token'>}</span>
867
+ <span class='rubyid_data identifier id'>data</span><span class='dot token'>.</span><span class='rubyid_each_index identifier id'>each_index</span> <span class='rubyid_do do kw'>do</span> <span class='bitor op'>|</span><span class='rubyid_i identifier id'>i</span><span class='bitor op'>|</span>
868
+ <span class='rubyid_player_data identifier id'>player_data</span><span class='lbrack token'>[</span><span class='rubyid_attributes identifier id'>attributes</span><span class='lbrack token'>[</span><span class='rubyid_i identifier id'>i</span><span class='rbrack token'>]</span><span class='rbrack token'>]</span> <span class='assign token'>=</span> <span class='rubyid_data identifier id'>data</span><span class='lbrack token'>[</span><span class='rubyid_i identifier id'>i</span><span class='rbrack token'>]</span>
869
+ <span class='rubyid_end end kw'>end</span>
870
+
871
+ <span class='rubyid_player_data identifier id'>player_data</span>
872
+ <span class='rubyid_end end kw'>end</span>
873
+ </pre>
874
+ </td>
875
+ </tr>
876
+ </table>
877
+ </div>
878
+
879
+ </div>
880
+
881
+ <div id="instance_method_details" class="method_details_list">
882
+ <h2>Instance Method Details</h2>
883
+
884
+
885
+ <div class="method_details first">
886
+ <h3 class="signature first" id="handle_response_for_request-instance_method">
887
+
888
+ - (<tt>Object</tt>) <strong>handle_response_for_request</strong>(request_type, repeat_on_failure = true)
889
+
890
+
891
+
892
+
893
+
894
+ </h3><div class="docstring">
895
+ <div class="discussion">
896
+ <p>Sends the specified request to the server and handles the returned response</p>
897
+
898
+ <p>Depending on the given request type this will fill the various data
899
+ attributes of the server object.</p>
900
+
901
+
902
+ </div>
903
+ </div>
904
+ <div class="tags">
905
+ <p class="tag_title">Parameters:</p>
906
+ <ul class="param">
907
+
908
+ <li>
909
+
910
+ <span class='name'>request_type</span>
911
+
912
+
913
+ <span class='type'>(<tt>Symbol</tt>)</span>
914
+
915
+
916
+
917
+ &mdash;
918
+ <div class='inline'><p>The type of request to send to the server</p>
919
+ </div>
920
+
921
+ </li>
922
+
923
+ <li>
924
+
925
+ <span class='name'>repeat_on_failure</span>
926
+
927
+
928
+ <span class='type'>(<tt>Boolean</tt>)</span>
929
+
930
+
931
+ <em class="default">(defaults to: <tt>true</tt>)</em>
932
+
933
+
934
+ &mdash;
935
+ <div class='inline'><p>Whether the request should be repeated,
936
+ if the replied packet isn&#39;t expected. This is useful to handle
937
+ missing challenge numbers, which will be automatically filled in,
938
+ although not requested explicitly.</p>
939
+ </div>
940
+
941
+ </li>
942
+
943
+ </ul>
944
+
945
+ <p class="tag_title">Raises:</p>
946
+ <ul class="raise">
947
+
948
+ <li>
949
+
950
+
951
+ <span class='type'>(<tt><span class='object_link'><a href="SteamCondenserError.html" title="SteamCondenserError (class)">SteamCondenserError</a></span></tt>)</span>
952
+
953
+
954
+
955
+ &mdash;
956
+ <div class='inline'><p>if either the request type or the response
957
+ packet is not known</p>
958
+ </div>
959
+
960
+ </li>
961
+
962
+ </ul>
963
+
964
+ </div><table class="source_code">
965
+ <tr>
966
+ <td>
967
+ <pre class="lines">
968
+
969
+
970
+ 203
971
+ 204
972
+ 205
973
+ 206
974
+ 207
975
+ 208
976
+ 209
977
+ 210
978
+ 211
979
+ 212
980
+ 213
981
+ 214
982
+ 215
983
+ 216
984
+ 217
985
+ 218
986
+ 219
987
+ 220
988
+ 221
989
+ 222
990
+ 223
991
+ 224
992
+ 225
993
+ 226
994
+ 227
995
+ 228
996
+ 229
997
+ 230
998
+ 231
999
+ 232
1000
+ 233
1001
+ 234
1002
+ 235
1003
+ 236
1004
+ 237
1005
+ 238
1006
+ 239
1007
+ 240</pre>
1008
+ </td>
1009
+ <td>
1010
+ <pre class="code"><span class="info file"># File 'lib/steam/servers/game_server.rb', line 203</span>
1011
+
1012
+ <span class='rubyid_def def kw'>def</span> <span class='rubyid_handle_response_for_request identifier id'>handle_response_for_request</span><span class='lparen token'>(</span><span class='rubyid_request_type identifier id'>request_type</span><span class='comma token'>,</span> <span class='rubyid_repeat_on_failure identifier id'>repeat_on_failure</span> <span class='assign token'>=</span> <span class='rubyid_true true kw'>true</span><span class='rparen token'>)</span>
1013
+ <span class='rubyid_case case kw'>case</span> <span class='rubyid_request_type identifier id'>request_type</span>
1014
+ <span class='rubyid_when when kw'>when</span> <span class='symbol val'>:challenge</span> <span class='rubyid_then then kw'>then</span>
1015
+ <span class='rubyid_request_packet identifier id'>request_packet</span> <span class='assign token'>=</span> <span class='rubyid_A2S_PLAYER_Packet constant id'>A2S_PLAYER_Packet</span><span class='dot token'>.</span><span class='rubyid_new identifier id'>new</span>
1016
+ <span class='rubyid_expected_response identifier id'>expected_response</span> <span class='assign token'>=</span> <span class='rubyid_S2C_CHALLENGE_Packet constant id'>S2C_CHALLENGE_Packet</span>
1017
+ <span class='rubyid_when when kw'>when</span> <span class='symbol val'>:info</span> <span class='rubyid_then then kw'>then</span>
1018
+ <span class='rubyid_request_packet identifier id'>request_packet</span> <span class='assign token'>=</span> <span class='rubyid_A2S_INFO_Packet constant id'>A2S_INFO_Packet</span><span class='dot token'>.</span><span class='rubyid_new identifier id'>new</span>
1019
+ <span class='rubyid_expected_response identifier id'>expected_response</span> <span class='assign token'>=</span> <span class='rubyid_S2A_INFO_BasePacket constant id'>S2A_INFO_BasePacket</span>
1020
+ <span class='rubyid_when when kw'>when</span> <span class='symbol val'>:players</span> <span class='rubyid_then then kw'>then</span>
1021
+ <span class='rubyid_request_packet identifier id'>request_packet</span> <span class='assign token'>=</span> <span class='rubyid_A2S_PLAYER_Packet constant id'>A2S_PLAYER_Packet</span><span class='dot token'>.</span><span class='rubyid_new identifier id'>new</span><span class='lparen token'>(</span><span class='rubyid_@challenge_number ivar id'>@challenge_number</span><span class='rparen token'>)</span>
1022
+ <span class='rubyid_expected_response identifier id'>expected_response</span> <span class='assign token'>=</span> <span class='rubyid_S2A_PLAYER_Packet constant id'>S2A_PLAYER_Packet</span>
1023
+ <span class='rubyid_when when kw'>when</span> <span class='symbol val'>:rules</span> <span class='rubyid_then then kw'>then</span>
1024
+ <span class='rubyid_request_packet identifier id'>request_packet</span> <span class='assign token'>=</span> <span class='rubyid_A2S_RULES_Packet constant id'>A2S_RULES_Packet</span><span class='dot token'>.</span><span class='rubyid_new identifier id'>new</span><span class='lparen token'>(</span><span class='rubyid_@challenge_number ivar id'>@challenge_number</span><span class='rparen token'>)</span>
1025
+ <span class='rubyid_expected_response identifier id'>expected_response</span> <span class='assign token'>=</span> <span class='rubyid_S2A_RULES_Packet constant id'>S2A_RULES_Packet</span>
1026
+ <span class='rubyid_else else kw'>else</span>
1027
+ <span class='rubyid_raise identifier id'>raise</span> <span class='rubyid_SteamCondenserError constant id'>SteamCondenserError</span><span class='comma token'>,</span> <span class='string val'>'Called with wrong request type.'</span>
1028
+ <span class='rubyid_end end kw'>end</span>
1029
+
1030
+ <span class='rubyid_send_request identifier id'>send_request</span> <span class='rubyid_request_packet identifier id'>request_packet</span>
1031
+ <span class='rubyid_response_packet identifier id'>response_packet</span> <span class='assign token'>=</span> <span class='rubyid_reply identifier id'>reply</span>
1032
+
1033
+ <span class='rubyid_if if kw'>if</span> <span class='rubyid_response_packet identifier id'>response_packet</span><span class='dot token'>.</span><span class='rubyid_kind_of? fid id'>kind_of?</span> <span class='rubyid_S2A_INFO_BasePacket constant id'>S2A_INFO_BasePacket</span>
1034
+ <span class='rubyid_@info_hash ivar id'>@info_hash</span> <span class='assign token'>=</span> <span class='rubyid_response_packet identifier id'>response_packet</span><span class='dot token'>.</span><span class='rubyid_info identifier id'>info</span>
1035
+ <span class='rubyid_elsif elsif kw'>elsif</span> <span class='rubyid_response_packet identifier id'>response_packet</span><span class='dot token'>.</span><span class='rubyid_kind_of? fid id'>kind_of?</span> <span class='rubyid_S2A_PLAYER_Packet constant id'>S2A_PLAYER_Packet</span>
1036
+ <span class='rubyid_@player_hash ivar id'>@player_hash</span> <span class='assign token'>=</span> <span class='rubyid_response_packet identifier id'>response_packet</span><span class='dot token'>.</span><span class='rubyid_player_hash identifier id'>player_hash</span>
1037
+ <span class='rubyid_elsif elsif kw'>elsif</span> <span class='rubyid_response_packet identifier id'>response_packet</span><span class='dot token'>.</span><span class='rubyid_kind_of? fid id'>kind_of?</span> <span class='rubyid_S2A_RULES_Packet constant id'>S2A_RULES_Packet</span>
1038
+ <span class='rubyid_@rules_hash ivar id'>@rules_hash</span> <span class='assign token'>=</span> <span class='rubyid_response_packet identifier id'>response_packet</span><span class='dot token'>.</span><span class='rubyid_rules_hash identifier id'>rules_hash</span>
1039
+ <span class='rubyid_elsif elsif kw'>elsif</span> <span class='rubyid_response_packet identifier id'>response_packet</span><span class='dot token'>.</span><span class='rubyid_kind_of? fid id'>kind_of?</span> <span class='rubyid_S2C_CHALLENGE_Packet constant id'>S2C_CHALLENGE_Packet</span>
1040
+ <span class='rubyid_@challenge_number ivar id'>@challenge_number</span> <span class='assign token'>=</span> <span class='rubyid_response_packet identifier id'>response_packet</span><span class='dot token'>.</span><span class='rubyid_challenge_number identifier id'>challenge_number</span>
1041
+ <span class='rubyid_else else kw'>else</span>
1042
+ <span class='rubyid_raise identifier id'>raise</span> <span class='rubyid_SteamCondenserError constant id'>SteamCondenserError</span><span class='comma token'>,</span> <span class='dstring node'>&quot;Response of type #{response_packet.class} cannot be handled by this method.&quot;</span>
1043
+ <span class='rubyid_end end kw'>end</span>
1044
+
1045
+ <span class='rubyid_unless unless kw'>unless</span> <span class='rubyid_response_packet identifier id'>response_packet</span><span class='dot token'>.</span><span class='rubyid_kind_of? fid id'>kind_of?</span> <span class='rubyid_expected_response identifier id'>expected_response</span>
1046
+ <span class='rubyid_puts identifier id'>puts</span> <span class='dstring node'>&quot;Expected #{expected_response}, got #{response_packet.class}.&quot;</span> <span class='rubyid_if if_mod kw'>if</span> <span class='rubyid_$DEBUG gvar id'>$DEBUG</span>
1047
+ <span class='rubyid_handle_response_for_request identifier id'>handle_response_for_request</span><span class='lparen token'>(</span><span class='rubyid_request_type identifier id'>request_type</span><span class='comma token'>,</span> <span class='rubyid_false false kw'>false</span><span class='rparen token'>)</span> <span class='rubyid_if if_mod kw'>if</span> <span class='rubyid_repeat_on_failure identifier id'>repeat_on_failure</span>
1048
+ <span class='rubyid_end end kw'>end</span>
1049
+ <span class='rubyid_end end kw'>end</span>
1050
+ </pre>
1051
+ </td>
1052
+ </tr>
1053
+ </table>
1054
+ </div>
1055
+
1056
+ <div class="method_details ">
1057
+ <h3 class="signature " id="init-instance_method">
1058
+
1059
+ - (<tt>Object</tt>) <strong>init</strong>
1060
+
1061
+
1062
+
1063
+
1064
+
1065
+ </h3><div class="docstring">
1066
+ <div class="discussion">
1067
+ <p>Initializes this server object with basic information</p>
1068
+
1069
+
1070
+ </div>
1071
+ </div>
1072
+ <div class="tags">
1073
+
1074
+
1075
+ <p class="tag_title">See Also:</p>
1076
+ <ul class="see">
1077
+
1078
+ <li><span class='object_link'><a href="#update_challenge_number-instance_method" title="GameServer#update_challenge_number (method)">#update_challenge_number</a></span></li>
1079
+
1080
+ <li><span class='object_link'><a href="#update_ping-instance_method" title="GameServer#update_ping (method)">#update_ping</a></span></li>
1081
+
1082
+ <li><span class='object_link'><a href="#update_server_info-instance_method" title="GameServer#update_server_info (method)">#update_server_info</a></span></li>
1083
+
1084
+ </ul>
1085
+
1086
+ </div><table class="source_code">
1087
+ <tr>
1088
+ <td>
1089
+ <pre class="lines">
1090
+
1091
+
1092
+ 247
1093
+ 248
1094
+ 249
1095
+ 250
1096
+ 251</pre>
1097
+ </td>
1098
+ <td>
1099
+ <pre class="code"><span class="info file"># File 'lib/steam/servers/game_server.rb', line 247</span>
1100
+
1101
+ <span class='rubyid_def def kw'>def</span> <span class='rubyid_init identifier id'>init</span>
1102
+ <span class='rubyid_update_ping identifier id'>update_ping</span>
1103
+ <span class='rubyid_update_server_info identifier id'>update_server_info</span>
1104
+ <span class='rubyid_update_challenge_number identifier id'>update_challenge_number</span>
1105
+ <span class='rubyid_end end kw'>end</span>
1106
+ </pre>
1107
+ </td>
1108
+ </tr>
1109
+ </table>
1110
+ </div>
1111
+
1112
+ <div class="method_details ">
1113
+ <h3 class="signature " id="initialize-instance_method">
1114
+
1115
+ - (<tt><span class='object_link'><a href="" title="GameServer (module)">GameServer</a></span></tt>) <strong>initialize</strong>(address, port = 27015)
1116
+
1117
+
1118
+
1119
+
1120
+
1121
+ </h3><div class="docstring">
1122
+ <div class="discussion">
1123
+ <p>Creates a new instance of a game server object</p>
1124
+
1125
+
1126
+ </div>
1127
+ </div>
1128
+ <div class="tags">
1129
+ <p class="tag_title">Parameters:</p>
1130
+ <ul class="param">
1131
+
1132
+ <li>
1133
+
1134
+ <span class='name'>address</span>
1135
+
1136
+
1137
+ <span class='type'>(<tt>String</tt>)</span>
1138
+
1139
+
1140
+
1141
+ &mdash;
1142
+ <div class='inline'><p>Either an IP address, a DNS name or one of them
1143
+ combined with the port number. If a port number is given, e.g.
1144
+ &#39;server.example.com:27016&#39; it will override the second argument.</p>
1145
+ </div>
1146
+
1147
+ </li>
1148
+
1149
+ <li>
1150
+
1151
+ <span class='name'>port</span>
1152
+
1153
+
1154
+ <span class='type'>(<tt>Fixnum</tt>)</span>
1155
+
1156
+
1157
+ <em class="default">(defaults to: <tt>27015</tt>)</em>
1158
+
1159
+
1160
+ &mdash;
1161
+ <div class='inline'><p>The port the server is listening on</p>
1162
+ </div>
1163
+
1164
+ </li>
1165
+
1166
+ </ul>
1167
+
1168
+ <p class="tag_title">Returns:</p>
1169
+ <ul class="return">
1170
+
1171
+ <li>
1172
+
1173
+
1174
+ <span class='type'>(<tt><span class='object_link'><a href="" title="GameServer (module)">GameServer</a></span></tt>)</span>
1175
+
1176
+
1177
+
1178
+ &mdash;
1179
+ <div class='inline'><p>a new instance of GameServer</p>
1180
+ </div>
1181
+
1182
+ </li>
1183
+
1184
+ </ul>
1185
+ <p class="tag_title">Raises:</p>
1186
+ <ul class="raise">
1187
+
1188
+ <li>
1189
+
1190
+
1191
+ <span class='type'>(<tt><span class='object_link'><a href="SteamCondenserError.html" title="SteamCondenserError (class)">SteamCondenserError</a></span></tt>)</span>
1192
+
1193
+
1194
+
1195
+ &mdash;
1196
+ <div class='inline'><p>if an host name cannot be resolved</p>
1197
+ </div>
1198
+
1199
+ </li>
1200
+
1201
+ </ul>
1202
+
1203
+ </div><table class="source_code">
1204
+ <tr>
1205
+ <td>
1206
+ <pre class="lines">
1207
+
1208
+
1209
+ 87
1210
+ 88
1211
+ 89
1212
+ 90
1213
+ 91</pre>
1214
+ </td>
1215
+ <td>
1216
+ <pre class="code"><span class="info file"># File 'lib/steam/servers/game_server.rb', line 87</span>
1217
+
1218
+ <span class='rubyid_def def kw'>def</span> <span class='rubyid_initialize identifier id'>initialize</span><span class='lparen token'>(</span><span class='rubyid_address identifier id'>address</span><span class='comma token'>,</span> <span class='rubyid_port identifier id'>port</span> <span class='assign token'>=</span> <span class='integer val'>27015</span><span class='rparen token'>)</span>
1219
+ <span class='rubyid_super super kw'>super</span>
1220
+
1221
+ <span class='rubyid_@rcon_authenticated ivar id'>@rcon_authenticated</span> <span class='assign token'>=</span> <span class='rubyid_false false kw'>false</span>
1222
+ <span class='rubyid_end end kw'>end</span>
1223
+ </pre>
1224
+ </td>
1225
+ </tr>
1226
+ </table>
1227
+ </div>
1228
+
1229
+ <div class="method_details ">
1230
+ <h3 class="signature " id="ping-instance_method">
1231
+
1232
+ - (<tt>Fixnum</tt>) <strong>ping</strong>
1233
+
1234
+
1235
+
1236
+
1237
+
1238
+ </h3><div class="docstring">
1239
+ <div class="discussion">
1240
+ <p>Returns the last measured response time of this server</p>
1241
+
1242
+ <p>If the latency hasn&#39;t been measured yet, it is done when calling this
1243
+ method for the first time.</p>
1244
+
1245
+ <p>If this information is vital to you, be sure to call <span class='object_link'><a href="#update_ping-instance_method" title="GameServer#update_ping (method)">#update_ping</a></span>
1246
+ regularly to stay up-to-date.</p>
1247
+
1248
+
1249
+ </div>
1250
+ </div>
1251
+ <div class="tags">
1252
+
1253
+ <p class="tag_title">Returns:</p>
1254
+ <ul class="return">
1255
+
1256
+ <li>
1257
+
1258
+
1259
+ <span class='type'>(<tt>Fixnum</tt>)</span>
1260
+
1261
+
1262
+
1263
+ &mdash;
1264
+ <div class='inline'><p>The latency of this server in milliseconds</p>
1265
+ </div>
1266
+
1267
+ </li>
1268
+
1269
+ </ul>
1270
+
1271
+ <p class="tag_title">See Also:</p>
1272
+ <ul class="see">
1273
+
1274
+ <li><span class='object_link'><a href="#update_ping-instance_method" title="GameServer#update_ping (method)">#update_ping</a></span></li>
1275
+
1276
+ </ul>
1277
+
1278
+ </div><table class="source_code">
1279
+ <tr>
1280
+ <td>
1281
+ <pre class="lines">
1282
+
1283
+
1284
+ 103
1285
+ 104
1286
+ 105
1287
+ 106</pre>
1288
+ </td>
1289
+ <td>
1290
+ <pre class="code"><span class="info file"># File 'lib/steam/servers/game_server.rb', line 103</span>
1291
+
1292
+ <span class='rubyid_def def kw'>def</span> <span class='rubyid_ping identifier id'>ping</span>
1293
+ <span class='rubyid_update_ping identifier id'>update_ping</span> <span class='rubyid_if if_mod kw'>if</span> <span class='rubyid_@ping ivar id'>@ping</span><span class='dot token'>.</span><span class='rubyid_nil? fid id'>nil?</span>
1294
+ <span class='rubyid_@ping ivar id'>@ping</span>
1295
+ <span class='rubyid_end end kw'>end</span>
1296
+ </pre>
1297
+ </td>
1298
+ </tr>
1299
+ </table>
1300
+ </div>
1301
+
1302
+ <div class="method_details ">
1303
+ <h3 class="signature " id="players-instance_method">
1304
+
1305
+ - (<tt>Hash</tt>) <strong>players</strong>(rcon_password = nil)
1306
+
1307
+
1308
+
1309
+
1310
+
1311
+ </h3><div class="docstring">
1312
+ <div class="discussion">
1313
+ <p>Returns a list of players currently playing on this server</p>
1314
+
1315
+ <p>If the players haven&#39;t been fetched yet, it is done when calling this
1316
+ method for the first time.</p>
1317
+
1318
+ <p>As the players and their scores change quite often be sure to update this
1319
+ list regularly by calling <span class='object_link'><a href="#update_players-instance_method" title="GameServer#update_players (method)">#update_players</a></span> if you rely on this
1320
+ information.</p>
1321
+
1322
+
1323
+ </div>
1324
+ </div>
1325
+ <div class="tags">
1326
+ <p class="tag_title">Parameters:</p>
1327
+ <ul class="param">
1328
+
1329
+ <li>
1330
+
1331
+ <span class='name'>rcon_password</span>
1332
+
1333
+
1334
+ <span class='type'>(<tt>String</tt>)</span>
1335
+
1336
+
1337
+ <em class="default">(defaults to: <tt>nil</tt>)</em>
1338
+
1339
+
1340
+ &mdash;
1341
+ <div class='inline'><p>The RCON password of this server may be
1342
+ provided to gather more detailed information on the players, like
1343
+ STEAM_IDs.</p>
1344
+ </div>
1345
+
1346
+ </li>
1347
+
1348
+ </ul>
1349
+
1350
+ <p class="tag_title">Returns:</p>
1351
+ <ul class="return">
1352
+
1353
+ <li>
1354
+
1355
+
1356
+ <span class='type'>(<tt>Hash</tt>)</span>
1357
+
1358
+
1359
+
1360
+ &mdash;
1361
+ <div class='inline'><p>The players on this server</p>
1362
+ </div>
1363
+
1364
+ </li>
1365
+
1366
+ </ul>
1367
+
1368
+ <p class="tag_title">See Also:</p>
1369
+ <ul class="see">
1370
+
1371
+ <li>update_players</li>
1372
+
1373
+ </ul>
1374
+
1375
+ </div><table class="source_code">
1376
+ <tr>
1377
+ <td>
1378
+ <pre class="lines">
1379
+
1380
+
1381
+ 122
1382
+ 123
1383
+ 124
1384
+ 125</pre>
1385
+ </td>
1386
+ <td>
1387
+ <pre class="code"><span class="info file"># File 'lib/steam/servers/game_server.rb', line 122</span>
1388
+
1389
+ <span class='rubyid_def def kw'>def</span> <span class='rubyid_players identifier id'>players</span><span class='lparen token'>(</span><span class='rubyid_rcon_password identifier id'>rcon_password</span> <span class='assign token'>=</span> <span class='rubyid_nil nil kw'>nil</span><span class='rparen token'>)</span>
1390
+ <span class='rubyid_update_players identifier id'>update_players</span><span class='lparen token'>(</span><span class='rubyid_rcon_password identifier id'>rcon_password</span><span class='rparen token'>)</span> <span class='rubyid_if if_mod kw'>if</span> <span class='rubyid_@player_hash ivar id'>@player_hash</span><span class='dot token'>.</span><span class='rubyid_nil? fid id'>nil?</span>
1391
+ <span class='rubyid_@player_hash ivar id'>@player_hash</span>
1392
+ <span class='rubyid_end end kw'>end</span>
1393
+ </pre>
1394
+ </td>
1395
+ </tr>
1396
+ </table>
1397
+ </div>
1398
+
1399
+ <div class="method_details ">
1400
+ <h3 class="signature " id="rcon_auth-instance_method">
1401
+
1402
+ - (<tt>Boolean</tt>) <strong>rcon_auth</strong>(password)
1403
+
1404
+
1405
+
1406
+
1407
+
1408
+ </h3><div class="docstring">
1409
+ <div class="discussion">
1410
+ <div class="note abstract">
1411
+ <strong>This method is abstract.</strong>
1412
+ <div class='inline'><p>Must be be implemented by including classes to handle the
1413
+ authentication</p>
1414
+ </div>
1415
+ </div>
1416
+ <p>Authenticates the connection for RCON communication with the server</p>
1417
+
1418
+
1419
+ </div>
1420
+ </div>
1421
+ <div class="tags">
1422
+ <p class="tag_title">Parameters:</p>
1423
+ <ul class="param">
1424
+
1425
+ <li>
1426
+
1427
+ <span class='name'>password</span>
1428
+
1429
+
1430
+ <span class='type'>(<tt>String</tt>)</span>
1431
+
1432
+
1433
+
1434
+ &mdash;
1435
+ <div class='inline'><p>The RCON password of the server</p>
1436
+ </div>
1437
+
1438
+ </li>
1439
+
1440
+ </ul>
1441
+
1442
+ <p class="tag_title">Returns:</p>
1443
+ <ul class="return">
1444
+
1445
+ <li>
1446
+
1447
+
1448
+ <span class='type'>(<tt>Boolean</tt>)</span>
1449
+
1450
+
1451
+
1452
+ &mdash;
1453
+ <div class='inline'><p>whether the authentication was successful</p>
1454
+ </div>
1455
+
1456
+ </li>
1457
+
1458
+ </ul>
1459
+ <p class="tag_title">Raises:</p>
1460
+ <ul class="raise">
1461
+
1462
+ <li>
1463
+
1464
+
1465
+ <span class='type'>(<tt>NotImplementedError</tt>)</span>
1466
+
1467
+
1468
+
1469
+ </li>
1470
+
1471
+ </ul>
1472
+
1473
+ <p class="tag_title">See Also:</p>
1474
+ <ul class="see">
1475
+
1476
+ <li><span class='object_link'><a href="#rcon_exec-instance_method" title="GameServer#rcon_exec (method)">#rcon_exec</a></span></li>
1477
+
1478
+ </ul>
1479
+
1480
+ </div><table class="source_code">
1481
+ <tr>
1482
+ <td>
1483
+ <pre class="lines">
1484
+
1485
+
1486
+ 134
1487
+ 135
1488
+ 136</pre>
1489
+ </td>
1490
+ <td>
1491
+ <pre class="code"><span class="info file"># File 'lib/steam/servers/game_server.rb', line 134</span>
1492
+
1493
+ <span class='rubyid_def def kw'>def</span> <span class='rubyid_rcon_auth identifier id'>rcon_auth</span><span class='lparen token'>(</span><span class='rubyid_password identifier id'>password</span><span class='rparen token'>)</span>
1494
+ <span class='rubyid_raise identifier id'>raise</span> <span class='rubyid_NotImplementedError constant id'>NotImplementedError</span>
1495
+ <span class='rubyid_end end kw'>end</span>
1496
+ </pre>
1497
+ </td>
1498
+ </tr>
1499
+ </table>
1500
+ </div>
1501
+
1502
+ <div class="method_details ">
1503
+ <h3 class="signature " id="rcon_authenticated?-instance_method">
1504
+
1505
+ - (<tt>Boolean</tt>) <strong>rcon_authenticated?</strong>
1506
+
1507
+
1508
+
1509
+
1510
+
1511
+ </h3><div class="docstring">
1512
+ <div class="discussion">
1513
+ <p>Returns whether the RCON connection to this server is already authenticated</p>
1514
+
1515
+
1516
+ </div>
1517
+ </div>
1518
+ <div class="tags">
1519
+
1520
+ <p class="tag_title">Returns:</p>
1521
+ <ul class="return">
1522
+
1523
+ <li>
1524
+
1525
+
1526
+ <span class='type'>(<tt>Boolean</tt>)</span>
1527
+
1528
+
1529
+
1530
+ &mdash;
1531
+ <div class='inline'><p><code>true</code> if the RCON connection is authenticated</p>
1532
+ </div>
1533
+
1534
+ </li>
1535
+
1536
+ </ul>
1537
+
1538
+ <p class="tag_title">See Also:</p>
1539
+ <ul class="see">
1540
+
1541
+ <li><span class='object_link'><a href="#rcon_auth-instance_method" title="GameServer#rcon_auth (method)">#rcon_auth</a></span></li>
1542
+
1543
+ </ul>
1544
+
1545
+ </div><table class="source_code">
1546
+ <tr>
1547
+ <td>
1548
+ <pre class="lines">
1549
+
1550
+
1551
+ 142
1552
+ 143
1553
+ 144</pre>
1554
+ </td>
1555
+ <td>
1556
+ <pre class="code"><span class="info file"># File 'lib/steam/servers/game_server.rb', line 142</span>
1557
+
1558
+ <span class='rubyid_def def kw'>def</span> <span class='rubyid_rcon_authenticated? fid id'>rcon_authenticated?</span>
1559
+ <span class='rubyid_@rcon_authenticated ivar id'>@rcon_authenticated</span>
1560
+ <span class='rubyid_end end kw'>end</span>
1561
+ </pre>
1562
+ </td>
1563
+ </tr>
1564
+ </table>
1565
+ </div>
1566
+
1567
+ <div class="method_details ">
1568
+ <h3 class="signature " id="rcon_exec-instance_method">
1569
+
1570
+ - (<tt>String</tt>) <strong>rcon_exec</strong>(command)
1571
+
1572
+
1573
+
1574
+
1575
+
1576
+ </h3><div class="docstring">
1577
+ <div class="discussion">
1578
+ <div class="note abstract">
1579
+ <strong>This method is abstract.</strong>
1580
+ <div class='inline'><p>Must be be implemented by including classes to handle the command
1581
+ execution</p>
1582
+ </div>
1583
+ </div>
1584
+ <p>Remotely executes a command on the server via RCON</p>
1585
+
1586
+
1587
+ </div>
1588
+ </div>
1589
+ <div class="tags">
1590
+ <p class="tag_title">Parameters:</p>
1591
+ <ul class="param">
1592
+
1593
+ <li>
1594
+
1595
+ <span class='name'>command</span>
1596
+
1597
+
1598
+ <span class='type'>(<tt>String</tt>)</span>
1599
+
1600
+
1601
+
1602
+ &mdash;
1603
+ <div class='inline'><p>The command to execute on the server</p>
1604
+ </div>
1605
+
1606
+ </li>
1607
+
1608
+ </ul>
1609
+
1610
+ <p class="tag_title">Returns:</p>
1611
+ <ul class="return">
1612
+
1613
+ <li>
1614
+
1615
+
1616
+ <span class='type'>(<tt>String</tt>)</span>
1617
+
1618
+
1619
+
1620
+ &mdash;
1621
+ <div class='inline'><p>The output of the executed command</p>
1622
+ </div>
1623
+
1624
+ </li>
1625
+
1626
+ </ul>
1627
+ <p class="tag_title">Raises:</p>
1628
+ <ul class="raise">
1629
+
1630
+ <li>
1631
+
1632
+
1633
+ <span class='type'>(<tt>NotImplementedError</tt>)</span>
1634
+
1635
+
1636
+
1637
+ </li>
1638
+
1639
+ </ul>
1640
+
1641
+ <p class="tag_title">See Also:</p>
1642
+ <ul class="see">
1643
+
1644
+ <li><span class='object_link'><a href="#rcon_auth-instance_method" title="GameServer#rcon_auth (method)">#rcon_auth</a></span></li>
1645
+
1646
+ </ul>
1647
+
1648
+ </div><table class="source_code">
1649
+ <tr>
1650
+ <td>
1651
+ <pre class="lines">
1652
+
1653
+
1654
+ 153
1655
+ 154
1656
+ 155</pre>
1657
+ </td>
1658
+ <td>
1659
+ <pre class="code"><span class="info file"># File 'lib/steam/servers/game_server.rb', line 153</span>
1660
+
1661
+ <span class='rubyid_def def kw'>def</span> <span class='rubyid_rcon_exec identifier id'>rcon_exec</span><span class='lparen token'>(</span><span class='rubyid_command identifier id'>command</span><span class='rparen token'>)</span>
1662
+ <span class='rubyid_raise identifier id'>raise</span> <span class='rubyid_NotImplementedError constant id'>NotImplementedError</span>
1663
+ <span class='rubyid_end end kw'>end</span>
1664
+ </pre>
1665
+ </td>
1666
+ </tr>
1667
+ </table>
1668
+ </div>
1669
+
1670
+ <div class="method_details ">
1671
+ <h3 class="signature " id="reply-instance_method">
1672
+
1673
+ - (<tt><span class='object_link'><a href="SteamPacket.html" title="SteamPacket (module)">SteamPacket</a></span></tt>) <strong>reply</strong> <span class="extras">(protected)</span>
1674
+
1675
+
1676
+
1677
+
1678
+
1679
+ </h3><div class="docstring">
1680
+ <div class="discussion">
1681
+ <p>Receives a response from the server</p>
1682
+
1683
+
1684
+ </div>
1685
+ </div>
1686
+ <div class="tags">
1687
+
1688
+ <p class="tag_title">Returns:</p>
1689
+ <ul class="return">
1690
+
1691
+ <li>
1692
+
1693
+
1694
+ <span class='type'>(<tt><span class='object_link'><a href="SteamPacket.html" title="SteamPacket (module)">SteamPacket</a></span></tt>)</span>
1695
+
1696
+
1697
+
1698
+ &mdash;
1699
+ <div class='inline'><p>The response packet replied by the server</p>
1700
+ </div>
1701
+
1702
+ </li>
1703
+
1704
+ </ul>
1705
+
1706
+ </div><table class="source_code">
1707
+ <tr>
1708
+ <td>
1709
+ <pre class="lines">
1710
+
1711
+
1712
+ 382
1713
+ 383
1714
+ 384</pre>
1715
+ </td>
1716
+ <td>
1717
+ <pre class="code"><span class="info file"># File 'lib/steam/servers/game_server.rb', line 382</span>
1718
+
1719
+ <span class='rubyid_def def kw'>def</span> <span class='rubyid_reply identifier id'>reply</span>
1720
+ <span class='rubyid_@socket ivar id'>@socket</span><span class='dot token'>.</span><span class='rubyid_reply identifier id'>reply</span>
1721
+ <span class='rubyid_end end kw'>end</span>
1722
+ </pre>
1723
+ </td>
1724
+ </tr>
1725
+ </table>
1726
+ </div>
1727
+
1728
+ <div class="method_details ">
1729
+ <h3 class="signature " id="rules-instance_method">
1730
+
1731
+ - (<tt>Hash&lt;String, String&gt;</tt>) <strong>rules</strong>
1732
+
1733
+
1734
+
1735
+
1736
+
1737
+ </h3><div class="docstring">
1738
+ <div class="discussion">
1739
+ <p>Returns the settings applied on the server. These settings are also called
1740
+ rules.</p>
1741
+
1742
+ <p>If the rules haven&#39;t been fetched yet, it is done when calling this method
1743
+ for the first time.</p>
1744
+
1745
+ <p>As the rules usually don&#39;t change often, there&#39;s almost no need to update
1746
+ this hash. But if you need to, you can achieve this by calling
1747
+ <span class='object_link'><a href="#update_rules-instance_method" title="GameServer#update_rules (method)">#update_rules</a></span>.</p>
1748
+
1749
+
1750
+ </div>
1751
+ </div>
1752
+ <div class="tags">
1753
+
1754
+ <p class="tag_title">Returns:</p>
1755
+ <ul class="return">
1756
+
1757
+ <li>
1758
+
1759
+
1760
+ <span class='type'>(<tt>Hash&lt;String, String&gt;</tt>)</span>
1761
+
1762
+
1763
+
1764
+ &mdash;
1765
+ <div class='inline'><p>The currently active server rules</p>
1766
+ </div>
1767
+
1768
+ </li>
1769
+
1770
+ </ul>
1771
+
1772
+ <p class="tag_title">See Also:</p>
1773
+ <ul class="see">
1774
+
1775
+ <li><span class='object_link'><a href="#update_rules-instance_method" title="GameServer#update_rules (method)">#update_rules</a></span></li>
1776
+
1777
+ </ul>
1778
+
1779
+ </div><table class="source_code">
1780
+ <tr>
1781
+ <td>
1782
+ <pre class="lines">
1783
+
1784
+
1785
+ 169
1786
+ 170
1787
+ 171
1788
+ 172</pre>
1789
+ </td>
1790
+ <td>
1791
+ <pre class="code"><span class="info file"># File 'lib/steam/servers/game_server.rb', line 169</span>
1792
+
1793
+ <span class='rubyid_def def kw'>def</span> <span class='rubyid_rules identifier id'>rules</span>
1794
+ <span class='rubyid_update_rules identifier id'>update_rules</span> <span class='rubyid_if if_mod kw'>if</span> <span class='rubyid_@rules_hash ivar id'>@rules_hash</span><span class='dot token'>.</span><span class='rubyid_nil? fid id'>nil?</span>
1795
+ <span class='rubyid_@rules_hash ivar id'>@rules_hash</span>
1796
+ <span class='rubyid_end end kw'>end</span>
1797
+ </pre>
1798
+ </td>
1799
+ </tr>
1800
+ </table>
1801
+ </div>
1802
+
1803
+ <div class="method_details ">
1804
+ <h3 class="signature " id="send_request-instance_method">
1805
+
1806
+ - (<tt>Object</tt>) <strong>send_request</strong>(packet) <span class="extras">(protected)</span>
1807
+
1808
+
1809
+
1810
+
1811
+
1812
+ </h3><div class="docstring">
1813
+ <div class="discussion">
1814
+ <p>Sends a request packet to the server</p>
1815
+
1816
+
1817
+ </div>
1818
+ </div>
1819
+ <div class="tags">
1820
+ <p class="tag_title">Parameters:</p>
1821
+ <ul class="param">
1822
+
1823
+ <li>
1824
+
1825
+ <span class='name'>packet</span>
1826
+
1827
+
1828
+ <span class='type'>(<tt><span class='object_link'><a href="SteamPacket.html" title="SteamPacket (module)">SteamPacket</a></span></tt>)</span>
1829
+
1830
+
1831
+
1832
+ &mdash;
1833
+ <div class='inline'><p>The request packet to send to the server</p>
1834
+ </div>
1835
+
1836
+ </li>
1837
+
1838
+ </ul>
1839
+
1840
+
1841
+ </div><table class="source_code">
1842
+ <tr>
1843
+ <td>
1844
+ <pre class="lines">
1845
+
1846
+
1847
+ 389
1848
+ 390
1849
+ 391</pre>
1850
+ </td>
1851
+ <td>
1852
+ <pre class="code"><span class="info file"># File 'lib/steam/servers/game_server.rb', line 389</span>
1853
+
1854
+ <span class='rubyid_def def kw'>def</span> <span class='rubyid_send_request identifier id'>send_request</span><span class='lparen token'>(</span><span class='rubyid_packet identifier id'>packet</span><span class='rparen token'>)</span>
1855
+ <span class='rubyid_@socket ivar id'>@socket</span><span class='dot token'>.</span><span class='rubyid_send identifier id'>send</span> <span class='rubyid_packet identifier id'>packet</span>
1856
+ <span class='rubyid_end end kw'>end</span>
1857
+ </pre>
1858
+ </td>
1859
+ </tr>
1860
+ </table>
1861
+ </div>
1862
+
1863
+ <div class="method_details ">
1864
+ <h3 class="signature " id="server_info-instance_method">
1865
+
1866
+ - (<tt>Hash</tt>) <strong>server_info</strong>
1867
+
1868
+
1869
+
1870
+
1871
+
1872
+ </h3><div class="docstring">
1873
+ <div class="discussion">
1874
+ <p>Returns a hash with basic information on the server.</p>
1875
+
1876
+ <p>If the server information haven&#39;t been fetched yet, it is done when
1877
+ calling this method for the first time.</p>
1878
+
1879
+ <p>The server information usually only changes on map change and when players
1880
+ join or leave. As the latter changes can be monitored by calling
1881
+ <span class='object_link'><a href="#update_players-instance_method" title="GameServer#update_players (method)">#update_players</a></span>, there&#39;s no need to call <span class='object_link'><a href="#update_server_info-instance_method" title="GameServer#update_server_info (method)">#update_server_info</a></span> very
1882
+ often.</p>
1883
+
1884
+
1885
+ </div>
1886
+ </div>
1887
+ <div class="tags">
1888
+
1889
+ <p class="tag_title">Returns:</p>
1890
+ <ul class="return">
1891
+
1892
+ <li>
1893
+
1894
+
1895
+ <span class='type'>(<tt>Hash</tt>)</span>
1896
+
1897
+
1898
+
1899
+ &mdash;
1900
+ <div class='inline'><p>Server attributes with their values</p>
1901
+ </div>
1902
+
1903
+ </li>
1904
+
1905
+ </ul>
1906
+
1907
+ <p class="tag_title">See Also:</p>
1908
+ <ul class="see">
1909
+
1910
+ <li><span class='object_link'><a href="#update_server_info-instance_method" title="GameServer#update_server_info (method)">#update_server_info</a></span></li>
1911
+
1912
+ </ul>
1913
+
1914
+ </div><table class="source_code">
1915
+ <tr>
1916
+ <td>
1917
+ <pre class="lines">
1918
+
1919
+
1920
+ 186
1921
+ 187
1922
+ 188
1923
+ 189</pre>
1924
+ </td>
1925
+ <td>
1926
+ <pre class="code"><span class="info file"># File 'lib/steam/servers/game_server.rb', line 186</span>
1927
+
1928
+ <span class='rubyid_def def kw'>def</span> <span class='rubyid_server_info identifier id'>server_info</span>
1929
+ <span class='rubyid_update_server_info identifier id'>update_server_info</span> <span class='rubyid_if if_mod kw'>if</span> <span class='rubyid_@info_hash ivar id'>@info_hash</span><span class='dot token'>.</span><span class='rubyid_nil? fid id'>nil?</span>
1930
+ <span class='rubyid_@info_hash ivar id'>@info_hash</span>
1931
+ <span class='rubyid_end end kw'>end</span>
1932
+ </pre>
1933
+ </td>
1934
+ </tr>
1935
+ </table>
1936
+ </div>
1937
+
1938
+ <div class="method_details ">
1939
+ <h3 class="signature " id="to_s-instance_method">
1940
+
1941
+ - (<tt>String</tt>) <strong>to_s</strong>
1942
+
1943
+
1944
+
1945
+
1946
+
1947
+ </h3><div class="docstring">
1948
+ <div class="discussion">
1949
+ <p>Returns a human-readable text representation of the server</p>
1950
+
1951
+
1952
+ </div>
1953
+ </div>
1954
+ <div class="tags">
1955
+
1956
+ <p class="tag_title">Returns:</p>
1957
+ <ul class="return">
1958
+
1959
+ <li>
1960
+
1961
+
1962
+ <span class='type'>(<tt>String</tt>)</span>
1963
+
1964
+
1965
+
1966
+ &mdash;
1967
+ <div class='inline'><p>Available information about the server in a human-readable
1968
+ format</p>
1969
+ </div>
1970
+
1971
+ </li>
1972
+
1973
+ </ul>
1974
+
1975
+ </div><table class="source_code">
1976
+ <tr>
1977
+ <td>
1978
+ <pre class="lines">
1979
+
1980
+
1981
+ 347
1982
+ 348
1983
+ 349
1984
+ 350
1985
+ 351
1986
+ 352
1987
+ 353
1988
+ 354
1989
+ 355
1990
+ 356
1991
+ 357
1992
+ 358
1993
+ 359
1994
+ 360
1995
+ 361
1996
+ 362
1997
+ 363
1998
+ 364
1999
+ 365
2000
+ 366
2001
+ 367
2002
+ 368
2003
+ 369
2004
+ 370
2005
+ 371
2006
+ 372
2007
+ 373
2008
+ 374
2009
+ 375</pre>
2010
+ </td>
2011
+ <td>
2012
+ <pre class="code"><span class="info file"># File 'lib/steam/servers/game_server.rb', line 347</span>
2013
+
2014
+ <span class='rubyid_def def kw'>def</span> <span class='rubyid_to_s identifier id'>to_s</span>
2015
+ <span class='rubyid_return_string identifier id'>return_string</span> <span class='assign token'>=</span> <span class='string val'>''</span>
2016
+
2017
+ <span class='rubyid_return_string identifier id'>return_string</span> <span class='lshft op'>&lt;&lt;</span> <span class='string val'>&quot;Ping: #@ping\n&quot;</span>
2018
+ <span class='rubyid_return_string identifier id'>return_string</span> <span class='lshft op'>&lt;&lt;</span> <span class='string val'>&quot;Challenge number: #@challenge_number\n&quot;</span>
2019
+
2020
+ <span class='rubyid_unless unless kw'>unless</span> <span class='rubyid_@info_hash ivar id'>@info_hash</span><span class='dot token'>.</span><span class='rubyid_nil? fid id'>nil?</span>
2021
+ <span class='rubyid_return_string identifier id'>return_string</span> <span class='lshft op'>&lt;&lt;</span> <span class='string val'>&quot;Info:\n&quot;</span>
2022
+ <span class='rubyid_@info_hash ivar id'>@info_hash</span><span class='dot token'>.</span><span class='rubyid_each identifier id'>each</span> <span class='rubyid_do do kw'>do</span> <span class='bitor op'>|</span><span class='rubyid_key identifier id'>key</span><span class='comma token'>,</span> <span class='rubyid_value identifier id'>value</span><span class='bitor op'>|</span>
2023
+ <span class='rubyid_return_string identifier id'>return_string</span> <span class='lshft op'>&lt;&lt;</span> <span class='dstring node'>&quot; #{key}: #{value.inspect}\n&quot;</span>
2024
+ <span class='rubyid_end end kw'>end</span>
2025
+ <span class='rubyid_end end kw'>end</span>
2026
+
2027
+ <span class='rubyid_unless unless kw'>unless</span> <span class='rubyid_@player_hash ivar id'>@player_hash</span><span class='dot token'>.</span><span class='rubyid_nil? fid id'>nil?</span>
2028
+ <span class='rubyid_return_string identifier id'>return_string</span> <span class='lshft op'>&lt;&lt;</span> <span class='string val'>&quot;Players:\n&quot;</span>
2029
+ <span class='rubyid_@player_hash ivar id'>@player_hash</span><span class='dot token'>.</span><span class='rubyid_each_value identifier id'>each_value</span> <span class='rubyid_do do kw'>do</span> <span class='bitor op'>|</span><span class='rubyid_player identifier id'>player</span><span class='bitor op'>|</span>
2030
+ <span class='rubyid_return_string identifier id'>return_string</span> <span class='lshft op'>&lt;&lt;</span> <span class='dstring node'>&quot; #{player}\n&quot;</span>
2031
+ <span class='rubyid_end end kw'>end</span>
2032
+ <span class='rubyid_end end kw'>end</span>
2033
+
2034
+ <span class='rubyid_unless unless kw'>unless</span> <span class='rubyid_@rules_hash ivar id'>@rules_hash</span><span class='dot token'>.</span><span class='rubyid_nil? fid id'>nil?</span>
2035
+ <span class='rubyid_return_string identifier id'>return_string</span> <span class='lshft op'>&lt;&lt;</span> <span class='string val'>&quot;Rules:\n&quot;</span>
2036
+ <span class='rubyid_@rules_hash ivar id'>@rules_hash</span><span class='dot token'>.</span><span class='rubyid_each identifier id'>each</span> <span class='rubyid_do do kw'>do</span> <span class='bitor op'>|</span><span class='rubyid_key identifier id'>key</span><span class='comma token'>,</span> <span class='rubyid_value identifier id'>value</span><span class='bitor op'>|</span>
2037
+ <span class='rubyid_return_string identifier id'>return_string</span> <span class='lshft op'>&lt;&lt;</span> <span class='dstring node'>&quot; #{key}: #{value}\n&quot;</span>
2038
+ <span class='rubyid_end end kw'>end</span>
2039
+ <span class='rubyid_end end kw'>end</span>
2040
+
2041
+ <span class='rubyid_return_string identifier id'>return_string</span>
2042
+ <span class='rubyid_end end kw'>end</span>
2043
+ </pre>
2044
+ </td>
2045
+ </tr>
2046
+ </table>
2047
+ </div>
2048
+
2049
+ <div class="method_details ">
2050
+ <h3 class="signature " id="update_challenge_number-instance_method">
2051
+
2052
+ - (<tt>Object</tt>) <strong>update_challenge_number</strong>
2053
+
2054
+
2055
+
2056
+
2057
+
2058
+ </h3><div class="docstring">
2059
+ <div class="discussion">
2060
+ <p>Sends a A2S_SERVERQUERY_GETCHALLENGE request to the server and updates the
2061
+ challenge number used to communicate with this server</p>
2062
+
2063
+ <p>There&#39;s usually no need to call this method explicitly, because
2064
+ <span class='object_link'><a href="#handle_response_for_request-instance_method" title="GameServer#handle_response_for_request (method)">#handle_response_for_request</a></span> will automatically get the challenge number
2065
+ when the server assigns a new one.</p>
2066
+
2067
+
2068
+ </div>
2069
+ </div>
2070
+ <div class="tags">
2071
+
2072
+
2073
+ <p class="tag_title">See Also:</p>
2074
+ <ul class="see">
2075
+
2076
+ <li><span class='object_link'><a href="#handle_response_for_request-instance_method" title="GameServer#handle_response_for_request (method)">#handle_response_for_request</a></span></li>
2077
+
2078
+ <li><span class='object_link'><a href="#init-instance_method" title="GameServer#init (method)">#init</a></span></li>
2079
+
2080
+ </ul>
2081
+
2082
+ </div><table class="source_code">
2083
+ <tr>
2084
+ <td>
2085
+ <pre class="lines">
2086
+
2087
+
2088
+ 323
2089
+ 324
2090
+ 325</pre>
2091
+ </td>
2092
+ <td>
2093
+ <pre class="code"><span class="info file"># File 'lib/steam/servers/game_server.rb', line 323</span>
2094
+
2095
+ <span class='rubyid_def def kw'>def</span> <span class='rubyid_update_challenge_number identifier id'>update_challenge_number</span>
2096
+ <span class='rubyid_handle_response_for_request identifier id'>handle_response_for_request</span> <span class='symbol val'>:challenge</span>
2097
+ <span class='rubyid_end end kw'>end</span>
2098
+ </pre>
2099
+ </td>
2100
+ </tr>
2101
+ </table>
2102
+ </div>
2103
+
2104
+ <div class="method_details ">
2105
+ <h3 class="signature " id="update_ping-instance_method">
2106
+
2107
+ - (<tt>Fixnum</tt>) <strong>update_ping</strong>
2108
+
2109
+
2110
+
2111
+
2112
+
2113
+ </h3><div class="docstring">
2114
+ <div class="discussion">
2115
+ <p>Sends a A2S_INFO request to the server and measures the time needed for the
2116
+ reply</p>
2117
+
2118
+ <p>If this information is vital to you, be sure to call this method regularly
2119
+ to stay up-to-date.</p>
2120
+
2121
+
2122
+ </div>
2123
+ </div>
2124
+ <div class="tags">
2125
+
2126
+ <p class="tag_title">Returns:</p>
2127
+ <ul class="return">
2128
+
2129
+ <li>
2130
+
2131
+
2132
+ <span class='type'>(<tt>Fixnum</tt>)</span>
2133
+
2134
+
2135
+
2136
+ &mdash;
2137
+ <div class='inline'><p>The latency of this server in milliseconds</p>
2138
+ </div>
2139
+
2140
+ </li>
2141
+
2142
+ </ul>
2143
+
2144
+ <p class="tag_title">See Also:</p>
2145
+ <ul class="see">
2146
+
2147
+ <li><span class='object_link'><a href="#ping-instance_method" title="GameServer#ping (method)">#ping</a></span></li>
2148
+
2149
+ </ul>
2150
+
2151
+ </div><table class="source_code">
2152
+ <tr>
2153
+ <td>
2154
+ <pre class="lines">
2155
+
2156
+
2157
+ 335
2158
+ 336
2159
+ 337
2160
+ 338
2161
+ 339
2162
+ 340
2163
+ 341</pre>
2164
+ </td>
2165
+ <td>
2166
+ <pre class="code"><span class="info file"># File 'lib/steam/servers/game_server.rb', line 335</span>
2167
+
2168
+ <span class='rubyid_def def kw'>def</span> <span class='rubyid_update_ping identifier id'>update_ping</span>
2169
+ <span class='rubyid_send_request identifier id'>send_request</span> <span class='rubyid_A2S_INFO_Packet constant id'>A2S_INFO_Packet</span><span class='dot token'>.</span><span class='rubyid_new identifier id'>new</span>
2170
+ <span class='rubyid_start_time identifier id'>start_time</span> <span class='assign token'>=</span> <span class='rubyid_Time constant id'>Time</span><span class='dot token'>.</span><span class='rubyid_now identifier id'>now</span>
2171
+ <span class='rubyid_reply identifier id'>reply</span>
2172
+ <span class='rubyid_end_time identifier id'>end_time</span> <span class='assign token'>=</span> <span class='rubyid_Time constant id'>Time</span><span class='dot token'>.</span><span class='rubyid_now identifier id'>now</span>
2173
+ <span class='rubyid_@ping ivar id'>@ping</span> <span class='assign token'>=</span> <span class='lparen token'>(</span><span class='rubyid_end_time identifier id'>end_time</span> <span class='minus op'>-</span> <span class='rubyid_start_time identifier id'>start_time</span><span class='rparen token'>)</span> <span class='mult op'>*</span> <span class='integer val'>1000</span>
2174
+ <span class='rubyid_end end kw'>end</span>
2175
+ </pre>
2176
+ </td>
2177
+ </tr>
2178
+ </table>
2179
+ </div>
2180
+
2181
+ <div class="method_details ">
2182
+ <h3 class="signature " id="update_players-instance_method">
2183
+
2184
+ - (<tt>Object</tt>) <strong>update_players</strong>(rcon_password = nil)
2185
+
2186
+
2187
+
2188
+
2189
+
2190
+ </h3><div class="docstring">
2191
+ <div class="discussion">
2192
+ <p>Sends a A2S_PLAYERS request to the server and updates the players&#39; data for
2193
+ this server</p>
2194
+
2195
+ <p>As the players and their scores change quite often be sure to update this
2196
+ list regularly by calling this method if you rely on this
2197
+ information.</p>
2198
+
2199
+
2200
+ </div>
2201
+ </div>
2202
+ <div class="tags">
2203
+ <p class="tag_title">Parameters:</p>
2204
+ <ul class="param">
2205
+
2206
+ <li>
2207
+
2208
+ <span class='name'>rcon_password</span>
2209
+
2210
+
2211
+ <span class='type'>(<tt>String</tt>)</span>
2212
+
2213
+
2214
+ <em class="default">(defaults to: <tt>nil</tt>)</em>
2215
+
2216
+
2217
+ &mdash;
2218
+ <div class='inline'><p>The RCON password of this server may be
2219
+ provided to gather more detailed information on the players, like
2220
+ STEAM_IDs.</p>
2221
+ </div>
2222
+
2223
+ </li>
2224
+
2225
+ </ul>
2226
+
2227
+
2228
+ <p class="tag_title">See Also:</p>
2229
+ <ul class="see">
2230
+
2231
+ <li><span class='object_link'><a href="#handle_response_for_request-instance_method" title="GameServer#handle_response_for_request (method)">#handle_response_for_request</a></span></li>
2232
+
2233
+ <li><span class='object_link'><a href="#players-instance_method" title="GameServer#players (method)">#players</a></span></li>
2234
+
2235
+ </ul>
2236
+
2237
+ </div><table class="source_code">
2238
+ <tr>
2239
+ <td>
2240
+ <pre class="lines">
2241
+
2242
+
2243
+ 265
2244
+ 266
2245
+ 267
2246
+ 268
2247
+ 269
2248
+ 270
2249
+ 271
2250
+ 272
2251
+ 273
2252
+ 274
2253
+ 275
2254
+ 276
2255
+ 277
2256
+ 278
2257
+ 279
2258
+ 280
2259
+ 281
2260
+ 282
2261
+ 283
2262
+ 284
2263
+ 285
2264
+ 286
2265
+ 287</pre>
2266
+ </td>
2267
+ <td>
2268
+ <pre class="code"><span class="info file"># File 'lib/steam/servers/game_server.rb', line 265</span>
2269
+
2270
+ <span class='rubyid_def def kw'>def</span> <span class='rubyid_update_players identifier id'>update_players</span><span class='lparen token'>(</span><span class='rubyid_rcon_password identifier id'>rcon_password</span> <span class='assign token'>=</span> <span class='rubyid_nil nil kw'>nil</span><span class='rparen token'>)</span>
2271
+ <span class='rubyid_handle_response_for_request identifier id'>handle_response_for_request</span> <span class='symbol val'>:players</span>
2272
+
2273
+ <span class='rubyid_unless unless kw'>unless</span> <span class='rubyid_@rcon_authenticated ivar id'>@rcon_authenticated</span>
2274
+ <span class='rubyid_return return kw'>return</span> <span class='rubyid_if if_mod kw'>if</span> <span class='rubyid_rcon_password identifier id'>rcon_password</span><span class='dot token'>.</span><span class='rubyid_nil? fid id'>nil?</span>
2275
+ <span class='rubyid_rcon_auth identifier id'>rcon_auth</span> <span class='rubyid_rcon_password identifier id'>rcon_password</span>
2276
+ <span class='rubyid_end end kw'>end</span>
2277
+
2278
+ <span class='rubyid_players identifier id'>players</span> <span class='assign token'>=</span> <span class='rubyid_rcon_exec identifier id'>rcon_exec</span><span class='lparen token'>(</span><span class='string val'>'status'</span><span class='rparen token'>)</span><span class='dot token'>.</span><span class='rubyid_lines identifier id'>lines</span><span class='dot token'>.</span><span class='rubyid_select identifier id'>select</span> <span class='rubyid_do do kw'>do</span> <span class='bitor op'>|</span><span class='rubyid_line identifier id'>line</span><span class='bitor op'>|</span>
2279
+ <span class='rubyid_line identifier id'>line</span><span class='dot token'>.</span><span class='rubyid_start_with? fid id'>start_with?</span><span class='lparen token'>(</span><span class='string val'>'#'</span><span class='rparen token'>)</span> <span class='andop op'>&amp;&amp;</span> <span class='rubyid_line identifier id'>line</span> <span class='neq op'>!=</span> <span class='string val'>&quot;#end\n&quot;</span>
2280
+ <span class='rubyid_end end kw'>end</span><span class='dot token'>.</span><span class='rubyid_map identifier id'>map</span> <span class='rubyid_do do kw'>do</span> <span class='bitor op'>|</span><span class='rubyid_line identifier id'>line</span><span class='bitor op'>|</span>
2281
+ <span class='rubyid_line identifier id'>line</span><span class='lbrack token'>[</span><span class='float val'>1</span><span class='dot2 op'>..</span><span class='integer val'>-1</span><span class='rbrack token'>]</span><span class='dot token'>.</span><span class='rubyid_strip identifier id'>strip</span>
2282
+ <span class='rubyid_end end kw'>end</span>
2283
+ <span class='rubyid_attributes identifier id'>attributes</span> <span class='assign token'>=</span> <span class='rubyid_GameServer constant id'>GameServer</span><span class='dot token'>.</span><span class='rubyid_player_status_attributes identifier id'>player_status_attributes</span> <span class='rubyid_players identifier id'>players</span><span class='dot token'>.</span><span class='rubyid_shift identifier id'>shift</span>
2284
+
2285
+ <span class='rubyid_players identifier id'>players</span><span class='dot token'>.</span><span class='rubyid_each identifier id'>each</span> <span class='rubyid_do do kw'>do</span> <span class='bitor op'>|</span><span class='rubyid_player identifier id'>player</span><span class='bitor op'>|</span>
2286
+ <span class='rubyid_player_data identifier id'>player_data</span> <span class='assign token'>=</span> <span class='rubyid_GameServer constant id'>GameServer</span><span class='dot token'>.</span><span class='rubyid_split_player_status identifier id'>split_player_status</span><span class='lparen token'>(</span><span class='rubyid_attributes identifier id'>attributes</span><span class='comma token'>,</span> <span class='rubyid_player identifier id'>player</span><span class='rparen token'>)</span>
2287
+ <span class='rubyid_player_name identifier id'>player_name</span> <span class='assign token'>=</span> <span class='rubyid_player_data identifier id'>player_data</span><span class='lbrack token'>[</span><span class='symbol val'>:name</span><span class='rbrack token'>]</span>
2288
+ <span class='rubyid_if if kw'>if</span> <span class='rubyid_@player_hash ivar id'>@player_hash</span><span class='dot token'>.</span><span class='rubyid_key? fid id'>key?</span> <span class='rubyid_player_name identifier id'>player_name</span>
2289
+ <span class='rubyid_@player_hash ivar id'>@player_hash</span><span class='lbrack token'>[</span><span class='rubyid_player_name identifier id'>player_name</span><span class='rbrack token'>]</span><span class='dot token'>.</span><span class='rubyid_add_info identifier id'>add_info</span> <span class='rubyid_player_data identifier id'>player_data</span>
2290
+ <span class='rubyid_end end kw'>end</span>
2291
+ <span class='rubyid_end end kw'>end</span>
2292
+ <span class='rubyid_end end kw'>end</span>
2293
+ </pre>
2294
+ </td>
2295
+ </tr>
2296
+ </table>
2297
+ </div>
2298
+
2299
+ <div class="method_details ">
2300
+ <h3 class="signature " id="update_rules-instance_method">
2301
+
2302
+ - (<tt>Object</tt>) <strong>update_rules</strong>
2303
+
2304
+
2305
+
2306
+
2307
+
2308
+ </h3><div class="docstring">
2309
+ <div class="discussion">
2310
+ <p>Sends a A2S_RULES request to the server and updates the rules of this
2311
+ server</p>
2312
+
2313
+ <p>As the rules usually don&#39;t change often, there&#39;s almost no need to update
2314
+ this hash. But if you need to, you can achieve this by calling this method.</p>
2315
+
2316
+
2317
+ </div>
2318
+ </div>
2319
+ <div class="tags">
2320
+
2321
+
2322
+ <p class="tag_title">See Also:</p>
2323
+ <ul class="see">
2324
+
2325
+ <li><span class='object_link'><a href="#handle_response_for_request-instance_method" title="GameServer#handle_response_for_request (method)">#handle_response_for_request</a></span></li>
2326
+
2327
+ <li><span class='object_link'><a href="#rules-instance_method" title="GameServer#rules (method)">#rules</a></span></li>
2328
+
2329
+ </ul>
2330
+
2331
+ </div><table class="source_code">
2332
+ <tr>
2333
+ <td>
2334
+ <pre class="lines">
2335
+
2336
+
2337
+ 297
2338
+ 298
2339
+ 299</pre>
2340
+ </td>
2341
+ <td>
2342
+ <pre class="code"><span class="info file"># File 'lib/steam/servers/game_server.rb', line 297</span>
2343
+
2344
+ <span class='rubyid_def def kw'>def</span> <span class='rubyid_update_rules identifier id'>update_rules</span>
2345
+ <span class='rubyid_handle_response_for_request identifier id'>handle_response_for_request</span> <span class='symbol val'>:rules</span>
2346
+ <span class='rubyid_end end kw'>end</span>
2347
+ </pre>
2348
+ </td>
2349
+ </tr>
2350
+ </table>
2351
+ </div>
2352
+
2353
+ <div class="method_details ">
2354
+ <h3 class="signature " id="update_server_info-instance_method">
2355
+
2356
+ - (<tt>Object</tt>) <strong>update_server_info</strong>
2357
+
2358
+
2359
+
2360
+
2361
+
2362
+ </h3><div class="docstring">
2363
+ <div class="discussion">
2364
+ <p>Sends a A2S_INFO request to the server and updates this server&#39;s basic
2365
+ information</p>
2366
+
2367
+ <p>The server information usually only changes on map change and when players
2368
+ join or leave. As the latter changes can be monitored by calling
2369
+ <span class='object_link'><a href="#update_players-instance_method" title="GameServer#update_players (method)">#update_players</a></span>, there&#39;s no need to call this method very often.</p>
2370
+
2371
+
2372
+ </div>
2373
+ </div>
2374
+ <div class="tags">
2375
+
2376
+
2377
+ <p class="tag_title">See Also:</p>
2378
+ <ul class="see">
2379
+
2380
+ <li><span class='object_link'><a href="#handle_response_for_request-instance_method" title="GameServer#handle_response_for_request (method)">#handle_response_for_request</a></span></li>
2381
+
2382
+ <li><span class='object_link'><a href="#server_info-instance_method" title="GameServer#server_info (method)">#server_info</a></span></li>
2383
+
2384
+ </ul>
2385
+
2386
+ </div><table class="source_code">
2387
+ <tr>
2388
+ <td>
2389
+ <pre class="lines">
2390
+
2391
+
2392
+ 310
2393
+ 311
2394
+ 312</pre>
2395
+ </td>
2396
+ <td>
2397
+ <pre class="code"><span class="info file"># File 'lib/steam/servers/game_server.rb', line 310</span>
2398
+
2399
+ <span class='rubyid_def def kw'>def</span> <span class='rubyid_update_server_info identifier id'>update_server_info</span>
2400
+ <span class='rubyid_handle_response_for_request identifier id'>handle_response_for_request</span> <span class='symbol val'>:info</span>
2401
+ <span class='rubyid_end end kw'>end</span>
2402
+ </pre>
2403
+ </td>
2404
+ </tr>
2405
+ </table>
2406
+ </div>
2407
+
2408
+ </div>
2409
+
2410
+ </div>
2411
+
2412
+ <div id="footer">
2413
+ Generated on Mon Sep 2 07:12:50 2013 by
2414
+ <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
2415
+ 0.8.7 (ruby-1.8.7).
2416
+ </div>
2417
+
2418
+ </body>
2419
+ </html>