ruby_rabbitmq_janus 1.1.2 → 1.1.3

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
  SHA1:
3
- metadata.gz: 4878f39325bc19260e50a953e77acfadfda78eb9
4
- data.tar.gz: bea625c521c11a72fec35463c9dcd502d0cb740f
3
+ metadata.gz: 4442e6cfe70b5849e144634d20819ab5b807911a
4
+ data.tar.gz: 1d7a808a28f4f02621f11f5bc24e5870eb522b05
5
5
  SHA512:
6
- metadata.gz: 4d6da165b55dac47eabfcf856b8689f053a673de18b7df026c2364803f135d6dcdf494fd74f8f5b462fb81fea9dcb6b3be7846355d331841ee9fdf2b75de2144
7
- data.tar.gz: 4742b640660dbc6aee4e4c8dff7a1bb99f9b8fd8af5281c211dde372ec571cb8c92178a59f951149bb587170482197f59ad1673a82678efd7e0b4b87ecd56ded
6
+ metadata.gz: 243ed337cf2fd115dca62301b556a1a47c0089a85c939aa3ed45fdb13ddf02fa2e6a6693e7c8398d09f38c61ed7a6ac3017d01c5782d332d1016d091f0e195be
7
+ data.tar.gz: fd60aeb4aa64da37dd9ad5c4e190c45ba3b5a29f6befe73aecce132281a23794d9c2bd14de8a1f628a9fea4fb3b6b4962287560aa138fc6144dabd90ae6df117
data/lib/rrj/info.rb CHANGED
@@ -3,7 +3,7 @@
3
3
  # Define constant to gem.
4
4
  module RubyRabbitmqJanus
5
5
  # Define version to gem
6
- VERSION = '1.1.2'
6
+ VERSION = '1.1.3'
7
7
 
8
8
  # Define a summary description to gem
9
9
  SUMMARY = 'Ruby RabbitMQ Janus'
@@ -19,7 +19,7 @@ module RubyRabbitmqJanus
19
19
  # Transform raw request in request to janus, so replace element <string>, <number>
20
20
  # and other with real value
21
21
  def prepare_request(options)
22
- @request = Tools::AdminReplace.new(request, options).transform_request
22
+ @request = Tools::Replaces::Admin.new(request, options).transform_request
23
23
  super
24
24
  end
25
25
  end
@@ -18,7 +18,7 @@ module RubyRabbitmqJanus
18
18
  # Transform raw request in request to janus, so replace element <string>, <number>
19
19
  # and other with real value
20
20
  def prepare_request(options)
21
- @request = Tools::Replace.new(request, options).transform_request
21
+ @request = Tools::Replaces::Standard.new(request, options).transform_request
22
22
  super
23
23
  end
24
24
  end
@@ -25,7 +25,7 @@ module RubyRabbitmqJanus
25
25
  lock.synchronize do
26
26
  condition.wait(lock)
27
27
  Tools::Log.instance.info 'Janus event received .. treatment ..'
28
- yield @response.event, @response.data, @response.jsep
28
+ yield @response.event, @response
29
29
  end
30
30
  end
31
31
 
@@ -34,9 +34,7 @@ module RubyRabbitmqJanus
34
34
  # Sending an signal when an response is reading in queue
35
35
  def synchronize_response(payload)
36
36
  @response = Janus::Responses::Event.new(JSON.parse(payload))
37
- Tools::Log.instance.info \
38
- "[X] Message number reading ##{@count} --\n\r" \
39
- "#{@response.to_hash}"
37
+ Tools::Log.instance.info "[X] Message number reading ##{@count}"
40
38
  @count += 1
41
39
  lock.synchronize { condition.signal }
42
40
  end
