ruby_rabbitmq_janus 2.5.1 → 2.6.0.pre.226

Sign up to get free protection for your applications and to get access to all the features.
Files changed (114) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/bin/ruby_rabbitmq_janus +67 -0
  4. data/config/default.md +3 -0
  5. data/config/default.yml +6 -0
  6. data/lib/rrj/binary.rb +56 -0
  7. data/lib/rrj/errors/rabbit/base_event.rb +21 -0
  8. data/lib/rrj/errors/rabbit/listener/base.rb +29 -0
  9. data/lib/rrj/errors/rabbit/listener/from.rb +17 -0
  10. data/lib/rrj/errors/rabbit/listener/from_admin.rb +17 -0
  11. data/lib/rrj/errors/rabbit/listener/janus_instance.rb +17 -0
  12. data/lib/rrj/errors/rabbit/publisher/admin.rb +32 -0
  13. data/lib/rrj/errors/rabbit/publisher/base.rb +31 -0
  14. data/lib/rrj/errors/rabbit/publisher/exclusive.rb +33 -0
  15. data/lib/rrj/errors/rabbit/publisher/janus_instance.rb +23 -0
  16. data/lib/rrj/errors/rabbit/publisher/keepalive.rb +17 -0
  17. data/lib/rrj/errors/rabbit/publisher/non_exclusive.rb +33 -0
  18. data/lib/rrj/errors/rabbit/rabbit.rb +12 -6
  19. data/lib/rrj/info.rb +6 -5
  20. data/lib/rrj/init.rb +2 -2
  21. data/lib/rrj/janus/messages/message.rb +1 -1
  22. data/lib/rrj/janus/processus/event.rb +1 -1
  23. data/lib/rrj/janus/processus/keepalive/keepalive_thread.rb +3 -2
  24. data/lib/rrj/janus/responses/janus_instance.rb +28 -0
  25. data/lib/rrj/janus/responses/response.rb +1 -1
  26. data/lib/rrj/janus/transactions/admin.rb +1 -1
  27. data/lib/rrj/janus/transactions/handle.rb +1 -1
  28. data/lib/rrj/janus/transactions/transaction.rb +2 -2
  29. data/lib/rrj/models/concerns/janus_instance_callbacks.rb +9 -5
  30. data/lib/rrj/models/concerns/janus_instance_methods.rb +12 -0
  31. data/lib/rrj/rabbit/base_event.rb +47 -0
  32. data/lib/rrj/rabbit/connect.rb +12 -12
  33. data/lib/rrj/rabbit/{publish/listener.rb → listener/base.rb} +16 -18
  34. data/lib/rrj/rabbit/listener/from.rb +30 -0
  35. data/lib/rrj/rabbit/{publish/listener_admin.rb → listener/from_admin.rb} +6 -4
  36. data/lib/rrj/rabbit/listener/janus_instance.rb +36 -0
  37. data/lib/rrj/rabbit/{publish/publisher_admin.rb → publisher/admin.rb} +5 -10
  38. data/lib/rrj/rabbit/{publish/publisher.rb → publisher/base.rb} +10 -8
  39. data/lib/rrj/rabbit/{publish → publisher}/exclusive.rb +3 -3
  40. data/lib/rrj/rabbit/publisher/janus_instance.rb +27 -0
  41. data/lib/rrj/rabbit/{publish → publisher}/keepalive.rb +4 -2
  42. data/lib/rrj/rabbit/{publish → publisher}/non_exclusive.rb +3 -7
  43. data/lib/rrj/rabbit/rabbit.rb +1 -1
  44. data/lib/rrj/tools/gem/cluster.rb +0 -17
  45. data/lib/rrj/tools/gem/config.rb +9 -0
  46. data/lib/rrj/tools/gem/log.rb +3 -4
  47. data/lib/rrj/tools/gem/option.rb +2 -12
  48. data/lib/rrj/tools/replaces/admin.rb +4 -4
  49. data/lib/rrj/tools/replaces/handle.rb +6 -6
  50. data/lib/rrj/tools/replaces/replace.rb +6 -6
  51. data/lib/rrj/tools/replaces/session.rb +4 -4
  52. data/spec/factories/janus_instance.rb +1 -1
  53. data/spec/request/admin/request_allow_token_spec.rb +1 -0
  54. data/spec/request/admin/request_disallow_token_spec.rb +1 -0
  55. data/spec/request/admin/request_handle_info_spec.rb +1 -0
  56. data/spec/request/admin/request_list_handles_spec.rb +1 -0
  57. data/spec/request/admin/request_list_sessions_spec.rb +1 -0
  58. data/spec/request/admin/request_start_pcap_spec.rb +1 -0
  59. data/spec/request/admin/request_start_text2pcap_spec.rb +1 -0
  60. data/spec/request/admin/request_stop_pcap_spec.rb +1 -0
  61. data/spec/request/admin/request_stop_text2pcap_spec.rb +1 -0
  62. data/spec/request/base/request_attach_spec.rb +1 -1
  63. data/spec/request/base/request_create_spec.rb +2 -2
  64. data/spec/request/base/request_destroy_spec.rb +1 -1
  65. data/spec/request/base/request_detach_spec.rb +1 -1
  66. data/spec/request/base/request_info_spec.rb +2 -2
  67. data/spec/request/base/request_keepalive_spec.rb +1 -1
  68. data/spec/request/peer/request_offer_spec.rb +1 -1
  69. data/spec/request/peer/request_trickle_spec.rb +1 -1
  70. data/spec/request/peer/request_trickles_spec.rb +1 -1
  71. data/spec/rrj/{rrj_spec.rb → ruby_rabbitmq_janus_spec.rb} +21 -11
  72. data/spec/{thread/concurencies_spec.rb → ruby_rabbitmq_janus/janus/concurrencies/concurrency_spec.rb} +1 -1
  73. data/spec/{thread → ruby_rabbitmq_janus/janus/concurrencies}/keepalive_initializer_spec.rb +3 -2
  74. data/spec/{thread → ruby_rabbitmq_janus/janus/concurrencies}/keepalive_thread_spec.rb +3 -3
  75. data/spec/{thread → ruby_rabbitmq_janus/janus/concurrencies}/keepalive_timer_spec.rb +1 -1
  76. data/spec/{rrj/messages/messages_admin_spec.rb → ruby_rabbitmq_janus/janus/messages/admin_spec.rb} +1 -1
  77. data/spec/{rrj/messages/messages_message_spec.rb → ruby_rabbitmq_janus/janus/messages/message_spec.rb} +2 -1
  78. data/spec/{rrj/messages/messages_standard_spec.rb → ruby_rabbitmq_janus/janus/messages/standard_spec.rb} +1 -1
  79. data/spec/{rrj/responses/responses_admin_spec.rb → ruby_rabbitmq_janus/janus/responses/admin_spec.rb} +1 -1
  80. data/spec/{rrj/responses/responses_event_spec.rb → ruby_rabbitmq_janus/janus/responses/event_spec.rb} +3 -2
  81. data/spec/{rrj/responses/responses_response_spec.rb → ruby_rabbitmq_janus/janus/responses/response_spec.rb} +3 -3
  82. data/spec/{rrj/responses/responses_standard_spec.rb → ruby_rabbitmq_janus/janus/responses/standard_spec.rb} +4 -3
  83. data/spec/{rrj → ruby_rabbitmq_janus}/models/janus_instance_definition_spec.rb +2 -2
  84. data/spec/{rrj/models/janus_instance_transaction_spec.rb → ruby_rabbitmq_janus/models/janus_instance_spec.rb} +10 -9
  85. data/spec/{rrj → ruby_rabbitmq_janus}/rabbit/connect_spec.rb +1 -1
  86. data/spec/ruby_rabbitmq_janus/rabbit/listener/from_spec.rb +15 -0
  87. data/spec/{rrj → ruby_rabbitmq_janus}/rabbit/propertie_2_spec.rb +3 -3
  88. data/spec/{rrj → ruby_rabbitmq_janus}/rabbit/propertie_spec.rb +3 -3
  89. data/spec/ruby_rabbitmq_janus/rabbit/publisher/admin_spec.rb +12 -0
  90. data/spec/{rrj/rabbit/publish/base_publisher_spec.rb → ruby_rabbitmq_janus/rabbit/publisher/base_spec.rb} +3 -3
  91. data/spec/{rrj/rabbit/publish → ruby_rabbitmq_janus/rabbit/publisher}/exclusive_spec.rb +0 -0
  92. data/spec/{rrj/rabbit/publish → ruby_rabbitmq_janus/rabbit/publisher}/non_exclusive_spec.rb +0 -0
  93. data/spec/{rrj/tools/gem/rrj_cluster_spec.rb → ruby_rabbitmq_janus/tools/cluster_spec.rb} +1 -21
  94. data/spec/{rrj/tools/gem/rrj_config_spec.rb → ruby_rabbitmq_janus/tools/config_spec.rb} +26 -14
  95. data/spec/{rrj/tools/gem/rrj_log_spec.rb → ruby_rabbitmq_janus/tools/log_spec.rb} +10 -10
  96. data/spec/{rrj/tools/replace/replace_admin_spec.rb → ruby_rabbitmq_janus/tools/replaces/admin_spec.rb} +15 -15
  97. data/spec/{rrj/tools/replace/replace_handle_spec.rb → ruby_rabbitmq_janus/tools/replaces/handle_spec.rb} +14 -14
  98. data/spec/{rrj/tools/replace → ruby_rabbitmq_janus/tools/replaces}/replace_spec.rb +16 -17
  99. data/spec/{rrj/tools/replace/replace_session_spec.rb → ruby_rabbitmq_janus/tools/replaces/session_spec.rb} +14 -14
  100. data/spec/{rrj/tools/replace → ruby_rabbitmq_janus/tools}/type_spec.rb +19 -19
  101. data/spec/spec_helper.rb +1 -1
  102. data/spec/support/examples_request.rb +1 -1
  103. data/spec/support/type.rb +3 -3
  104. metadata +83 -59
  105. data/lib/rrj/errors/rabbit/publish/admin.rb +0 -30
  106. data/lib/rrj/errors/rabbit/publish/base_publisher.rb +0 -23
  107. data/lib/rrj/errors/rabbit/publish/exclusive.rb +0 -31
  108. data/lib/rrj/errors/rabbit/publish/listener.rb +0 -30
  109. data/lib/rrj/errors/rabbit/publish/non_exclusive.rb +0 -31
  110. data/lib/rrj/errors/rabbit/publish/publisher.rb +0 -38
  111. data/lib/rrj/rabbit/publish/base_publisher.rb +0 -50
  112. data/spec/rrj/rabbit/publish/admin_spec.rb +0 -12
  113. data/spec/rrj/rabbit/publish/listener_spec.rb +0 -15
  114. data/spec/rrj/rabbit/publish/publisher_spec.rb +0 -13
