ruby_rabbitmq_janus 1.1.2 → 1.1.3

Sign up to get free protection for your applications and to get access to all the features.
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