@@ -0,0 +1,56 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RubyRabbitmqJanus
4
+ module Tools
5
+ module Replaces
6
+ # Format message request with good data to HASH format for Admin request
7
+ # @author VAILLANT Jeremy <jeremy.vaillant@dazzl.tv>
8
+ class Admin < Standard
9
+ private
10
+
11
+ # Replace classic elements and for admin elements
12
+ def replace_classic
13
+ super
14
+ replace_admins if request.key?('admin_secret')
15
+ add_secret if opts.key?('add')
16
+ end
17
+
18
+ # Add string secret for admin request
19
+ def add_secret
20
+ values = opts['add']
21
+ Tools::Log.instance.debug "Values add : #{values}"
22
+ request.merge!(values)
23
+ end
24
+
25
+ # Replace elements admins if present
26
+ def replace_admins
27
+ replace_admin
28
+ replace_level if request.key?('level')
29
+ replace_debug if request.key?('debug')
30
+ end
31
+
32
+ # Replace admin secret in request
33
+ def replace_admin
34
+ cfg = Tools::Config.instance.options['rabbit']
35
+ request['admin_secret'] = Tools::Env.instance.test_env_var(cfg, 'admin_pass')
36
+ rescue => message
37
+ Tools::Log.instance.warn "Error replace admin_secret : #{message}"
38
+ end
39
+
40
+ # Replace level element
41
+ def replace_level
42
+ request['level'] = opts['level']
43
+ rescue => message
44
+ Tools::Log.instance.warn "Error replace level : #{message}"
45
+ end
46
+
47
+ # Replace debug element
48
+ def replace_debug
49
+ request['debug'] = opts['debug']
50
+ rescue => message
51
+ Tools::Log.instance.warn "Error replace debug : #{message}"
52
+ end
53
+ end
54
+ end
55
+ end
56
+ end
@@ -0,0 +1,48 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RubyRabbitmqJanus
4
+ module Tools
5
+ module Replaces
6
+ # Tools for replace elements in request sending to Rabbitmq
7
+ # @author VAILLANT Jeremy <jeremy.vaillant@dazzl.tv>
8
+ class Replace
9
+ # Initialize tool replace
10
+ def initialize(request, options = {})
11
+ @request = request
12
+ @opts = options
13
+ Tools::Log.instance.debug "Element to replace : #{@opts}"
14
+ end
15
+
16
+ # Replace element in hash request with information used for this transaction
17
+ # @return HASH request with element replace
18
+ def transform_request
19
+ replace_classic
20
+ unless @opts.empty?
21
+ replace_other if test_presence?('replace')
22
+ add_other if test_presence?('add')
23
+ end
24
+ @request
25
+ end
26
+
27
+ private
28
+
29
+ attr_reader :request, :opts
30
+
31
+ # Replace basic elements
32
+ def replace_classic
33
+ replace_transaction if @request.key?('transaction')
34
+ end
35
+
36
+ # Create an transaction string and replace in request field with an String format
37
+ def replace_transaction
38
+ @request['transaction'].replace [*('A'..'Z'), *('0'..'9')].sample(10).join
39
+ rescue => message
40
+ Tools::Log.instance.warn "Error transaction replace : #{message}"
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end
46
+
47
+ require 'rrj/tools/replaces/standard'
48
+ require 'rrj/tools/replaces/admin'
@@ -0,0 +1,117 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RubyRabbitmqJanus
4
+ module Tools
5
+ module Replaces
6
+ # Format message request with good data to HASH format
7
+ # @author VAILLANT Jeremy <jeremy.vaillant@dazzl.tv>
8
+ class Standard < Replace
9
+ private
10
+
11
+ # Replace classic elements
12
+ def replace_classic
13
+ super
14
+ replace_session if request.key?('session_id')
15
+ replace_plugin if request.key?('plugin')
16
+ replace_handle if request.key?('handle_id')
17
+ replace_candidate if request.key?('candidate')
18
+ end
19
+
20
+ # Read option session and replace in request
21
+ def replace_session
22
+ request['session_id'] = opts['session_id']
23
+ rescue => message
24
+ Tools::Log.instance.warn "Error session replace : #{message}"
25
+ end
26
+
27
+ # Replace plugin string
28
+ def replace_plugin
29
+ request['plugin'] = Tools::Config.instance.options['janus']['plugins'][0]
30
+ rescue => message
31
+ Tools::Log.instance.warn "Error plugin replace : #{message}"
32
+ end
33
+
34
+ # Replace handle integer
35
+ def replace_handle
36
+ request['handle_id'] = opts['handle_id']
37
+ rescue => message
38
+ Tools::Log.instance.warn "Error handle replace : #{message}"
39
+ end
40
+
41
+ # Replace candidate, or candidates
42
+ def replace_candidate
43
+ save_candidate(candidates?)
44
+ rescue => message
45
+ Tools::Log.instance.warn "Error candidate replace : #{message}"
46
+ end
47
+
48
+ # Save candidate or candidates in request
49
+ def save_candidate(value)
50
+ if opts.key?('candidates')
51
+ request['candidates'] = value
52
+ else
53
+ request['candidate'] = value
54
+ end
55
+ end
56
+
57
+ # Test candidates or candidate
58
+ def candidates?
59
+ options = opts['replace']
60
+ if options.key?('candidates')
61
+ request['candidates'] = request['candidate']
62
+ request.delete('candidate')
63
+ options['candidates']
64
+ else
65
+ options['candidate']
66
+ end
67
+ end
68
+
69
+ # Replace other element in request
70
+ def replace_other
71
+ values = opts['replace']
72
+ running_hash(rewrite_key_to_string(values))
73
+ rescue => message
74
+ Tools::Log.instance.warn "Error REPLACE other field : #{message}"
75
+ end
76
+
77
+ # Adds other element to request
78
+ def add_other
79
+ values = opts['add']
80
+ request['body'].merge!(values)
81
+ rescue => message
82
+ Tools::Log.instance.warn "Error ADD other field : #{message}"
83
+ end
84
+
85
+ # Rewrite key symbol to string
86
+ def rewrite_key_to_string(node)
87
+ Hash[
88
+ node.map do |key, value|
89
+ [key.to_s, value.is_a?(Hash) ? rewrite_key_to_string(value) : value]
90
+ end
91
+ ]
92
+ end
93
+
94
+ # Replace value in request Hash
95
+ def running_hash(hash, parent = 'body')
96
+ hash.each do |key, value|
97
+ if value.is_a?(Hash)
98
+ running_hash(value, new_parent(key, parent))
99
+ else
100
+ request[parent][key] = value
101
+ end
102
+ end
103
+ end
104
+
105
+ # Return a key to hash parsing
106
+ def new_parent(key, parent)
107
+ "#{parent}#{'.' unless parent.empty?}#{key}"
108
+ end
109
+
110
+ # Test presence of key in many hash
111
+ def test_presence?(presence_of_key)
112
+ opts.key?(presence_of_key) && request.key?('body')
113
+ end
114
+ end
115
+ end
116
+ end
117
+ end
@@ -4,8 +4,7 @@ require 'rrj/tools/log'
4
4
  require 'rrj/tools/env'