@@ -11,12 +11,18 @@ module RubyRabbitmqJanus
11
11
  end
12
12
  end
13
13
 
14
+ require 'rrj/errors/rabbit/base_event'
14
15
  require 'rrj/errors/rabbit/connect'
15
16
  require 'rrj/errors/rabbit/propertie'
16
17
 
17
- require 'rrj/errors/rabbit/publish/base_publisher'
18
- require 'rrj/errors/rabbit/publish/admin'
19
- require 'rrj/errors/rabbit/publish/exclusive'
20
- require 'rrj/errors/rabbit/publish/listener'
21
- require 'rrj/errors/rabbit/publish/non_exclusive'
22
- require 'rrj/errors/rabbit/publish/publisher'
18
+ require 'rrj/errors/rabbit/listener/base'
19
+ require 'rrj/errors/rabbit/listener/from'
20
+ require 'rrj/errors/rabbit/listener/from_admin'
21
+ require 'rrj/errors/rabbit/listener/janus_instance'
22
+
23
+ require 'rrj/errors/rabbit/publisher/base'
24
+ require 'rrj/errors/rabbit/publisher/admin'
25
+ require 'rrj/errors/rabbit/publisher/exclusive'
26
+ require 'rrj/errors/rabbit/publisher/janus_instance'
27
+ require 'rrj/errors/rabbit/publisher/keepalive'
28
+ require 'rrj/errors/rabbit/publisher/non_exclusive'
data/lib/rrj/info.rb CHANGED
@@ -6,7 +6,7 @@
6
6
  # Define constant to gem.
