ruby_rabbitmq_janus 0.3.0 → 1.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +64 -7
- data/.reek +7 -0
- data/.rubocop.yml +0 -3
- data/README.md +40 -2
- data/config/default.md +22 -6
- data/config/default.yml +24 -6
- data/config/requests/{test.json → admin/handle_info.json} +2 -4
- data/config/requests/admin/handles.json +6 -0
- data/config/requests/admin/log_level.json +6 -0
- data/config/requests/admin/sessions.json +5 -0
- data/config/requests/{attach.json → base/attach.json} +0 -0
- data/config/requests/{create.json → base/create.json} +0 -0
- data/config/requests/{destroy.json → base/destroy.json} +0 -0
- data/config/requests/{detach.json → base/detach.json} +0 -0
- data/config/requests/{info.json → base/info.json} +0 -0
- data/config/requests/base/keepalive.json +5 -0
- data/lib/generators/ruby_rabbitmq_janus/configuration_generator.rb +23 -0
- data/lib/generators/ruby_rabbitmq_janus/create_request_generator.rb +90 -0
- data/lib/generators/ruby_rabbitmq_janus/default_request_generator.rb +21 -0
- data/lib/generators/ruby_rabbitmq_janus/initializer_generator.rb +17 -0
- data/lib/rrj/errors/config.rb +21 -0
- data/lib/rrj/errors/error.rb +56 -0
- data/lib/rrj/errors/janus.rb +14 -0
- data/lib/rrj/errors/janus_message.rb +45 -0
- data/lib/rrj/errors/janus_response.rb +78 -0
- data/lib/rrj/errors/janus_transaction.rb +31 -0
- data/lib/rrj/errors/rabbit.rb +21 -0
- data/lib/rrj/errors/request.rb +21 -0
- data/lib/rrj/info.rb +40 -0
- data/lib/rrj/init.rb +113 -44
- data/lib/rrj/janus/admin.rb +27 -0
- data/lib/rrj/janus/janus.rb +10 -33
- data/lib/rrj/janus/keepalive.rb +69 -0
- data/lib/rrj/janus/message.rb +77 -22
- data/lib/rrj/janus/response.rb +79 -41
- data/lib/rrj/janus/transaction.rb +53 -0
- data/lib/rrj/janus/transaction_admin.rb +43 -0
- data/lib/rrj/janus/transaction_handle.rb +40 -0
- data/lib/rrj/janus/transaction_session.rb +17 -0
- data/lib/rrj/rabbit/connect.rb +75 -0
- data/lib/rrj/rabbit/propertie.rb +37 -0
- data/lib/rrj/rabbit/publish.rb +100 -0
- data/lib/rrj/rabbit/rabbit.rb +11 -0
- data/lib/rrj/tools/config.rb +63 -0
- data/lib/rrj/tools/env.rb +21 -0
- data/lib/rrj/tools/log.rb +106 -0
- data/lib/rrj/tools/replaces.rb +115 -0
- data/lib/rrj/tools/replaces_admin.rb +44 -0
- data/lib/rrj/tools/requests.rb +57 -0
- data/lib/rrj/tools/tools.rb +14 -0
- data/lib/ruby_rabbitmq_janus.rb +8 -13
- data/rrj.gemspec +7 -3
- metadata +108 -28
- data/config.reek +0 -3
- data/lib/rrj/config.rb +0 -57
- data/lib/rrj/janus/error.rb +0 -8
- data/lib/rrj/janus/message_async.rb +0 -54
- data/lib/rrj/janus/message_sync.rb +0 -34
- data/lib/rrj/log.rb +0 -63
- data/lib/rrj/rabbitmq/rabbitmq.rb +0 -82
- data/lib/rrj/request/path.rb +0 -21
- data/lib/rrj/request/replaces.rb +0 -109
- data/lib/rrj/request/requests.rb +0 -55
- data/lib/rrj/request/type_data.rb +0 -30
- data/lib/rrj/version.rb +0 -17
@@ -0,0 +1,106 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module RubyRabbitmqJanus
|
4
|
+
module Tools
|
5
|
+
# @author VAILLANT Jeremy <jeremy.vaillant@dazzl.tv>
|
6
|
+
# Class for wrtting logs.
|
7
|
+
class Log
|
8
|
+
include Singleton
|
9
|
+
|
10
|
+
# Levels to log
|
11
|
+
LEVELS = {
|
12
|
+
DEBUG: Logger::DEBUG,
|
13
|
+
INFO: Logger::INFO,
|
14
|
+
WARN: Logger::WARN,
|
15
|
+
ERROR: Logger::ERROR,
|
16
|
+
FATAL: Logger::FATAL,
|
17
|
+
UNKNOWN: Logger::UNKNOWN
|
18
|
+
}.freeze
|
19
|
+
|
20
|
+
# This method smell :reek:Attribute
|
21
|
+
attr_accessor :level, :progname
|
22
|
+
|
23
|
+
# Returns a new instance to Log
|
24
|
+
def initialize
|
25
|
+
logs = defined?(Rails) ? logger_rails : logger_develop
|
26
|
+
logs.progname = RubyRabbitmqJanus.name
|
27
|
+
logs.level = LEVELS[:DEBUG]
|
28
|
+
logs.info('### Start gem Rails Rabbit Janus ###')
|
29
|
+
@level = logs.level
|
30
|
+
@progname = logs.progname
|
31
|
+
@logs = ActiveSupport::TaggedLogging.new(logs)
|
32
|
+
end
|
33
|
+
|
34
|
+
# Write a message in log with a UNKNOWN level
|
35
|
+
# @param message [String] Message writing in warning level in log
|
36
|
+
def unknown(message)
|
37
|
+
write_tag { @logs.unknown(message) }
|
38
|
+
end
|
39
|
+
|
40
|
+
# Write a message in log with a FATAL level
|
41
|
+
# @param message [String] Message writing in warning level in log
|
42
|
+
def fatal(message)
|
43
|
+
write_tag { @logs.fatal(message.red) } if test_level?(Logger::FATAL)
|
44
|
+
end
|
45
|
+
|
46
|
+
# Write a message in log with a ERROR level
|
47
|
+
# @param message [String] Message writing in warning level in log
|
48
|
+
def error(message)
|
49
|
+
write_tag { @logs.error(message.orange) } if test_level?(Logger::ERROR)
|
50
|
+
end
|
51
|
+
|
52
|
+
# Write a message in log with a warn level
|
53
|
+
# @param message [String] Message writing in warning level in log
|
54
|
+
def warn(message)
|
55
|
+
write_tag { @logs.warn(message.yellow) } if test_level?(Logger::WARN)
|
56
|
+
end
|
57
|
+
|
58
|
+
# Write a message in log with a info level
|
59
|
+
# @param message [String] Message writing in info level in log
|
60
|
+
def info(message)
|
61
|
+
write_tag { @logs.info(message.green) } if test_level?(Logger::INFO)
|
62
|
+
end
|
63
|
+
|
64
|
+
# Write a message in log with a debug level
|
65
|
+
# @param message [String] Message writing in debug level in log
|
66
|
+
def debug(message)
|
67
|
+
write_tag { @logs.debug(message.light_blue) } if test_level?(Logger::DEBUG)
|
68
|
+
end
|
69
|
+
|
70
|
+
# Return instance logger
|
71
|
+
def logger
|
72
|
+
@logs
|
73
|
+
end
|
74
|
+
|
75
|
+
def logdev
|
76
|
+
@logs.instance_variable_get(:'@logdev').filename
|
77
|
+
end
|
78
|
+
|
79
|
+
private
|
80
|
+
|
81
|
+
# Define instance logger with rails
|
82
|
+
def logger_rails
|
83
|
+
Rails.logger
|
84
|
+
end
|
85
|
+
|
86
|
+
# Define instance logger wiptout rails
|
87
|
+
def logger_develop
|
88
|
+
log = Logger.new('log/rails-rabbit-janus.log')
|
89
|
+
log.formatter = proc do |severity, _datetime, _progname, msg|
|
90
|
+
"#{severity[0, 1].upcase}, #{msg}\n"
|
91
|
+
end
|
92
|
+
log
|
93
|
+
end
|
94
|
+
|
95
|
+
# This method smell :reek:UtilityFunction
|
96
|
+
def test_level?(this_level)
|
97
|
+
this_level >= Log.instance.level ? true : false
|
98
|
+
end
|
99
|
+
|
100
|
+
# Write a log with an tag
|
101
|
+
def write_tag
|
102
|
+
@logs.tagged(@logs.progname) { yield }
|
103
|
+
end
|
104
|
+
end
|
105
|
+
end
|
106
|
+
end
|
@@ -0,0 +1,115 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module RubyRabbitmqJanus
|
4
|
+
module Tools
|
5
|
+
# Format message request with good data to HASH format
|
6
|
+
# @author VAILLANT Jeremy <jeremy.vaillant@dazzl.tv>
|
7
|
+
class Replace
|
8
|
+
# Initialize a tool replace
|
9
|
+
def initialize(request, options = {})
|
10
|
+
@request = request
|
11
|
+
@opts = options
|
12
|
+
Tools::Log.instance.debug "Element to replace : #{@opts}"
|
13
|
+
end
|
14
|
+
|
15
|
+
# Replace element in hash request with information used for this transaction
|
16
|
+
# @return HASH request with element replace
|
17
|
+
def transform_request
|
18
|
+
replace_classic
|
19
|
+
unless @opts.empty?
|
20
|
+
replace_other if test_presence?('replace')
|
21
|
+
add_other if test_presence?('add')
|
22
|
+
end
|
23
|
+
@request
|
24
|
+
end
|
25
|
+
|
26
|
+
private
|
27
|
+
|
28
|
+
attr_reader :request, :opts
|
29
|
+
|
30
|
+
# Replace classic elements
|
31
|
+
def replace_classic
|
32
|
+
replace_transaction if @request.key?('transaction')
|
33
|
+
replace_session if @request.key?('session_id')
|
34
|
+
replace_plugin if @request.key?('plugin')
|
35
|
+
replace_handle if @request.key?('handle_id')
|
36
|
+
end
|
37
|
+
|
38
|
+
# Create an transaction string and replace in request field with an String format
|
39
|
+
def replace_transaction
|
40
|
+
@request['transaction'].replace [*('A'..'Z'), *('0'..'9')].sample(10).join
|
41
|
+
rescue => message
|
42
|
+
Tools::Log.instance.warn "Error transaction replace : #{message}"
|
43
|
+
end
|
44
|
+
|
45
|
+
# Read option session and replace in request
|
46
|
+
def replace_session
|
47
|
+
@request['session_id'] = @opts['session_id']
|
48
|
+
rescue => message
|
49
|
+
Tools::Log.instance.warn "Error session replace : #{message}"
|
50
|
+
end
|
51
|
+
|
52
|
+
# Replace plugin string
|
53
|
+
def replace_plugin
|
54
|
+
@request['plugin'] = Tools::Config.instance.options['janus']['plugins'][0]
|
55
|
+
rescue => message
|
56
|
+
Tools::Log.instance.warn "Error plugin replace : #{message}"
|
57
|
+
end
|
58
|
+
|
59
|
+
# Replace handle integer
|
60
|
+
def replace_handle
|
61
|
+
@request['handle_id'] = @opts['handle_id']
|
62
|
+
rescue => message
|
63
|
+
Tools::Log.instance.warn "Error handle replace : #{message}"
|
64
|
+
end
|
65
|
+
|
66
|
+
# Replace other element in request
|
67
|
+
def replace_other
|
68
|
+
values = @opts['replace']
|
69
|
+
running_hash(rewrite_key_to_string(values))
|
70
|
+
rescue => message
|
71
|
+
Tools::Log.instance.warn "Error REPLACE other field : #{message}"
|
72
|
+
end
|
73
|
+
|
74
|
+
# Adds other element to request
|
75
|
+
def add_other
|
76
|
+
values = @opts['add']
|
77
|
+
@request['body'].merge!(values)
|
78
|
+
rescue => message
|
79
|
+
Tools::Log.instance.warn "Error ADD other field : #{message}"
|
80
|
+
end
|
81
|
+
|
82
|
+
# Rewrite key symbol to string
|
83
|
+
def rewrite_key_to_string(node)
|
84
|
+
Hash[
|
85
|
+
node.map do |key, value|
|
86
|
+
[key.to_s, value.is_a?(Hash) ? rewrite_key_to_string(value) : value]
|
87
|
+
end
|
88
|
+
]
|
89
|
+
end
|
90
|
+
|
91
|
+
# Replace value in request Hash
|
92
|
+
def running_hash(hash, parent = 'body')
|
93
|
+
hash.each do |key, value|
|
94
|
+
if value.is_a?(Hash)
|
95
|
+
running_hash(value, new_parent(key, parent))
|
96
|
+
else
|
97
|
+
@request[parent][key] = value
|
98
|
+
end
|
99
|
+
end
|
100
|
+
end
|
101
|
+
|
102
|
+
def new_parent(key, parent)
|
103
|
+
"#{parent}#{'.' unless parent.empty?}#{key}"
|
104
|
+
end
|
105
|
+
|
106
|
+
# Test presence of key in many hash
|
107
|
+
# :reek:NilCheck
|
108
|
+
def test_presence?(presence_of_key)
|
109
|
+
@opts.key?(presence_of_key) && \
|
110
|
+
@request.key?('body') && \
|
111
|
+
!@opts[presence_of_key].nil?
|
112
|
+
end
|
113
|
+
end
|
114
|
+
end
|
115
|
+
end
|
@@ -0,0 +1,44 @@
|
|
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
|
+
end
|
15
|
+
|
16
|
+
# Replace elements admins if present
|
17
|
+
def replace_admins
|
18
|
+
replace_admin
|
19
|
+
replace_level if request.key?('level')
|
20
|
+
replace_debug if request.key?('debug')
|
21
|
+
end
|
22
|
+
|
23
|
+
# Replace admin secret in request
|
24
|
+
def replace_admin
|
25
|
+
cfg = Tools::Config.instance.options['rabbit']
|
26
|
+
request['admin_secret'] = Tools::Env.instance.test_env_var(cfg, 'admin_pass')
|
27
|
+
rescue => message
|
28
|
+
Tools::Log.instance.warn "Error replace admin_secret : #{message}"
|
29
|
+
end
|
30
|
+
|
31
|
+
def replace_level
|
32
|
+
request['level'] = opts['level']
|
33
|
+
rescue => message
|
34
|
+
Tools::Log.instance.warn "Error replace level : #{message}"
|
35
|
+
end
|
36
|
+
|
37
|
+
def replace_debug
|
38
|
+
request['debug'] = opts['debug']
|
39
|
+
rescue => message
|
40
|
+
Tools::Log.instance.warn "Error replace debug : #{message}"
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,57 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module RubyRabbitmqJanus
|
4
|
+
module Tools
|
5
|
+
# @author VAILLANT Jeremy <jeremy.vaillant@dazzl.tv>
|
6
|
+
# Load files json in config/request.
|
7
|
+
# This file is used for sending a request to RabbitMQ
|
8
|
+
# @!attribute [r] requests
|
9
|
+
class Requests
|
10
|
+
include Singleton
|
11
|
+
|
12
|
+
attr_reader :requests
|
13
|
+
|
14
|
+
# Define folder to request
|
15
|
+
PATH_REQUEST = 'config/requests/'
|
16
|
+
|
17
|
+
# Load all requests in folder
|
18
|
+
def initialize
|
19
|
+
@requests = {}
|
20
|
+
Tools::Log.instance.info "Loading all requests in : #{PATH_REQUEST}"
|
21
|
+
Dir[File.join(PATH_REQUEST, '*')].count do |file|
|
22
|
+
if File.file?(file)
|
23
|
+
read_file(file)
|
24
|
+
elsif File.directory?(file)
|
25
|
+
each_folder(File.basename(file))
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
private
|
31
|
+
|
32
|
+
# Run folder contains templates json
|
33
|
+
def each_folder(subfolder)
|
34
|
+
Dir[File.join(PATH_REQUEST + subfolder, '*')].count do |file|
|
35
|
+
if File.file?(file)
|
36
|
+
read_folder(subfolder.gsub('/', '::') + '::', file)
|
37
|
+
elsif File.directory?(file)
|
38
|
+
each_folder(subfolder + '/' + File.basename(file))
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
# Add template json to requests array
|
44
|
+
# @param file [File]
|
45
|
+
def read_file(file)
|
46
|
+
@requests[File.basename(file, '.json').to_s] = File.path(file)
|
47
|
+
end
|
48
|
+
|
49
|
+
# Add template json to requests array with a path
|
50
|
+
# @param folder [Dir]
|
51
|
+
# @param file [File]
|
52
|
+
def read_folder(folder, file)
|
53
|
+
@requests[folder + File.basename(file, '.json').to_s] = File.path(file)
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'rrj/tools/log'
|
4
|
+
require 'rrj/tools/env'
|
5
|
+
require 'rrj/tools/config'
|
6
|
+
require 'rrj/tools/requests'
|
7
|
+
require 'rrj/tools/replaces'
|
8
|
+
require 'rrj/tools/replaces_admin'
|
9
|
+
|
10
|
+
module RubyRabbitmqJanus
|
11
|
+
# Contains all tools necessary in this gem
|
12
|
+
module Tools
|
13
|
+
end
|
14
|
+
end
|
data/lib/ruby_rabbitmq_janus.rb
CHANGED
@@ -1,20 +1,15 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
-
require 'rrj/version'
|
3
2
|
|
4
3
|
require 'rrj/init'
|
5
|
-
require 'rrj/log'
|
6
|
-
require 'rrj/config'
|
7
4
|
|
8
|
-
|
9
|
-
require 'rrj/
|
10
|
-
require 'rrj/request/replaces'
|
11
|
-
require 'rrj/request/path'
|
5
|
+
# Define tools for this gems
|
6
|
+
require 'rrj/tools/tools'
|
12
7
|
|
13
|
-
|
8
|
+
# Define actions with rabbitmq
|
9
|
+
require 'rrj/rabbit/rabbit'
|
14
10
|
|
11
|
+
# Define actions with janus
|
15
12
|
require 'rrj/janus/janus'
|
16
|
-
|
17
|
-
|
18
|
-
require 'rrj/
|
19
|
-
require 'rrj/janus/response'
|
20
|
-
require 'rrj/janus/error'
|
13
|
+
|
14
|
+
# Define errors in gems
|
15
|
+
require 'rrj/errors/error'
|
data/rrj.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
lib = File.expand_path('../lib', __FILE__)
|
2
2
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
3
|
-
require 'rrj/
|
3
|
+
require 'rrj/info'
|
4
4
|
|
5
5
|
Gem::Specification.new do |spec|
|
6
6
|
spec.name = 'ruby_rabbitmq_janus'
|
@@ -11,12 +11,14 @@ Gem::Specification.new do |spec|
|
|
11
11
|
spec.summary = RubyRabbitmqJanus::SUMMARY
|
12
12
|
spec.description = RubyRabbitmqJanus::DESCRIPTION
|
13
13
|
|
14
|
-
spec.homepage =
|
14
|
+
spec.homepage = RubyRabbitmqJanus::HOMEPAGE
|
15
15
|
spec.license = 'MIT'
|
16
16
|
|
17
17
|
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
18
18
|
spec.require_paths = ['lib']
|
19
19
|
|
20
|
+
spec.post_install_message = RubyRabbitmqJanus::POST_INSTALL
|
21
|
+
|
20
22
|
spec.add_development_dependency 'bundler', '~> 1.12'
|
21
23
|
spec.add_development_dependency 'rake', '~> 10.0'
|
22
24
|
spec.add_development_dependency 'rspec', '~> 3.5', '>= 3.5.0'
|
@@ -29,9 +31,11 @@ Gem::Specification.new do |spec|
|
|
29
31
|
spec.add_development_dependency 'pry-byebug', '~> 3.4'
|
30
32
|
spec.add_development_dependency 'json-schema', '~> 2.6', '>= 2.6.2'
|
31
33
|
spec.add_development_dependency 'json-schema-rspec', '~> 0.0.4'
|
34
|
+
spec.add_development_dependency 'activesupport', '~> 4.2', '>= 4.2.7.1'
|
35
|
+
spec.add_development_dependency 'concurrent-ruby', '~> 1.0', '>= 1.0.2'
|
32
36
|
|
33
37
|
spec.add_runtime_dependency 'bunny', '~> 2.5'
|
34
|
-
spec.add_runtime_dependency 'logging', '~> 2.1'
|
35
38
|
spec.add_runtime_dependency 'key_path', '~> 1.2'
|
36
39
|
spec.add_runtime_dependency 'thread', '~> 0.2.2'
|
40
|
+
spec.add_runtime_dependency 'colorize', '~> 0.8.1'
|
37
41
|
end
|
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: 0.
|
4
|
+
version: 1.0.1
|
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
|
+
date: 2016-11-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -197,33 +197,59 @@ dependencies:
|
|
197
197
|
- !ruby/object:Gem::Version
|
198
198
|
version: 0.0.4
|
199
199
|
- !ruby/object:Gem::Dependency
|
200
|
-
name:
|
200
|
+
name: activesupport
|
201
201
|
requirement: !ruby/object:Gem::Requirement
|
202
202
|
requirements:
|
203
203
|
- - "~>"
|
204
204
|
- !ruby/object:Gem::Version
|
205
|
-
version: '2
|
206
|
-
|
205
|
+
version: '4.2'
|
206
|
+
- - ">="
|
207
|
+
- !ruby/object:Gem::Version
|
208
|
+
version: 4.2.7.1
|
209
|
+
type: :development
|
207
210
|
prerelease: false
|
208
211
|
version_requirements: !ruby/object:Gem::Requirement
|
209
212
|
requirements:
|
210
213
|
- - "~>"
|
211
214
|
- !ruby/object:Gem::Version
|
212
|
-
version: '2
|
215
|
+
version: '4.2'
|
216
|
+
- - ">="
|
217
|
+
- !ruby/object:Gem::Version
|
218
|
+
version: 4.2.7.1
|
219
|
+
- !ruby/object:Gem::Dependency
|
220
|
+
name: concurrent-ruby
|
221
|
+
requirement: !ruby/object:Gem::Requirement
|
222
|
+
requirements:
|
223
|
+
- - "~>"
|
224
|
+
- !ruby/object:Gem::Version
|
225
|
+
version: '1.0'
|
226
|
+
- - ">="
|
227
|
+
- !ruby/object:Gem::Version
|
228
|
+
version: 1.0.2
|
229
|
+
type: :development
|
230
|
+
prerelease: false
|
231
|
+
version_requirements: !ruby/object:Gem::Requirement
|
232
|
+
requirements:
|
233
|
+
- - "~>"
|
234
|
+
- !ruby/object:Gem::Version
|
235
|
+
version: '1.0'
|
236
|
+
- - ">="
|
237
|
+
- !ruby/object:Gem::Version
|
238
|
+
version: 1.0.2
|
213
239
|
- !ruby/object:Gem::Dependency
|
214
|
-
name:
|
240
|
+
name: bunny
|
215
241
|
requirement: !ruby/object:Gem::Requirement
|
216
242
|
requirements:
|
217
243
|
- - "~>"
|
218
244
|
- !ruby/object:Gem::Version
|
219
|
-
version: '2.
|
245
|
+
version: '2.5'
|
220
246
|
type: :runtime
|
221
247
|
prerelease: false
|
222
248
|
version_requirements: !ruby/object:Gem::Requirement
|
223
249
|
requirements:
|
224
250
|
- - "~>"
|
225
251
|
- !ruby/object:Gem::Version
|
226
|
-
version: '2.
|
252
|
+
version: '2.5'
|
227
253
|
- !ruby/object:Gem::Dependency
|
228
254
|
name: key_path
|
229
255
|
requirement: !ruby/object:Gem::Requirement
|
@@ -252,6 +278,20 @@ dependencies:
|
|
252
278
|
- - "~>"
|
253
279
|
- !ruby/object:Gem::Version
|
254
280
|
version: 0.2.2
|
281
|
+
- !ruby/object:Gem::Dependency
|
282
|
+
name: colorize
|
283
|
+
requirement: !ruby/object:Gem::Requirement
|
284
|
+
requirements:
|
285
|
+
- - "~>"
|
286
|
+
- !ruby/object:Gem::Version
|
287
|
+
version: 0.8.1
|
288
|
+
type: :runtime
|
289
|
+
prerelease: false
|
290
|
+
version_requirements: !ruby/object:Gem::Requirement
|
291
|
+
requirements:
|
292
|
+
- - "~>"
|
293
|
+
- !ruby/object:Gem::Version
|
294
|
+
version: 0.8.1
|
255
295
|
description: This gem is used to communicate to a server Janus through RabbitMQ software
|
256
296
|
(Message-oriented middleware). It waiting a messages to Rails API who send to RabbitMQ
|
257
297
|
server in a queue for janus server. Janus processes a message and send to RabbitMQ
|
@@ -265,6 +305,7 @@ extra_rdoc_files: []
|
|
265
305
|
files:
|
266
306
|
- ".gitignore"
|
267
307
|
- ".overcommit.yml"
|
308
|
+
- ".reek"
|
268
309
|
- ".rspec"
|
269
310
|
- ".rubocop.yml"
|
270
311
|
- ".travis.yml"
|
@@ -273,37 +314,76 @@ files:
|
|
273
314
|
- Gemfile
|
274
315
|
- LICENSE
|
275
316
|
- README.md
|
276
|
-
- config.reek
|
277
317
|
- config/default.md
|
278
318
|
- config/default.yml
|
279
|
-
- config/requests/
|
280
|
-
- config/requests/
|
281
|
-
- config/requests/
|
282
|
-
- config/requests/
|
283
|
-
- config/requests/
|
284
|
-
- config/requests/
|
285
|
-
-
|
319
|
+
- config/requests/admin/handle_info.json
|
320
|
+
- config/requests/admin/handles.json
|
321
|
+
- config/requests/admin/log_level.json
|
322
|
+
- config/requests/admin/sessions.json
|
323
|
+
- config/requests/base/attach.json
|
324
|
+
- config/requests/base/create.json
|
325
|
+
- config/requests/base/destroy.json
|
326
|
+
- config/requests/base/detach.json
|
327
|
+
- config/requests/base/info.json
|
328
|
+
- config/requests/base/keepalive.json
|
329
|
+
- lib/generators/ruby_rabbitmq_janus/configuration_generator.rb
|
330
|
+
- lib/generators/ruby_rabbitmq_janus/create_request_generator.rb
|
331
|
+
- lib/generators/ruby_rabbitmq_janus/default_request_generator.rb
|
332
|
+
- lib/generators/ruby_rabbitmq_janus/initializer_generator.rb
|
333
|
+
- lib/rrj/errors/config.rb
|
334
|
+
- lib/rrj/errors/error.rb
|
335
|
+
- lib/rrj/errors/janus.rb
|
336
|
+
- lib/rrj/errors/janus_message.rb
|
337
|
+
- lib/rrj/errors/janus_response.rb
|
338
|
+
- lib/rrj/errors/janus_transaction.rb
|
339
|
+
- lib/rrj/errors/rabbit.rb
|
340
|
+
- lib/rrj/errors/request.rb
|
341
|
+
- lib/rrj/info.rb
|
286
342
|
- lib/rrj/init.rb
|
287
|
-
- lib/rrj/janus/
|
343
|
+
- lib/rrj/janus/admin.rb
|
288
344
|
- lib/rrj/janus/janus.rb
|
345
|
+
- lib/rrj/janus/keepalive.rb
|
289
346
|
- lib/rrj/janus/message.rb
|
290
|
-
- lib/rrj/janus/message_async.rb
|
291
|
-
- lib/rrj/janus/message_sync.rb
|
292
347
|
- lib/rrj/janus/response.rb
|
293
|
-
- lib/rrj/
|
294
|
-
- lib/rrj/
|
295
|
-
- lib/rrj/
|
296
|
-
- lib/rrj/
|
297
|
-
- lib/rrj/
|
298
|
-
- lib/rrj/
|
299
|
-
- lib/rrj/
|
348
|
+
- lib/rrj/janus/transaction.rb
|
349
|
+
- lib/rrj/janus/transaction_admin.rb
|
350
|
+
- lib/rrj/janus/transaction_handle.rb
|
351
|
+
- lib/rrj/janus/transaction_session.rb
|
352
|
+
- lib/rrj/rabbit/connect.rb
|
353
|
+
- lib/rrj/rabbit/propertie.rb
|
354
|
+
- lib/rrj/rabbit/publish.rb
|
355
|
+
- lib/rrj/rabbit/rabbit.rb
|
356
|
+
- lib/rrj/tools/config.rb
|
357
|
+
- lib/rrj/tools/env.rb
|
358
|
+
- lib/rrj/tools/log.rb
|
359
|
+
- lib/rrj/tools/replaces.rb
|
360
|
+
- lib/rrj/tools/replaces_admin.rb
|
361
|
+
- lib/rrj/tools/requests.rb
|
362
|
+
- lib/rrj/tools/tools.rb
|
300
363
|
- lib/ruby_rabbitmq_janus.rb
|
301
364
|
- rrj.gemspec
|
302
365
|
homepage: https://github.com/dazzl-tv/ruby-rabbitmq-janus
|
303
366
|
licenses:
|
304
367
|
- MIT
|
305
368
|
metadata: {}
|
306
|
-
post_install_message:
|
369
|
+
post_install_message: |-
|
370
|
+
# ====================================================== #
|
371
|
+
# Thanks for installing! #
|
372
|
+
# https://github.com/dazzl-tv/ruby-rabbitmq-janus. #
|
373
|
+
# ;;;;;;;;;;;:. #
|
374
|
+
# ;;;;;;;;;;;;;;;;;; #
|
375
|
+
# ;;;;;;;;;;;:;;;;;;;; #
|
376
|
+
# ;;;;;;;;;;` ;;;;;;;; #
|
377
|
+
# ;;;;;;;;; :;;;;;;;;. #
|
378
|
+
# ;;;;;;;; :::::;;;;; #
|
379
|
+
# ;;;;;;, ,;;;;;; #
|
380
|
+
# ;;;;; ;;;;;;;; #
|
381
|
+
# ;;;;;;;;; ;;;;;;;;, #
|
382
|
+
# ;;;;;;;;; `;;;;;;;;; A ZZZZZZZ ZZZZZZZ LL #
|
383
|
+
# ;;;;;;;;.:;;;;;;;;;; A A ZZZ ZZZ LL #
|
384
|
+
# ;;;;;;;;;;;;;;;;; AAAAA ZZ ZZ LL #
|
385
|
+
# ;;;;;;;;;;;;;, A A ZZZZZZZ ZZZZZZZ LLLLLLL #
|
386
|
+
# ====================================================== #
|
307
387
|
rdoc_options: []
|
308
388
|
require_paths:
|
309
389
|
- lib
|
data/config.reek
DELETED
data/lib/rrj/config.rb
DELETED
@@ -1,57 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'yaml'
|
4
|
-
|
5
|
-
module RubyRabbitmqJanus
|
6
|
-
# @author VAILLANT Jeremy <jeremy.vaillant@dazzl.tv>
|
7
|
-
# Loading a yaml file for apply a configuration to gem.
|
8
|
-
class Config
|
9
|
-
include Singleton
|
10
|
-
|
11
|
-
attr_reader :options
|
12
|
-
|
13
|
-
# Define a default path to file configuration
|
14
|
-
DEFAULT_PATH = File.realpath(File.join(File.dirname(__FILE__), '..', '..'))
|
15
|
-
|
16
|
-
# Define a default name to file configuration
|
17
|
-
DEFAULT_CONF = 'config/default.yml'
|
18
|
-
|
19
|
-
# Define a default override file configuration
|
20
|
-
CUSTOMIZE_CONF = 'config/ruby-rabbitmq-janus.yml'
|
21
|
-
|
22
|
-
# Initialize configuration file default or customize if exist
|
23
|
-
def initialize
|
24
|
-
@options = nil
|
25
|
-
conf_customize
|
26
|
-
conf_default
|
27
|
-
define_log_level_used
|
28
|
-
end
|
29
|
-
|
30
|
-
private
|
31
|
-
|
32
|
-
# Load configuration file yaml
|
33
|
-
# @return [Yaml] Configuration file
|
34
|
-
# @param file [String] Path to configuration file (with name)
|
35
|
-
# :reek:UtilityFunction { public_methods_only: true }
|
36
|
-
def load_configuration(file)
|
37
|
-
Log.instance.info("Loading configuration file : #{file}")
|
38
|
-
YAML.load(File.read(file))
|
39
|
-
end
|
40
|
-
|
41
|
-
# Load customize configuration file if exist
|
42
|
-
def conf_customize
|
43
|
-
file = File.join(Dir.pwd, CUSTOMIZE_CONF)
|
44
|
-
@options = load_configuration(file) if File.exist?(file)
|
45
|
-
end
|
46
|
-
|
47
|
-
# Load default configuration if customize configuration doesn't exist
|
48
|
-
def conf_default
|
49
|
-
file = File.join(DEFAULT_PATH, DEFAULT_CONF)
|
50
|
-
@options ||= load_configuration(file)
|
51
|
-
end
|
52
|
-
|
53
|
-
def define_log_level_used
|
54
|
-
Log.instance.level = @options['gem']['log']['level']
|
55
|
-
end
|
56
|
-
end
|
57
|
-
end
|