5
5
  require 'rrj/tools/config'
6
6
  require 'rrj/tools/requests'
7
- require 'rrj/tools/replaces'
8
- require 'rrj/tools/replaces_admin'
7
+ require 'rrj/tools/replaces/replace'
9
8
 
10
9
  module RubyRabbitmqJanus
11
10
  # Contains all tools necessary in this gem
data/listen.rb CHANGED
@@ -6,8 +6,8 @@ require 'ruby_rabbitmq_janus'
6
6
  @t = RubyRabbitmqJanus::RRJ.new
7
7
  @e = RubyRabbitmqJanus::Janus::Concurrencies::Event.instance
8
8
 
9
- def case_event(data, jsep)
10
- puts "REASON : Event : #{data} -- #{jsep}"
9
+ def case_event(response)
10
+ puts "REASON : Event : #{response.to_hash}"
11
11
  end
12
12
 
13
13
  def case_hangup(data)
@@ -23,12 +23,12 @@ def case_stop
23
23
  Thread.current.stop
24
24
  end
25
25
 
26
- events = lambda do |reason, data, jsep = nil|
26
+ events = lambda do |reason, response|
27
27
  puts "Execute block code with reason : #{reason}"
28
28
  case reason
29
- when 'event' then case_event(data, jsep)
30
- when 'hangup' then case_hangup(data)
31
- when 'error' then case_error(data)
29
+ when 'event' then case_event(response)
30
+ when 'hangup' then case_hangup(response)
31
+ when 'error' then case_error(response)
32
32
  when 'stop' then case_stop