7
7
  module RubyRabbitmqJanus
8
8
  # Define version to gem
9
- VERSION = '2.5.1'
9
+ VERSION = '2.6.0'
10
10
 
11
11
  # Name to gem
12
12
  GEM_NAME = 'ruby_rabbitmq_janus'
@@ -35,11 +35,9 @@ module RubyRabbitmqJanus
35
35
  # Define homepage
36
36
  HOMEPAGE = 'https://github.com/dazzl-tv/ruby-rabbitmq-janus'
37
37
 
38
- # Define a post install message
39
- POST_INSTALL = \
38
+ # Banner dazzl
39
+ BANNER = \
40
40
  "# ====================================================== #\n" \
41
- "# Thanks for installing RRJ ! #\n" \
42
- "# #{HOMEPAGE}. #\n" \
43
41
  "# ;;;;;;;;;;;:. #\n" \
44
42
  "# ;;;;;;;;;;;;;;;;;; #\n" \
45
43
  "# ;;;;;;;;;;;:;;;;;;;; #\n" \
@@ -54,4 +52,7 @@ module RubyRabbitmqJanus
54
52
  "# ;;;;;;;;;;;;;;;;; AAAAA ZZ ZZ LL #\n" \
55
53
  "# ;;;;;;;;;;;;;, A A ZZZZZZZ ZZZZZZZ LLLLLLL #\n" \
