teamspeak3 0.0.5 → 0.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4bebe083b0e4cee5773974e0be78e77f6680fbb9b6cb55bbdc94b63025e1ef3e
4
- data.tar.gz: f0cc6ed512db322c8f62068a47c6309d1a7204790a6427a5028ee7f3d24cf20c
3
+ metadata.gz: 7a9a666fc2ac36dd2eeacd0a9df82c5d5d5c6f72489626f5b8a8ddd62fc704b0
4
+ data.tar.gz: 1227b17b8a5017667b0030a558293f13325a5c76b4dd8a53874ee607bfcf25f9
5
5
  SHA512:
6
- metadata.gz: 69048c150b84329a98dc2c7070b093c01e667a8afa9353aea8faee8ca769c72be44b0421e5d51f80fb627c52c39461d068ff1b933aa5252be9f9b2881ea036c6
7
- data.tar.gz: a73175a6013b5dd7a3fe3a9057b2141fedf744c2b7593dd3e8c808ad5847c4bb22a624b0ba0ddb1700b0a42da7b3291f5fc68fa3c767493188c84537edce4b05
6
+ metadata.gz: c0303bd9c01a7e318521dc57a7332a9757db6f41e53ceafba0f17591812938e0ad0db43d996e8887e5f45356ce89cb36a881490cca626ab13dbba30a9c212bcf
7
+ data.tar.gz: 2ad74c0fa4349a7b5f37e17eb28e7fd472768afb289469876388bf04d7f60737c5c366f0b764fbdcab2624168da39636ce088b38bf26063ef8ddb7c3a7a93f41
@@ -1,4 +1,12 @@
1
- ## Release 0.0.5 (unknown)
1
+ ## Release 0.0.6 (2018-06-24)
2
+
3
+ ### Virtual Servers
4
+
5
+ * Add method to start virtual servers (#start)
6
+ * Add method to stop virtual servers (#stop)
7
+ * Add method to delete/destroy virtual servers (#destroy!)
8
+
9
+ ## Release 0.0.5 (2018-06-21)
2
10
 
3
11
  * Add `TeamSpeak3::QueryAccount` to modify the logged in query account. (Accessible via `TeamSpeak3::Server#query_account`)
4
12
  * Add `TeamSpeak3::Server#create` to create virtual servers
@@ -10,3 +10,5 @@ require_relative 'exceptions/max_slot_limit_reached.rb'
10
10
  require_relative 'exceptions/not_connected.rb'
11
11
  require_relative 'exceptions/query_login_failed.rb'
12
12
  require_relative 'exceptions/server_connection_failed.rb'
13
+ require_relative 'exceptions/virtual_server_not_running.rb'
14
+ require_relative 'exceptions/virtual_server_already_running.rb'
@@ -0,0 +1,12 @@
1
+ module TeamSpeak3
2
+ module Exceptions
3
+ class VirtualServerAlreadyRunning < TeamSpeak3::Exceptions::StandardException
4
+ attr_reader :server_id
5
+
6
+ def initialize(server_id)
7
+ @server_id = server_id
8
+ @message = 'The virtual server is already running'
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ module TeamSpeak3
2
+ module Exceptions
3
+ class VirtualServerNotRunning < TeamSpeak3::Exceptions::StandardException
4
+ attr_reader :server_id
5
+
6
+ def initialize(server_id)
7
+ @server_id = server_id
8
+ @message = 'The virtual server is not running'
9
+ end
10
+ end
11
+ end
12
+ end
@@ -158,6 +158,9 @@ module TeamSpeak3
158
158
  end
159
159
 
160
160
  def execute(command, params = {})
161
+ allow_to_fail = params[:allow_to_fail]
162
+ params.delete(:allow_to_fail)
163
+
161
164
  prepared_command = prepare_command(command, params)
162
165
  @socket.puts(prepared_command)
163
166
 
@@ -165,7 +168,7 @@ module TeamSpeak3
165
168
  response = @socket.waitfor(/error id=.*/)
166
169
 
167
170
  response = TeamSpeak3::ServerResponse.parse(response)
168
- if response[:errors][:msg] != 'ok'
171
+ if response[:errors][:msg] != 'ok' && !allow_to_fail
169
172
  raise TeamSpeak3::Exceptions::CommandExecutionFailed.new(
170
173
  response[:errors][:id],
171
174
  response[:errors][:msg],
@@ -1,7 +1,7 @@
1
1
  require 'net/telnet'
2
2
 
3
3
  module TeamSpeak3
4
- VERSION = "0.0.5"
4
+ VERSION = "0.0.6"
5
5
  end
6
6
 
7
7
  # exceptions shall be required first
@@ -28,6 +28,35 @@ module TeamSpeak3
28
28
  @uid = params[:virtualserver_unique_identifier]
29
29
  end
30
30
 
31
+ def destroy!
32
+ execute :serverstop, sid: @id, allow_to_fail: true, ignore_active_server: true
33
+ execute :serverdelete, sid: @id, ignore_active_server: true
34
+
35
+ true
36
+ end
37
+
38
+ def start
39
+ begin
40
+ execute :serverstart, sid: @id, ignore_active_server: true
41
+ rescue Exceptions::CommandExecutionFailed => err
42
+ raise Exceptions::VirtualServerAlreadyRunning.new(@id) if err.message =~ /server got an invalid status/ && status == :online
43
+ raise
44
+ end
45
+
46
+ true
47
+ end
48
+
49
+ def stop
50
+ begin
51
+ execute :serverstop, sid: @id, ignore_active_server: true
52
+ rescue Exceptions::CommandExecutionFailed => err
53
+ raise Exceptions::VirtualServerNotRunning.new(@id) if err.message =~ /server is not running/
54
+ raise
55
+ end
56
+
57
+ true
58
+ end
59
+
31
60
  def channels
32
61
  channels_list = ChannelCollection.new(self)
33
62
  channels = execute :channellist, options: [:topic, :flags, :voice, :limits, :icon]
@@ -55,7 +84,9 @@ module TeamSpeak3
55
84
  end
56
85
 
57
86
  def execute(command, params = {})
58
- check_active_server
87
+ check_active_server unless params[:ignore_active_server]
88
+ params.delete(:ignore_active_server)
89
+
59
90
  @server.execute(command, params)
60
91
  end
61
92
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: teamspeak3
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Manuel Schnitzer
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-06-21 00:00:00.000000000 Z
11
+ date: 2018-06-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: net-telnet
@@ -93,6 +93,8 @@ files:
93
93
  - lib/exceptions/query_login_failed.rb
94
94
  - lib/exceptions/server_connection_failed.rb
95
95
  - lib/exceptions/standard_exception.rb
96
+ - lib/exceptions/virtual_server_already_running.rb
97
+ - lib/exceptions/virtual_server_not_running.rb
96
98
  - lib/query_account.rb
97
99
  - lib/server.rb
98
100
  - lib/server_response.rb