33
33
  else
34
34
  puts 'REASON default'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby_rabbitmq_janus
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.2
4
+ version: 1.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - VAILLANT Jeremy
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-11-21 00:00:00.000000000 Z
11
+ date: 2016-11-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -366,8 +366,9 @@ files:
366
366
  - lib/rrj/tools/config.rb
367
367
  - lib/rrj/tools/env.rb
368
368
  - lib/rrj/tools/log.rb
369
- - lib/rrj/tools/replaces.rb
370
- - lib/rrj/tools/replaces_admin.rb
369
+ - lib/rrj/tools/replaces/admin.rb
370
+ - lib/rrj/tools/replaces/replace.rb
371
+ - lib/rrj/tools/replaces/standard.rb
371
372
  - lib/rrj/tools/requests.rb
372
373
  - lib/rrj/tools/tools.rb
373
374
  - lib/ruby_rabbitmq_janus.rb
@@ -1,147 +0,0 @@
1
- # frozen_string_literal: true
2
- # :reek:TooManyMethods and :reek:NilCheck
3
-
4
- module RubyRabbitmqJanus
5
- module Tools
6
- # Format message request with good data to HASH format
7
- # @author VAILLANT Jeremy <jeremy.vaillant@dazzl.tv>
8
- # rubocop:disable Metrics/ClassLength
9
- class Replace
10
- # Initialize a tool replace
11
- def initialize(request, options = {})
12
- @request = request
13
- @opts = options
14
- Tools::Log.instance.debug "Element to replace : #{@opts}"
15
- end
16
-
17
- # Replace element in hash request with information used for this transaction
18
- # @return HASH request with element replace
19
- def transform_request
20
- replace_classic
21
- unless @opts.empty?
22
- replace_other if test_presence?('replace')
23
- add_other if test_presence?('add')
24
- end
25
- @request
26
- end
27
-
28
- private
29
-
30
- attr_reader :request, :opts
31
-
32
- # Replace classic elements
33
- def replace_classic
34
- replace_transaction if @request.key?('transaction')
35
- replace_session if @request.key?('session_id')
36
- replace_plugin if @request.key?('plugin')
37
- replace_handle if @request.key?('handle_id')
38
- replace_candidate if @request.key?('candidate')
39
- end
40
-
41
- # Create an transaction string and replace in request field with an String format
42
- def replace_transaction
43
- @request['transaction'].replace [*('A'..'Z'), *('0'..'9')].sample(10).join
44
- rescue => message
45
- Tools::Log.instance.warn "Error transaction replace : #{message}"
46
- end
47
-
48
- # Read option session and replace in request
49
- def replace_session
50
- @request['session_id'] = @opts['session_id']
51
- rescue => message
52
- Tools::Log.instance.warn "Error session replace : #{message}"
53
- end
54
-
55
- # Replace plugin string
56
- def replace_plugin
57
- @request['plugin'] = Tools::Config.instance.options['janus']['plugins'][0]
58
- rescue => message
59
- Tools::Log.instance.warn "Error plugin replace : #{message}"
60
- end
61
-
62
- # Replace handle integer
63
- def replace_handle
64
- @request['handle_id'] = @opts['handle_id']
65
- rescue => message
66
- Tools::Log.instance.warn "Error handle replace : #{message}"
67
- end
68
-
69
- # Replace candidate, or candidates
70
- def replace_candidate
71
- save_candidate(candidates?)
72
- rescue => message
73
- Tools::Log.instance.warn "Error candidate replace : #{message}"
74
- end
75
-
76
- # Save candidate or candidates in request
77
- def save_candidate(value)
78
- if @opts.key?('candidates')
79
- @request['candidates'] = value
80
- else
81
- @request['candidate'] = value
82
- end
83
- end
84
-
85
- # Test candidates or candidate
86
- def candidates?
87
- opts = @opts['replace']
88
- if @opts.key?('candidates')
89
- @request['candidates'] = @request['candidate']
90
- @request.delete('candidate')
91
- opts['candidates']
92
- else
93
- opts['candidate']
94
- end
95
- end
96
-
97
- # Replace other element in request
98
- def replace_other
99
- values = @opts['replace']
100
- running_hash(rewrite_key_to_string(values))
101
- rescue => message
102
- Tools::Log.instance.warn "Error REPLACE other field : #{message}"
103
- end
104
-
105
- # Adds other element to request
106
- def add_other
107
- values = @opts['add']
108
- @request['body'].merge!(values)
109
- rescue => message
110
- Tools::Log.instance.warn "Error ADD other field : #{message}"
111
- end
112
-
113
- # Rewrite key symbol to string
114
- def rewrite_key_to_string(node)
115
- Hash[
116
- node.map do |key, value|
117
- [key.to_s, value.is_a?(Hash) ? rewrite_key_to_string(value) : value]
118
- end
119
- ]
120
- end
121
-
122
- # Replace value in request Hash
123
- def running_hash(hash, parent = 'body')
124
- hash.each do |key, value|
125
- if value.is_a?(Hash)
126
- running_hash(value, new_parent(key, parent))
127
- else
128
- @request[parent][key] = value
129
- end
130
- end
131
- end
132
-
133
- # Return a key to hash parsing
134
- def new_parent(key, parent)
135
- "#{parent}#{'.' unless parent.empty?}#{key}"
136
- end
137
-
138
- # Test presence of key in many hash
139
- def test_presence?(presence_of_key)
140
- @opts.key?(presence_of_key) && \
141
- @request.key?('body') && \
142
- !@opts[presence_of_key].nil?
143
- end
144
- end
145
- # rubocop:enable Metrics/ClassLength
146
- end
147
- end
@@ -1,54 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module RubyRabbitmqJanus
4
- module Tools
5
- # Format message request with good data to HASH format for Admin request
6
- # @author VAILLANT Jeremy <jeremy.vaillant@dazzl.tv>
7
- class AdminReplace < Replace
8
- private
9
-
10
- # Replace classic elements and for admin elements
11
- def replace_classic
12
- super
13
- replace_admins if request.key?('admin_secret')
14
- add_secret if opts.key?('add')
15
- end
16
-
17
- # Add string secret for admin request
18
- def add_secret
19
- values = opts['add']
20
- Tools::Log.instance.debug "Values add : #{values}"
21
- request.merge!(values)
22
- end
23
-
24
- # Replace elements admins if present
25
- def replace_admins
26
- replace_admin
27
- replace_level if request.key?('level')
28
- replace_debug if request.key?('debug')
29
- end
30
-
31
- # Replace admin secret in request
32
- def replace_admin
33
- cfg = Tools::Config.instance.options['rabbit']
34
- request['admin_secret'] = Tools::Env.instance.test_env_var(cfg, 'admin_pass')
35
- rescue => message
36
- Tools::Log.instance.warn "Error replace admin_secret : #{message}"
37
- end
38
-
39
- # Replace level element
40
- def replace_level
41
- request['level'] = opts['level']
42
- rescue => message
43
- Tools::Log.instance.warn "Error replace level : #{message}"
44
- end
45
-
46
- # Replace debug element
47
- def replace_debug
48
- request['debug'] = opts['debug']
49
- rescue => message
50
- Tools::Log.instance.warn "Error replace debug : #{message}"
51
- end
52
- end
53
- end
54
- end