56
54
  '# ====================================================== #'
55
+
56
+ # Define a post install message
57
+ POST_INSTALL = "#{HOMEPAGE}\n#{BANNER}"
57
58
  end
data/lib/rrj/init.rb CHANGED
@@ -39,8 +39,8 @@ module RubyRabbitmqJanus
39
39
  # => #<RubyRabbitmqJanus::RRJ:0x007 @session=123>
40
40
  def initialize
41
41
  @option = Tools::Option.new
42
- rescue => error
43
- raise Errors::RRJ::InstanciateGem, error
42
+ rescue => exception
43
+ raise Errors::RRJ::InstanciateGem, exception
44
44
  end
45
45
 
46
46
  # Start a transaction with Janus. Request use session_id information.
@@ -54,7 +54,7 @@ module RubyRabbitmqJanus
54
54
  # Return request to json format
55
55
  #
56
56
  # @return [String] Request to JSON format
57
- def to_json
57
+ def to_json(*_args)
58
58
  @request.to_json
59
59
  rescue
60
60
  raise Errors::Janus::Message::ToJson
@@ -44,7 +44,7 @@ module RubyRabbitmqJanus
44
44
  private
45
45
 
46
46
  def transaction_running
47
- publisher = Rabbit::Publisher::Listener.new(rabbit)
47
+ publisher = Rabbit::Listener::From.new(rabbit)
48
48
  @thread.thread_variable_set(NAME_VAR, publisher)
49
49
  end
50
50
  end
@@ -125,7 +125,8 @@ module RubyRabbitmqJanus
125
125
  "Lookup Janus Instance model by session [#{@session}]"
126
126
  Models::JanusInstance.find_by_session(@session)
127
127
  end
128
- rescue StandardError => e
128
+ rescue StandardError => exception
129
+ Tools::Log.debug exception
129
130
  Tools::Log.instance.warn \
130
131
  "find_model: rescuing from error #{e.message}"
131
132
  nil
@@ -137,7 +138,7 @@ module RubyRabbitmqJanus
137
138
  end
138
139
 
139
140
  def publisher
140
- Rabbit::Publisher::PublishKeepalive.new(@rabbit.channel)
141
+ Rabbit::Publisher::Keepalive.new(@rabbit.channel)
141
142
  end
