ruby_rabbitmq_janus 1.2.1 → 1.2.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/rrj/errors/error.rb +4 -50
- data/lib/rrj/errors/init.rb +62 -0
- data/lib/rrj/errors/{janus.rb → janus/janus.rb} +7 -3
- data/lib/rrj/errors/{janus_message.rb → janus/janus_message.rb} +1 -1
- data/lib/rrj/errors/janus/janus_processus_keepalive.rb +47 -0
- data/lib/rrj/errors/{janus_response.rb → janus/janus_response.rb} +1 -1
- data/lib/rrj/errors/{janus_transaction.rb → janus/janus_transaction.rb} +2 -2
- data/lib/rrj/errors/{rabbit.rb → rabbit/rabbit.rb} +0 -0
- data/lib/rrj/errors/tools/config.rb +43 -0
- data/lib/rrj/errors/tools/tools.rb +3 -0
- data/lib/rrj/info.rb +1 -1
- data/lib/rrj/init.rb +14 -5
- data/lib/rrj/janus/processus/keepalive.rb +15 -17
- data/lib/rrj/janus/transactions/admin.rb +0 -15
- data/lib/rrj/janus/transactions/handle.rb +1 -1
- data/lib/rrj/tools/config.rb +26 -15
- data/spec/rrj/rrj_config_spec.rb +61 -4
- metadata +10 -7
- data/lib/rrj/errors/config.rb +0 -30
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 66f20d8377739e714f7694bb0a5094501c89f41d
|
4
|
+
data.tar.gz: a655ab4468aaf165bbe4aba9391cf1df7010e0aa
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b9e11959cda823b1bac8d167ac04d61cfa6a789de29cb7d42a2375bd1f5a19850eac643ef975e55a59e1d98fda94673ad108a4c7feb2851d7211c0b46197f0c2
|
7
|
+
data.tar.gz: 86a773c15454746076dfa43b5c49d15b00c37ad0cf0ef07b399c8f9124bc808c80dd180d23646669cb99cb58548af8871989e28ab4dda8c34239a0012324a034
|
data/lib/rrj/errors/error.rb
CHANGED
@@ -16,56 +16,10 @@ module RubyRabbitmqJanus
|
|
16
16
|
Tools::Log.instance_method(level).bind(log).call(message)
|
17
17
|
end
|
18
18
|
end
|
19
|
-
|
20
|
-
# @author VAILLANT Jeremy <jeremy.vaillant@dazzl.tv>
|
21
|
-
|
22
|
-
# Define an exception if gem dont initialize correctly
|
23
|
-
class RRJErrorInit < RRJError
|
24
|
-
# Initialize a error for instanciate class. It's a fatal error
|
25
|
-
# @param [String] message Text returning in raise
|
26
|
-
def initialize(message)
|
27
|
-
super "Gem is not instanciate correctly : #{message}", :fatal
|
28
|
-
end
|
29
|
-
end
|
30
|
-
|
31
|
-
# @author VAILLANT Jeremy <jeremy.vaillant@dazzl.tv>
|
32
|
-
|
33
|
-
# Define an error if method message_post given an exception
|
34
|
-
class RRJErrorPost < RRJError
|
35
|
-
# Initialize a error for message posting. It's a fatal error
|
36
|
-
# @param [String] message Text returning in raise
|
37
|
-
def initialize(message)
|
38
|
-
super "Post message is failed : #{message}", :fatal
|
39
|
-
end
|
40
|
-
end
|
41
|
-
|
42
|
-
# @author VAILLANT Jeremy <jeremy.vaillant@dazzl.tv>
|
43
|
-
|
44
|
-
# Define an error if method transaction given an exception
|
45
|
-
class RRJErrorTransaction < RRJError
|
46
|
-
# Initialize a error for transaction failed. It's a fatal error
|
47
|
-
# @param [String] message Text returning in raise
|
48
|
-
def initialize(message)
|
49
|
-
super "Transaction is failed : #{message}", :fatal
|
50
|
-
end
|
51
|
-
end
|
52
|
-
|
53
|
-
# @author VAILLANT Jeremy <jeremy.vaillant@dazzl.tv>
|
54
|
-
# Define an error if method start_handle given an exception
|
55
|
-
class RRJErrorHandle < RRJError
|
56
|
-
# Initialize a error for transaction with a handle. It's a fatal error
|
57
|
-
# @param [String] message Text returning in raise
|
58
|
-
def initialize(message)
|
59
|
-
super "Transaction handle is failed : #{message}", :fatal
|
60
|
-
end
|
61
|
-
end
|
62
19
|
end
|
63
20
|
end
|
64
21
|
|
65
|
-
require 'rrj/errors/
|
66
|
-
require 'rrj/errors/
|
67
|
-
require 'rrj/errors/
|
68
|
-
require 'rrj/errors/
|
69
|
-
|
70
|
-
require 'rrj/errors/config'
|
71
|
-
require 'rrj/errors/rabbit'
|
22
|
+
require 'rrj/errors/init'
|
23
|
+
require 'rrj/errors/janus/janus'
|
24
|
+
require 'rrj/errors/tools/tools'
|
25
|
+
require 'rrj/errors/rabbit/rabbit'
|
@@ -0,0 +1,62 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
# @author VAILLANT Jeremy <jeremy.vaillant@dazzl.tv>
|
3
|
+
|
4
|
+
module RubyRabbitmqJanus
|
5
|
+
# Define all error in gem
|
6
|
+
module Errors
|
7
|
+
# Define a super class for all errors in RRJ Class
|
8
|
+
class RRJ < RRJError
|
9
|
+
# Define a message error and level
|
10
|
+
# @param [String] message Text returning in raise
|
11
|
+
# @param [Symbol] level Level to message in log
|
12
|
+
def initalize(message, level)
|
13
|
+
super "[RRJ] #{message}", level
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
# Define an exception if gem dont initialize correctly
|
18
|
+
class InstaciateGemFailed < RRJ
|
19
|
+
# Initialize a error for instanciate class. It's a fatal error
|
20
|
+
# @param [String] message Text returning in raise
|
21
|
+
def initialize(message)
|
22
|
+
super "Gem is not instanciate correctly : #{message}", :fatal
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
# Define an error if method message_post given an exception
|
27
|
+
class TransactionSessionFailed < RRJ
|
28
|
+
# Initialize a error for message posting. It's a fatal error
|
29
|
+
# @param [String] message Text returning in raise
|
30
|
+
def initialize(message)
|
31
|
+
super "Transaction SESSION failed : #{message}", :fatal
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
# Define a error if method transaction given an exception
|
36
|
+
class TransactionMessageFailed < RRJ
|
37
|
+
# Initialize a error for transaction failed. It's a fatal error
|
38
|
+
# @param [String] message Text returning in raise
|
39
|
+
def initialize(message)
|
40
|
+
super "Message in a transaction HANDLE failed : #{message}", :fatal
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
# Define a error if method start_handle given an exception
|
45
|
+
class TransactionHandleFailed < RRJ
|
46
|
+
# Initialize a error for transaction with a handle. It's a fatal error
|
47
|
+
# @param [String] message Text returning in raise
|
48
|
+
def initialize(message)
|
49
|
+
super "Transaction HANDLE failed : #{message}", :fatal
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
# define a error for Admin Transaction
|
54
|
+
class TransactionAdminFailed < RRJ
|
55
|
+
# Initialize a error for transaction admin
|
56
|
+
# @param [String] message Text returning in raise
|
57
|
+
def initialize(message)
|
58
|
+
super "Transaction ADMIN failed : #{message}", :fatal
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
@@ -1,11 +1,10 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
# @author VAILLANT Jeremy <jeremy.vaillant@dazzl.tv>
|
2
3
|
|
3
4
|
module RubyRabbitmqJanus
|
4
5
|
module Errors
|
5
|
-
# @author VAILLANT Jeremy <jeremy.vaillant@dazzl.tv>
|
6
|
-
|
7
6
|
# Define errors to message sending and response to janus
|
8
|
-
class
|
7
|
+
class Janus < RRJError
|
9
8
|
# Initialize a error standard for janus module
|
10
9
|
# @param [String] message Text returning in raise
|
11
10
|
def initialize(message)
|
@@ -14,3 +13,8 @@ module RubyRabbitmqJanus
|
|
14
13
|
end
|
15
14
|
end
|
16
15
|
end
|
16
|
+
|
17
|
+
require 'rrj/errors/janus/janus_processus_keepalive'
|
18
|
+
require 'rrj/errors/janus/janus_message'
|
19
|
+
require 'rrj/errors/janus/janus_response'
|
20
|
+
require 'rrj/errors/janus/janus_transaction'
|
@@ -5,7 +5,7 @@ module RubyRabbitmqJanus
|
|
5
5
|
# @author VAILLANT Jeremy <jeremy.vaillant@dazzl.tv>
|
6
6
|
|
7
7
|
# Define an exception for janus message class
|
8
|
-
class JanusMessage <
|
8
|
+
class JanusMessage < Janus
|
9
9
|
# Initialize a error for janus message module
|
10
10
|
# @param [String] message Text returning in raise
|
11
11
|
def initialize(message)
|
@@ -0,0 +1,47 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
# @author VAILLANT Jeremy <jeremy.vaillant@dazzl.tv>
|
3
|
+
# @see RubyRabbitmqJanus::Janus::Keepalive Keepalive thread
|
4
|
+
|
5
|
+
module RubyRabbitmqJanus
|
6
|
+
module Errors
|
7
|
+
# Define errors for keepalive class
|
8
|
+
class Keepalive < Janus
|
9
|
+
# Write a message with a tag keepalive in log
|
10
|
+
def initialize(message)
|
11
|
+
super "[Keepalive] #{message}"
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
# Define error for session_return method
|
16
|
+
class KeepaliveSessionReturn < Keepalive
|
17
|
+
# Initialize a error message
|
18
|
+
def initialize(message)
|
19
|
+
super "Fixnum Session return failed : #{message}"
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
# Define error for create_session method
|
24
|
+
class KeepaliveCreateSession < Keepalive
|
25
|
+
# Initialize a error message
|
26
|
+
def initialize(message)
|
27
|
+
super "Session create error : #{message}"
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
# Define a error in loop_session method
|
32
|
+
class KeepaliveLoopSession < Keepalive
|
33
|
+
# Initialize a error message
|
34
|
+
def initialize(message)
|
35
|
+
super "Loop session failed (session will die) : #{message}"
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
# Define a error in message keepalive created
|
40
|
+
class KeepaliveMessage < Keepalive
|
41
|
+
# Initialize a error message
|
42
|
+
def initialize(message)
|
43
|
+
super "Keepalive message failed : #{message}"
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
@@ -5,7 +5,7 @@ module RubyRabbitmqJanus
|
|
5
5
|
# @author VAILLANT Jeremy <jeremy.vaillant@dazzl.tv>
|
6
6
|
#
|
7
7
|
# Define an error primary for response
|
8
|
-
class JanusResponse <
|
8
|
+
class JanusResponse < Janus
|
9
9
|
# Initialize a error for janus response module
|
10
10
|
# @param [String] message Text returning in raise
|
11
11
|
def initialize(message)
|
@@ -4,11 +4,11 @@ module RubyRabbitmqJanus
|
|
4
4
|
module Errors
|
5
5
|
# @author VAILLANT Jeremy <jeremy.vaillant@dazzl.tv>
|
6
6
|
# Define an exception for initalizer transaction
|
7
|
-
class JanusTransaction <
|
7
|
+
class JanusTransaction < Janus
|
8
8
|
# Initialize a error for janus transaction class
|
9
9
|
# @param [String] message Text returning in raise
|
10
10
|
def initialize(message)
|
11
|
-
super "[Transaction]
|
11
|
+
super "[Transaction]#{message}"
|
12
12
|
end
|
13
13
|
end
|
14
14
|
|
File without changes
|
@@ -0,0 +1,43 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
# @author VAILLANT Jeremy <jeremy.vaillant@dazzl.tv>
|
3
|
+
|
4
|
+
module RubyRabbitmqJanus
|
5
|
+
module Errors
|
6
|
+
# Define a super class for all error in class Config
|
7
|
+
class Config < RRJError
|
8
|
+
# Initalize a error for Config class
|
9
|
+
def initialize(message, level)
|
10
|
+
msg = "[Config] #{message} -- #{Tools::Log.instance.configuration}"
|
11
|
+
super(msg, level)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
# Define an error if the configuration file is not here
|
16
|
+
class FileNotFound < Config
|
17
|
+
# Initialize a error for Config class if file don't exist.
|
18
|
+
# It's a fatal error
|
19
|
+
# @param [String] file Is a file path
|
20
|
+
def initialize
|
21
|
+
super 'Error for configuration file, does on exist.', :fatal
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
# Define and error if rubrik level is not present
|
26
|
+
class LevelNotDefine < Config
|
27
|
+
# Initialize a error for config class if log level option is not present.
|
28
|
+
# It's a warning error
|
29
|
+
def initialize
|
30
|
+
super \
|
31
|
+
'Error in configuration file : option level is not present.', :fatal
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
# Define a error if janus/session/keepalive is not present
|
36
|
+
class TTLNotFound < Config
|
37
|
+
# Initialize a message error and level
|
38
|
+
def initialize
|
39
|
+
super 'Keepalive TTL option is not present in config file.', :fatal
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
data/lib/rrj/info.rb
CHANGED
data/lib/rrj/init.rb
CHANGED
@@ -45,6 +45,8 @@ module RubyRabbitmqJanus
|
|
45
45
|
Tools::Log.instance.info "Create an session janus with id : #{@session}"
|
46
46
|
|
47
47
|
@transaction = nil
|
48
|
+
rescue => error
|
49
|
+
raise Errors::InstanciateGemFailed, error
|
48
50
|
end
|
49
51
|
|
50
52
|
# Send an simple message to janus.
|
@@ -71,6 +73,8 @@ module RubyRabbitmqJanus
|
|
71
73
|
Janus::Transactions::Session.new(@session).connect(exclusive) do
|
72
74
|
Janus::Messages::Standard.new(type, options)
|
73
75
|
end
|
76
|
+
rescue => error
|
77
|
+
raise Errors::TransactionSessionFailed, error
|
74
78
|
end
|
75
79
|
|
76
80
|
# Send an message simple in current session.
|
@@ -95,7 +99,7 @@ module RubyRabbitmqJanus
|
|
95
99
|
Janus::Messages::Standard.new(type, use_current_session?(options))
|
96
100
|
end
|
97
101
|
rescue => error
|
98
|
-
raise Errors::
|
102
|
+
raise Errors::TransactionSessionFailed, error
|
99
103
|
end
|
100
104
|
|
101
105
|
# Send a message simple for admin Janus.
|
@@ -121,8 +125,10 @@ module RubyRabbitmqJanus
|
|
121
125
|
def message_admin(type, options = { 'replace' => {}, 'add' => {} })
|
122
126
|
@transaction = Janus::Transactions::Admin.new(@session,
|
123
127
|
true,
|
124
|
-
handle?(options
|
128
|
+
handle?(options))
|
125
129
|
@transaction.connect { Janus::Messages::Admin.new(type, options) }
|
130
|
+
rescue => error
|
131
|
+
raise Errors::TransactionAdminFailed, error
|
126
132
|
end
|
127
133
|
|
128
134
|
# Send an message in handle session in current session.
|
@@ -145,6 +151,8 @@ module RubyRabbitmqJanus
|
|
145
151
|
# @since 1.0.0
|
146
152
|
def message_handle(type, options = { 'replace' => {}, 'add' => {} })
|
147
153
|
@transaction.publish_message_handle(type, options)
|
154
|
+
rescue => error
|
155
|
+
raise Errors::TransactionMessageFailed, error
|
148
156
|
end
|
149
157
|
|
150
158
|
# Define an handle transaction and establish connection with janus
|
@@ -166,7 +174,7 @@ module RubyRabbitmqJanus
|
|
166
174
|
@transaction = Janus::Transactions::Handle.new(@session, exclusive)
|
167
175
|
@transaction.connect { yield }
|
168
176
|
rescue => error
|
169
|
-
raise Errors::
|
177
|
+
raise Errors::TransactionHandleFailed, error
|
170
178
|
end
|
171
179
|
|
172
180
|
# Start an short transaction. Create an handle and send one message to
|
@@ -199,7 +207,7 @@ module RubyRabbitmqJanus
|
|
199
207
|
handle?(options))
|
200
208
|
@transaction.connect { message_handle(type, options) }
|
201
209
|
rescue => error
|
202
|
-
raise Errors::
|
210
|
+
raise Errors::TransactionHandleFailed, error
|
203
211
|
end
|
204
212
|
|
205
213
|
private
|
@@ -211,7 +219,8 @@ module RubyRabbitmqJanus
|
|
211
219
|
end
|
212
220
|
|
213
221
|
def handle?(options)
|
214
|
-
|
222
|
+
replace = options['replace']
|
223
|
+
replace.key?('handle_id') ? replace['handle_id'] : 0
|
215
224
|
end
|
216
225
|
end
|
217
226
|
end
|
@@ -14,7 +14,7 @@ module RubyRabbitmqJanus
|
|
14
14
|
|
15
15
|
# Create a thread
|
16
16
|
def initialize
|
17
|
-
@response = nil
|
17
|
+
@response = @publish = nil
|
18
18
|
super
|
19
19
|
end
|
20
20
|
|
@@ -22,7 +22,6 @@ module RubyRabbitmqJanus
|
|
22
22
|
def session
|
23
23
|
lock.synchronize do
|
24
24
|
condition.wait(lock)
|
25
|
-
Tools::Log.instance.info 'Waitting signal'
|
26
25
|
running_session
|
27
26
|
end
|
28
27
|
end
|
@@ -32,39 +31,38 @@ module RubyRabbitmqJanus
|
|
32
31
|
def transaction_running
|
33
32
|
@response = Janus::Responses::Standard.new(create_session)
|
34
33
|
lock.synchronize do
|
35
|
-
Tools::Log.instance.info 'Sending signal'
|
36
34
|
condition.signal
|
37
35
|
end
|
38
|
-
|
36
|
+
loop_session(Tools::Config.instance.ttl)
|
39
37
|
end
|
40
38
|
|
41
|
-
def
|
39
|
+
def loop_session(time_to_live)
|
42
40
|
loop do
|
43
41
|
sleep time_to_live
|
44
|
-
publish.send_a_message(message_keepalive)
|
42
|
+
@publish.send_a_message(message_keepalive)
|
45
43
|
end
|
46
|
-
rescue => message
|
47
|
-
Tools::Log.instance.debug "Error keepalive : #{message}"
|
48
|
-
end
|
49
|
-
|
50
|
-
def ttl
|
51
|
-
Tools::Config.instance.options['gem']['session']['keepalive'].to_i
|
52
44
|
rescue => error
|
53
|
-
|
45
|
+
raise Errors::KeepaliveLoopSession, error
|
54
46
|
end
|
55
47
|
|
56
48
|
def create_session
|
57
|
-
publish = Rabbit::Publisher::PublishExclusive.new(rabbit.channel, '')
|
58
|
-
publish.send_a_message(Janus::Messages::Standard.new('base::create'))
|
49
|
+
@publish = Rabbit::Publisher::PublishExclusive.new(rabbit.channel, '')
|
50
|
+
@publish.send_a_message(Janus::Messages::Standard.new('base::create'))
|
51
|
+
rescue => error
|
52
|
+
raise Errors::KeepaliveCreateSession, error
|
59
53
|
end
|
60
54
|
|
61
55
|
def running_session
|
62
56
|
@response.session
|
57
|
+
rescue => error
|
58
|
+
raise Errors::KeepaliveSessionReturn, error
|
63
59
|
end
|
64
60
|
|
65
61
|
def message_keepalive
|
66
|
-
|
67
|
-
|
62
|
+
opt = { 'session_id' => running_session }
|
63
|
+
Janus::Messages::Standard.new('base::keepalive', opt)
|
64
|
+
rescue => error
|
65
|
+
raise Errors::KeepaliveMessage, error
|
68
66
|
end
|
69
67
|
end
|
70
68
|
end
|
@@ -7,21 +7,6 @@ module RubyRabbitmqJanus
|
|
7
7
|
|
8
8
|
# This class work with janus and send a series of message
|
9
9
|
class Admin < Handle
|
10
|
-
# Opening a long transaction with rabbitmq. If handle is equal to 0
|
11
|
-
# create an handle, send request 'type::atach' before message.
|
12
|
-
#
|
13
|
-
# @yield Send a message to Janus
|
14
|
-
#
|
15
|
-
# @return [Fixnum] Sender using in current transaction
|
16
|
-
def connect
|
17
|
-
rabbit.transaction_short do
|
18
|
-
choose_queue
|
19
|
-
create_handle if handle.eql?(0)
|
20
|
-
yield
|
21
|
-
end
|
22
|
-
handle
|
23
|
-
end
|
24
|
-
|
25
10
|
# Publish an message in handle
|
26
11
|
def publish_message_handle(type, options)
|
27
12
|
opts = {
|
data/lib/rrj/tools/config.rb
CHANGED
@@ -12,7 +12,7 @@ module RubyRabbitmqJanus
|
|
12
12
|
class Config
|
13
13
|
include Singleton
|
14
14
|
|
15
|
-
attr_reader :options
|
15
|
+
attr_reader :options, :configuration
|
16
16
|
|
17
17
|
# Define HOME RRJ gem
|
18
18
|
RRJ_HOME = File.realpath(File.join(File.dirname(__FILE__),
|
@@ -29,7 +29,7 @@ module RubyRabbitmqJanus
|
|
29
29
|
|
30
30
|
# Initialize configuration file default or customize if exist
|
31
31
|
def initialize
|
32
|
-
@options = nil
|
32
|
+
@options = @configuration = nil
|
33
33
|
conf_customize
|
34
34
|
conf_default
|
35
35
|
Tools::Log.instance.save_level(log_level)
|
@@ -37,29 +37,37 @@ module RubyRabbitmqJanus
|
|
37
37
|
|
38
38
|
# @return [String] read configuration for queue `from`
|
39
39
|
def queue_from
|
40
|
-
@options['queues']['standard']['from']
|
40
|
+
@options['queues']['standard']['from'].to_s
|
41
41
|
end
|
42
42
|
|
43
43
|
# @return [String] read configuration for queue `to`
|
44
44
|
def queue_to
|
45
|
-
@options['queues']['standard']['to']
|
45
|
+
@options['queues']['standard']['to'].to_s
|
46
46
|
end
|
47
47
|
|
48
48
|
# @return [String] read configuration for queue admin `from`
|
49
49
|
def queue_admin_from
|
50
|
-
@options['queues']['admin']['from']
|
50
|
+
@options['queues']['admin']['from'].to_s
|
51
51
|
end
|
52
52
|
|
53
53
|
# @return [String] read configuration for queue admin `to`
|
54
54
|
def queue_admin_to
|
55
|
-
@options['queues']['admin']['to']
|
55
|
+
@options['queues']['admin']['to'].to_s
|
56
56
|
end
|
57
57
|
|
58
58
|
# @return [Symbol] read configuration for log level used in this gem
|
59
59
|
def log_level
|
60
60
|
@options['gem']['log']['level'].upcase.to_sym
|
61
61
|
rescue
|
62
|
-
raise Errors::LevelNotDefine
|
62
|
+
raise Errors::LevelNotDefine, @configuration
|
63
|
+
end
|
64
|
+
|
65
|
+
# @return [Integer]
|
66
|
+
# read configuration for janus time to live for keepalive messages
|
67
|
+
def time_to_live
|
68
|
+
@options['janus']['session']['keepalive'].to_i
|
69
|
+
rescue
|
70
|
+
raise Errors::TTLNotFound, @configuration
|
63
71
|
end
|
64
72
|
|
65
73
|
# @param [Fixnum] index determine what field is readint in array plugins
|
@@ -69,23 +77,26 @@ module RubyRabbitmqJanus
|
|
69
77
|
@options['janus']['plugins'][index].to_s
|
70
78
|
end
|
71
79
|
|
80
|
+
alias ttl time_to_live
|
81
|
+
|
72
82
|
private
|
73
83
|
|
74
|
-
def load_configuration
|
75
|
-
|
76
|
-
|
84
|
+
def load_configuration
|
85
|
+
log_message = "Loading configuration file : #{@configuration}"
|
86
|
+
Tools::Log.instance.info(log_message)
|
87
|
+
YAML.load(ERB.new(File.read(@configuration)).result)
|
77
88
|
rescue
|
78
|
-
raise Errors::
|
89
|
+
raise Errors::FileNotFound, @configuration
|
79
90
|
end
|
80
91
|
|
81
92
|
def conf_customize
|
82
|
-
|
83
|
-
@options = load_configuration
|
93
|
+
@configuration = File.join(Dir.pwd, CONF_CUSTOM)
|
94
|
+
@options = load_configuration if File.exist?(@configuration)
|
84
95
|
end
|
85
96
|
|
86
97
|
def conf_default
|
87
|
-
|
88
|
-
@options ||= load_configuration
|
98
|
+
@configuration = PATH_DEFAULT
|
99
|
+
@options ||= load_configuration
|
89
100
|
end
|
90
101
|
end
|
91
102
|
end
|
data/spec/rrj/rrj_config_spec.rb
CHANGED
@@ -2,9 +2,66 @@
|
|
2
2
|
|
3
3
|
require 'spec_helper'
|
4
4
|
|
5
|
-
describe
|
6
|
-
|
7
|
-
|
8
|
-
|
5
|
+
describe RubyRabbitmqJanus::Tools::Config, type: :config, name: :config do
|
6
|
+
before(:context) { @cfg = RubyRabbitmqJanus::Tools::Config.instance }
|
7
|
+
|
8
|
+
it 'When file is correct' do
|
9
|
+
expect(@cfg.options).to match_json_schema(:config)
|
10
|
+
end
|
11
|
+
|
12
|
+
it 'When janus/session/keepalive is correct type' do
|
13
|
+
expect(@cfg.ttl).to be_a(Integer)
|
14
|
+
end
|
15
|
+
|
16
|
+
it 'When janus/session/keepalive default value is loading' do
|
17
|
+
expect(@cfg.ttl).to eq 55
|
18
|
+
end
|
19
|
+
|
20
|
+
it 'When janus/plugins/0 is correct type' do
|
21
|
+
expect(@cfg.plugin_at).to be_a(String)
|
22
|
+
end
|
23
|
+
|
24
|
+
it 'When janus/plugins/0 defualt value is lading' do
|
25
|
+
expect(@cfg.plugin_at).to eq 'janus.plugin.echotest'
|
26
|
+
end
|
27
|
+
|
28
|
+
it 'When queues/standard/from is correct type' do
|
29
|
+
expect(@cfg.queue_from).to be_a(String)
|
30
|
+
end
|
31
|
+
|
32
|
+
it 'When queues/standard/from default value is loading' do
|
33
|
+
expect(@cfg.queue_from).to eq 'from-janus'
|
34
|
+
end
|
35
|
+
|
36
|
+
it 'When queues/standard/to is correct type' do
|
37
|
+
expect(@cfg.queue_to).to be_a(String)
|
38
|
+
end
|
39
|
+
|
40
|
+
it 'When queues/standard/to default value is loading' do
|
41
|
+
expect(@cfg.queue_to).to eq 'to-janus'
|
42
|
+
end
|
43
|
+
|
44
|
+
it 'When queues/admin/from is correct type' do
|
45
|
+
expect(@cfg.queue_admin_from).to be_a(String)
|
46
|
+
end
|
47
|
+
|
48
|
+
it 'When queues/admin/from default value is loading' do
|
49
|
+
expect(@cfg.queue_admin_from).to eq 'from-janus-admin'
|
50
|
+
end
|
51
|
+
|
52
|
+
it 'When queues/admin/to is correct type' do
|
53
|
+
expect(@cfg.queue_admin_to).to be_a(String)
|
54
|
+
end
|
55
|
+
|
56
|
+
it 'When queues/admin/to default value is loading' do
|
57
|
+
expect(@cfg.queue_admin_to).to eq 'to-janus-admin'
|
58
|
+
end
|
59
|
+
|
60
|
+
it 'When gem/log/level is correct type' do
|
61
|
+
expect(@cfg.log_level).to be_a(Symbol)
|
62
|
+
end
|
63
|
+
|
64
|
+
it 'When gem/log/level default value is loading' do
|
65
|
+
expect(@cfg.log_level).to eq :INFO
|
9
66
|
end
|
10
67
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby_rabbitmq_janus
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- VAILLANT Jeremy
|
@@ -315,13 +315,16 @@ files:
|
|
315
315
|
- lib/generators/ruby_rabbitmq_janus/default_request_generator.rb
|
316
316
|
- lib/generators/ruby_rabbitmq_janus/initializer_generator.rb
|
317
317
|
- lib/generators/ruby_rabbitmq_janus/install_generator.rb
|
318
|
-
- lib/rrj/errors/config.rb
|
319
318
|
- lib/rrj/errors/error.rb
|
320
|
-
- lib/rrj/errors/
|
321
|
-
- lib/rrj/errors/
|
322
|
-
- lib/rrj/errors/
|
323
|
-
- lib/rrj/errors/
|
324
|
-
- lib/rrj/errors/
|
319
|
+
- lib/rrj/errors/init.rb
|
320
|
+
- lib/rrj/errors/janus/janus.rb
|
321
|
+
- lib/rrj/errors/janus/janus_message.rb
|
322
|
+
- lib/rrj/errors/janus/janus_processus_keepalive.rb
|
323
|
+
- lib/rrj/errors/janus/janus_response.rb
|
324
|
+
- lib/rrj/errors/janus/janus_transaction.rb
|
325
|
+
- lib/rrj/errors/rabbit/rabbit.rb
|
326
|
+
- lib/rrj/errors/tools/config.rb
|
327
|
+
- lib/rrj/errors/tools/tools.rb
|
325
328
|
- lib/rrj/info.rb
|
326
329
|
- lib/rrj/init.rb
|
327
330
|
- lib/rrj/janus/janus.rb
|
data/lib/rrj/errors/config.rb
DELETED
@@ -1,30 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module RubyRabbitmqJanus
|
4
|
-
module Errors
|
5
|
-
# @author VAILLANT Jeremy <jeremy.vaillant@dazzl.tv>
|
6
|
-
|
7
|
-
# Define an error if the configuration file is not here
|
8
|
-
class ConfigFileNotFound < Errors::RRJError
|
9
|
-
# Initialize a error for Config class if file don't exist.
|
10
|
-
# It's a fatal error
|
11
|
-
# @param [String] file Is a file path
|
12
|
-
def initialize(file)
|
13
|
-
super \
|
14
|
-
"Error for configuration file (#{file}), does on exist.", :fatal
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
# @author VAILLANT Jeremy <jeremy.vaillant@dazzl.tv>
|
19
|
-
|
20
|
-
# Define and error if rubrik level is not present
|
21
|
-
class LevelNotDefine < Errors::RRJError
|
22
|
-
# Initialize a error for config class if log level option is not present.
|
23
|
-
# It's a warning error
|
24
|
-
def initialize
|
25
|
-
super \
|
26
|
-
'Error in configuration file : option level is not present.', :warn
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|