142
143
 
143
144
  def response_session
@@ -0,0 +1,28 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'rrj/janus/responses/response'
4
+
5
+ module RubyRabbitmqJanus
6
+ module Janus
7
+ module Responses
8
+ # Janus Instanece response.
9
+ class JanusInstance < Response
10
+ def event
11
+ 'JanusInstance update'
12
+ end
13
+
14
+ def id
15
+ request['id']
16
+ end
17
+
18
+ def instance
19
+ JanusInstance.find(id)
20
+ end
21
+
22
+ def enable
23
+ request['enable']
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
@@ -25,7 +25,7 @@ module RubyRabbitmqJanus
25
25
  # Return request to json format
26
26
  #
27
27
  # @return [String] Response to JSON format
28
- def to_json
28
+ def to_json(*_args)
29
29
  @request.to_json
30
30
  rescue
31
31
  raise Errors::Janus::Response::ToJson
@@ -18,7 +18,7 @@ module RubyRabbitmqJanus
18
18
  # Begin connection with RabbitMQ
19
19
  def connect
20
20
  rabbit.transaction_short do
21
- @publisher = Rabbit::Publisher::PublisherAdmin.new(rabbit.channel)
21
+ @publisher = Rabbit::Publisher::Admin.new(rabbit.channel)
22
22
  yield
23
23
  end
24
24
  rescue
@@ -88,7 +88,7 @@ module RubyRabbitmqJanus
88
88
 
89
89
  def read_response_exclusive
90
90
  chan = rabbit.channel
91
- tmp_publish = Rabbit::Publisher::PublishExclusive.new(chan, '')
91
+ tmp_publish = Rabbit::Publisher::Exclusive.new(chan, '')
92
92
  tmp_publish.publish(yield)
93
93
  end
94
94
 
@@ -32,11 +32,11 @@ module RubyRabbitmqJanus
32
32
  @publisher = if @exclusive
33
33
  Tools::Log.instance.debug \
34
34
  'Choose an queue Exclusive : ampq.gen-xxx'
35
- Rabbit::Publisher::PublishExclusive.new(chan, '')
35
+ Rabbit::Publisher::Exclusive.new(chan, '')
36
36
  else
37
37
  Tools::Log.instance.debug \
38
38
  'Choose an queue non Exclusive : to-janus'
39
- Rabbit::Publisher::PublishNonExclusive.new(chan)
39
+ Rabbit::Publisher::NonExclusive.new(chan)
40
40
  end
41
41
  end
42
42
 
@@ -34,14 +34,11 @@ module RubyRabbitmqJanus
34
34
  private
35
35
 
36
36
  def create_a_session_in_janus_instance
37
- info_instance('Create session')
38
- janus_instance = keepalive_object_new
39
- set(session: janus_instance.session)
37
+ RubyRabbitmqJanus::Rabbit::Publisher::JanusInstance.new.publish(message)
40
38
  end
41
39
 
42
40
  def destroy_a_session_in_janus_instance
43
- info_instance('Detaching session')
44
- unset(%I[thread thread_adm session])
41
+ RubyRabbitmqJanus::Rabbit::Publisher::JanusInstance.new.publish(message)
45
42
  end
46
43
 
47
44
  def keepalive_object
@@ -59,6 +56,13 @@ module RubyRabbitmqJanus
59
56
  def info_instance(text)
60
57
  Tools::Log.instance.debug "#{text} in Janus Instance [##{instance}]"
61
58
  end
59
+
60
+ def message
61
+ {
62
+ id: id.to_s,
63
+ enable: enable
64
+ }
65
+ end
62
66
  end
63
67
  end
64
68
  end
@@ -45,6 +45,18 @@ module RubyRabbitmqJanus
45
45
  end
46
46
  end
47
47
 
48
+ def create_keepalive
49
+ ::Log.info 'Create session'
50
+ janus_instance = keepalive_object_new
51
+ set(session: janus_instance.session, enable: true)
52
+ end
53
+
54
+ def stop_keepalive
55
+ ::Log.info 'Destroy session'
56
+ unset(%I[thread thread_adm session])
57
+ set(enable: false)
58
+ end
59
+
48
60
  private
49
61
 
50
62
  def search_initializer(options)
@@ -0,0 +1,47 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'semaphore'
4
+
5
+ module RubyRabbitmqJanus
6
+ module Rabbit
7
+ # Define an module for create an publisher
8
+ # @author VAILLANT Jeremy <jeremy.vaillant@dazzl.tv>
9
+
10
+ # # Parent class for all publisher
11
+ # This element send and read a message in rabbitmq Queue
12
+ #
13
+ # @!attribute [r] response
14
+ # @return [RubyRabbitmqJanus::Janus::Responses::Response]
15
+ # Given a Janus response
16
+ #
17
+ # @abstract Publish message in RabbitMQ
18
+ class BaseEvent
19
+ attr_reader :responses
20
+
21
+ # Define a base publisher
22
+ def initialize
23
+ @responses = []
24
+ @semaphore = Semaphore.new
25
+ @lock = Mutex.new
26
+ rescue
27
+ raise Errors::Rabbit::BaseEvent::Initialize
28
+ end
29
+
30
+ private
31
+
32
+ attr_accessor :semaphore, :lock
33
+
34
+ def return_response
35
+ @semaphore.wait
36
+ response = nil
37
+ @lock.synchronize do
38
+ response = @responses.shift
39
+ end
40
+ response
41
+ end
42
+ end
43
+ end
44
+ end
45
+
46
+ require 'rrj/rabbit/publisher/base'
47
+ require 'rrj/rabbit/listener/base'
@@ -11,8 +11,8 @@ module RubyRabbitmqJanus
11
11
  # Initialize connection to server RabbitMQ
12
12
  def initialize
13
13
  @rabbit = Bunny.new(read_options_server.merge!(option_log_rabbit))
14
- rescue => error
15
- raise Errors::Rabbit::Connect::Initialize, error
14
+ rescue => exception
15
+ raise Errors::Rabbit::Connect::Initialize, exception
16
16
  end
17
17
 
18
18
  # Create an transaction with rabbitmq and close after response is received
@@ -20,37 +20,37 @@ module RubyRabbitmqJanus
20
20
  response = transaction_long { yield }
21
21
  close
22
22
  response
23
- rescue => error
24
- raise Errors::Rabbit::Connect::TransactionShort, error
23
+ rescue => exception
24
+ raise Errors::Rabbit::Connect::TransactionShort, exception
25
25
  end
26
26
 
27
27
  # Create an transaction with rabbitmq and not close
28
28
  def transaction_long
29
29
  start
30
30
  yield
31
- rescue => error
32
- raise Errors::Rabbit::Connect::TransactionLong, error
31
+ rescue => exception
32
+ raise Errors::Rabbit::Connect::TransactionLong, exception
33
33
  end
34
34
 
35
35
  # Openning a connection with Rabbitmq
36
36
  def start
37
37
  @rabbit.start
38
- rescue => error
39
- raise Errors::Rabbit::Connect::Start, error
38
+ rescue => exception
39
+ raise Errors::Rabbit::Connect::Start, exception
40
40
  end
41
41
 
42
42
  # Close connection to server RabbitMQ
43
43
  def close
44
44
  @rabbit.close
45
- rescue => error
46
- raise Errors::Rabbit::Connect::Close, error
45
+ rescue => exception
46
+ raise Errors::Rabbit::Connect::Close, exception
47
47
  end
48
48
 
49
49
  # Create an channel
50
50
  def channel
51
51
  @rabbit.create_channel
52
- rescue => error
53
- raise Errors::Rabbit::Connect::Channel, error
52
+ rescue => exception
53
+ raise Errors::Rabbit::Connect::Channel, exception
54
54
  end
55
55
 
56
56
  private
@@ -4,13 +4,9 @@
4
4
 
5
5
  module RubyRabbitmqJanus
6
6
  module Rabbit
7
- module Publisher
8
- # @author VAILLANT Jeremy <jeremy.vaillant@dazzl.tv>
9
- #
10
- # This publisher don't post message. Is listen just an standard queue to
11
- # Janus. By default is "from-janus". It's a parameter in config to this
12
- # gem.
13
- class Listener < BasePublisher
7
+ module Listener
8
+ # Base for listeners
9
+ class Base < RubyRabbitmqJanus::Rabbit::BaseEvent
14
10
  # Define an publisher
15
11
  #
16
12
  # @param [String] rabbit Information connection to rabbitmq server
@@ -31,22 +27,13 @@ module RubyRabbitmqJanus
31
27
  response = @responses.shift
32
28
  end
33
29
  yield response.event, response
34
- rescue
30
+ rescue => exception
31
+ p exception
35
32
  raise Errors::Rabbit::Listener::ListenEvents
36
33
  end
37
34
 
38
35
  private
39
36
 
40
- def subscribe_queue
41
- reply = @rabbit.queue(Tools::Config.instance.queue_from)
42
- @rabbit.prefetch(1)
43
- reply.bind(binding).subscribe(opts_subs) do |info, prop, payload|
44
- Tools::Log.instance.info \
45
- "[X] Message reading ##{prop['correlation_id']}"
46
- synchronize_response(info, payload)
47
- end
48
- end
49
-
50
37
  def binding
51
38
  @rabbit.direct('amq.direct')
52
39
  end
@@ -69,7 +56,18 @@ module RubyRabbitmqJanus
69
56
  @rabbit.acknowledge(info.delivery_tag, false)
70
57
  semaphore.signal
71
58
  end
59
+
60
+ def info_subscribe(info, prop, payload)
61
+ Tools::Log.instance.debug info
62
+ Tools::Log.instance.info \
63
+ "[X] Message reading ##{prop['correlation_id']}"
64
+ Tools::Log.instance.debug payload
65
+ end
72
66
  end
73
67
  end
74
68
  end
75
69
  end
70
+
71
+ require 'rrj/rabbit/listener/from'
72
+ require 'rrj/rabbit/listener/from_admin'
73
+ require 'rrj/rabbit/listener/janus_instance'
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ # :reek:TooManyStatements
4
+
5
+ module RubyRabbitmqJanus
6
+ module Rabbit
7
+ module Listener
8
+ # @author VAILLANT Jeremy <jeremy.vaillant@dazzl.tv>
9
+ #
10
+ # This publisher don't post message. Is listen just an standard queue to
11
+ # Janus. By default is "from-janus". It's a parameter in config to this
12
+ # gem.
13
+ class From < Base
14
+ private
15
+
16
+ def subscribe_queue
17
+ reply = @rabbit.queue(Tools::Config.instance.queue_from)
18
+ @rabbit.prefetch(1)
19
+ reply.bind(binding).subscribe(opts_subs) do |info, prop, payload|
20
+ info_subscribe(info, prop, payload)
21
+ synchronize_response(info, payload)
22
+ end
23
+ rescue => exception
24
+ raise RubyRabbitmqJanus::Errors::Rabbit::Listener::From::ListenEvents,
25
+ exception
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
@@ -4,19 +4,21 @@
4
4
 
5
5
  module RubyRabbitmqJanus
6
6
  module Rabbit
7
- module Publisher
7
+ module Listener
8
8
  # Listener to admin queue
9
- class ListenerAdmin < Listener
9
+ class FromAdmin < From
10
10
  private
11
11
 
12
12
  def subscribe_queue
13
13
  reply = @rabbit.queue(Tools::Config.instance.queue_admin_from)
14
14
  @rabbit.prefetch(1)
15
15
  reply.bind(binding).subscribe(opts_subs) do |info, prop, payload|
16
- Tools::Log.instance.info \
17
- "[X] Message ADMIN reading ##{prop['correlation_id']}"
16
+ info_subscribe(info, prop, payload)
18
17
  synchronize_response(info, payload)
19
18
  end
19
+ rescue => exception
20
+ raise RubyRabbitmqJanus::Errors::Rabbit::Listener::From::ListenEvents,
21
+ exception
20
22
  end
21
23
  end
22
24
  end