ruby_rabbitmq_janus 0.3.0 → 1.0.1

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.
Files changed (66) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +64 -7
  3. data/.reek +7 -0
  4. data/.rubocop.yml +0 -3
  5. data/README.md +40 -2
  6. data/config/default.md +22 -6
  7. data/config/default.yml +24 -6
  8. data/config/requests/{test.json → admin/handle_info.json} +2 -4
  9. data/config/requests/admin/handles.json +6 -0
  10. data/config/requests/admin/log_level.json +6 -0
  11. data/config/requests/admin/sessions.json +5 -0
  12. data/config/requests/{attach.json → base/attach.json} +0 -0
  13. data/config/requests/{create.json → base/create.json} +0 -0
  14. data/config/requests/{destroy.json → base/destroy.json} +0 -0
  15. data/config/requests/{detach.json → base/detach.json} +0 -0
  16. data/config/requests/{info.json → base/info.json} +0 -0
  17. data/config/requests/base/keepalive.json +5 -0
  18. data/lib/generators/ruby_rabbitmq_janus/configuration_generator.rb +23 -0
  19. data/lib/generators/ruby_rabbitmq_janus/create_request_generator.rb +90 -0
  20. data/lib/generators/ruby_rabbitmq_janus/default_request_generator.rb +21 -0
  21. data/lib/generators/ruby_rabbitmq_janus/initializer_generator.rb +17 -0
  22. data/lib/rrj/errors/config.rb +21 -0
  23. data/lib/rrj/errors/error.rb +56 -0
  24. data/lib/rrj/errors/janus.rb +14 -0
  25. data/lib/rrj/errors/janus_message.rb +45 -0
  26. data/lib/rrj/errors/janus_response.rb +78 -0
  27. data/lib/rrj/errors/janus_transaction.rb +31 -0
  28. data/lib/rrj/errors/rabbit.rb +21 -0
  29. data/lib/rrj/errors/request.rb +21 -0
  30. data/lib/rrj/info.rb +40 -0
  31. data/lib/rrj/init.rb +113 -44
  32. data/lib/rrj/janus/admin.rb +27 -0
  33. data/lib/rrj/janus/janus.rb +10 -33
  34. data/lib/rrj/janus/keepalive.rb +69 -0
  35. data/lib/rrj/janus/message.rb +77 -22
  36. data/lib/rrj/janus/response.rb +79 -41
  37. data/lib/rrj/janus/transaction.rb +53 -0
  38. data/lib/rrj/janus/transaction_admin.rb +43 -0
  39. data/lib/rrj/janus/transaction_handle.rb +40 -0
  40. data/lib/rrj/janus/transaction_session.rb +17 -0
  41. data/lib/rrj/rabbit/connect.rb +75 -0
  42. data/lib/rrj/rabbit/propertie.rb +37 -0
  43. data/lib/rrj/rabbit/publish.rb +100 -0
  44. data/lib/rrj/rabbit/rabbit.rb +11 -0
  45. data/lib/rrj/tools/config.rb +63 -0
  46. data/lib/rrj/tools/env.rb +21 -0
  47. data/lib/rrj/tools/log.rb +106 -0
  48. data/lib/rrj/tools/replaces.rb +115 -0
  49. data/lib/rrj/tools/replaces_admin.rb +44 -0
  50. data/lib/rrj/tools/requests.rb +57 -0
  51. data/lib/rrj/tools/tools.rb +14 -0
  52. data/lib/ruby_rabbitmq_janus.rb +8 -13
  53. data/rrj.gemspec +7 -3
  54. metadata +108 -28
  55. data/config.reek +0 -3
  56. data/lib/rrj/config.rb +0 -57
  57. data/lib/rrj/janus/error.rb +0 -8
  58. data/lib/rrj/janus/message_async.rb +0 -54
  59. data/lib/rrj/janus/message_sync.rb +0 -34
  60. data/lib/rrj/log.rb +0 -63
  61. data/lib/rrj/rabbitmq/rabbitmq.rb +0 -82
  62. data/lib/rrj/request/path.rb +0 -21
  63. data/lib/rrj/request/replaces.rb +0 -109
  64. data/lib/rrj/request/requests.rb +0 -55
  65. data/lib/rrj/request/type_data.rb +0 -30
  66. data/lib/rrj/version.rb +0 -17
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6030e029ea0bd2a5679dcad05087626f714ff188
4
- data.tar.gz: a58783ef89a8357ca40f1fbcb67caf83ec622d07
3
+ metadata.gz: a6cd4ddd4d531fad7d95ba9f66a16534d66cd35e
4
+ data.tar.gz: 5432f6b8bfa2ef968a03cf6cfd57e841f8965735
5
5
  SHA512:
6
- metadata.gz: 9e8fc17ef4c1567c5e59080c6516661fb0f7300e77ccaaf2dd45d181f6111b736085ad58a56d6f2e3808a8e6adb518d18e5854980e4d49e7a75de3a2badcd75e
7
- data.tar.gz: 0ef125e275f278881be03b53c194d81d7a1a562faad21b2aa88c571876c705776a401d9be961fc247974e2b77ec04fddbadbb6f22af10bdd148be7238796ccee
6
+ metadata.gz: cd17673a91b51bddc0cca8c0ab788e1bb6d4e5baf601942bcd3df79d23c6f703ed742921d92c5feeb34b47494dfbf0e17cb5cf45f4bfef43605d55f04c7928a6
7
+ data.tar.gz: 97e18cb653f2c45a86f06b99f4ec995265c525e23138c5cf79efdc73eb8a2070c1df5f37727a2b6bdf38632203b40e2338eb48d9bfaa62a6fd187fc4c94831e1
data/.gitignore CHANGED
@@ -1,14 +1,71 @@
1
- /.bundle/
2
- /.yardoc
3
- /Gemfile.lock
4
- /_yardoc/
1
+ # Created by https://www.gitignore.io/api/ruby
2
+
3
+ ### Ruby ###
4
+ *.gem
5
+ *.rbc
6
+ /.config
5
7
  /coverage/
6
- /doc/
8
+ /InstalledFiles
7
9
  /pkg/
8
10
  /spec/reports/
11
+ /spec/examples.txt
12
+ /test/tmp/
13
+ /test/version_tmp/
9
14
  /tmp/
15
+ /log/
10
16
 
11
- *.gem
17
+ # Used by dotenv library to load environment variables.
18
+ # .env
19
+
20
+ ## Specific to RubyMotion:
21
+ .dat*
22
+ .repl_history
23
+ build/
24
+ *.bridgesupport
25
+ build-iPhoneOS/
26
+ build-iPhoneSimulator/
27
+
28
+ ## Specific to RubyMotion (use of CocoaPods):
29
+ #
30
+ # We recommend against adding the Pods directory to your .gitignore. However
31
+ # you should judge for yourself, the pros and cons are mentioned at:
32
+ # https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control
33
+ #
34
+ # vendor/Pods/
12
35
 
13
- log
36
+ ## Documentation cache and generated files:
37
+ /.yardoc/
38
+ /_yardoc/
39
+ /doc/
40
+ /rdoc/
41
+
42
+ ## Environment normalization:
43
+ /.bundle/
44
+ /vendor/bundle
45
+ /lib/bundler/man/
46
+
47
+ # for a library or gem, you might want to ignore these files since the code is
48
+ # intended to run in multiple environments; otherwise, check them in:
49
+ Gemfile.lock
50
+ # .ruby-version
51
+ # .ruby-gemset
52
+
53
+ # unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
54
+ .rvmrc
55
+
56
+ ### ruby-rabbitmq-janus ###
57
+
58
+ ## Configuration customize
14
59
  config/ruby-rabbitmq-janus.yml
60
+
61
+ ## Request customize
62
+ config/requests/channel
63
+ config/requests/videocast
64
+
65
+ ## Schema JSON response
66
+ spec/support/schemas/request/channel
67
+ spec/support/schemas/request/videocast
68
+
69
+ ## Unitaire test for request customize
70
+ spec/request/channel
71
+ spec/request/videocast
data/.reek ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ UtilityFunction:
3
+ public_methods_only: true
4
+
5
+ DuplicateMethodCall:
6
+ allow_calls:
7
+ - 'Tools::Log.instance'
data/.rubocop.yml CHANGED
@@ -8,8 +8,5 @@ AllCops:
8
8
  Style/Encoding:
9
9
  Enabled: true
10
10
 
11
- Style/FrozenStringLiteralComment:
12
- EnforcedStyle: always
13
-
14
11
  Metrics/LineLength:
15
12
  Max: 90
data/README.md CHANGED
@@ -22,7 +22,7 @@ in a queue for gem. Once the received message is decoded and returned through th
22
22
 
23
23
  ### Installation
24
24
 
25
- Use bitbucket for installing gem in your Gemfile
25
+ Use rubygem for installing gem in your application. Add in your Gemfile
26
26
  ```ruby
27
27
  gem 'ruby_rabbitmq_janus'
28
28
  ```
@@ -31,6 +31,29 @@ gem 'ruby_rabbitmq_janus'
31
31
 
32
32
  If you want used a customize configuration see [ruby-rabbitmq-janus.yml](config/default.md)
33
33
 
34
+ Use generator for complete installation :
35
+ ```ruby
36
+ rails g -h
37
+ RubyRabbitmqJanus:
38
+ ruby_rabbitmq_janus:configuration
39
+ # Generate a custom configuration file.
40
+
41
+ ruby_rabbitmq_janus:default_request
42
+ # Copy base request file sending to janus in application. It's necessary if you want add your request.
43
+
44
+ ruby_rabbitmq_janus:initializer
45
+ # Generate a initializer to this gem for rails application.
46
+
47
+ ruby_rabbitmq_janus:create_request
48
+ # Create an request to json format for RubyRabbitmqJanus transaction.
49
+ ```
50
+
51
+ For create an new request is simple. Use a command generator :
52
+ ```ruby
53
+ rails g ruby_rabbitmq_janus:create_request test info 'transaction:<string>,body:{plugins:false}'
54
+ create config/requests/test/info.json
55
+ ```
56
+
34
57
  ### Usage
35
58
 
36
59
  #### Usage with synchronous request
@@ -106,7 +129,22 @@ bundle exec rspec
106
129
  ```
107
130
 
108
131
  TIPS: for rspec install janus and rabbitmq server configured by default for user
109
- rabbitmq and use plugin echotest for janus server.
132
+ rabbitmq and use plugin echotest for janus server.
133
+
134
+ Use tags for rspec :
135
+
136
+ | type | name |
137
+ | --------------- | --------------- |
138
+ | request | attach |
139
+ | | create |
140
+ | | detach |
141
+ | | info |
142
+ | | test |
143
+ | level | base |
144
+ | | admin |
145
+ | config | rabbit |
146
+ | | log |
147
+ | | config |
110
148
 
111
149
  ### Documentation
112
150
 
data/config/default.md CHANGED
@@ -1,27 +1,43 @@
1
1
  # RabbitMQ server info
2
2
 
3
- The configuration file contains two parts.
4
-
5
- The RabbitMQ server information for connection, and the queue used by janus.
3
+ The configuration file contains many parts.
6
4
 
7
5
  By default the configuration file look like this :
8
6
 
9
7
  ```yaml
10
- server:
8
+ rabbit:
11
9
  host: 'localhost'
12
10
  port: 5672
13
11
  vhost: '/'
14
12
  user: 'guest'
15
- password: 'guest'
13
+ pass: 'guest'
14
+ admin_pass: janusoverlord
16
15
 
17
16
  queues:
18
17
  queue_from: from-janus
19
18
  queue_to: to-janus
19
+ admin:
20
+ queue_from: from-janus
21
+ queue_to: to-janus
22
+
23
+ janus:
24
+ plugins:
25
+ - janus.plugin.echotest
26
+
27
+ gem:
28
+ log:
29
+ level: WARN
30
+ session:
31
+ keepalive: 45
32
+ thread:
33
+ enable: false
34
+ number: 1
20
35
  ```
21
36
 
22
37
  ## Customize
23
38
  For customizing a configuration add a yml file in your rails project in
24
- `config/ruby-rabbitmq-janus.yml`.
39
+ `config/ruby-rabbitmq-janus.yml`, or use rails generator with command `rails generate
40
+ ruby_rabbitmq_janus:configuration`.
25
41
 
26
42
  ## Ressources
27
43
  * [Configuration of RabbitMQ](https://www.rabbitmq.com/configure.html#config-items)
data/config/default.yml CHANGED
@@ -1,15 +1,17 @@
1
- # Configuration file for gem
2
- server:
1
+ # Rabbit information connection
2
+ rabbit:
3
3
  # Precise RabbitMQ host - Default 'localhost'
4
4
  host: localhost
5
- # Precise RabbitMQ port - Default 'port'
5
+ # Precise RabbitMQ port - Default '5672'
6
6
  port: 5672
7
7
  # Precise RabbitMQ vhost - Default '/'
8
8
  vhost: /
9
9
  # Precise RabbitMQ user - Default 'guest'
10
10
  user: guest
11
11
  # Precise RabbitMQ password - Default 'guest'
12
- password: guest
12
+ pass: guest
13
+ # Password for admin request
14
+ admin_pass: janusoverlord
13
15
 
14
16
  # RabbitMQ Queue information
15
17
  queues:
@@ -17,6 +19,10 @@ queues:
17
19
  queue_from: from-janus
18
20
  # Queue sending a message for janus server
19
21
  queue_to: to-janus
22
+ # Queues for admin janus
23
+ admin:
24
+ queue_from: from-janus-admin
25
+ queue_to: to-janus-admin
20
26
 
21
27
  # Janus plugin used
22
28
  janus:
@@ -26,6 +32,18 @@ janus:
26
32
 
27
33
  # Options gem
28
34
  gem:
29
- # Option for logging
35
+ # Option for logs
30
36
  log:
31
- level: 'debug'
37
+ # Define level to log
38
+ # UNKNOW, FATAL, ERROR, WARN, INFO, DEBUG
39
+ level: INFO
40
+ # Option for sessions
41
+ session:
42
+ # Define time to send a keepalive message in seconds
43
+ keepalive: 45
44
+ # Option for used multi thread
45
+ thread:
46
+ # Boolean for activate options thread
47
+ enable: false
48
+ # Number of core
49
+ number: 1
@@ -1,9 +1,7 @@
1
1
  {
2
- "janus": "message",
2
+ "janus": "handle_info",
3
3
  "session_id": "<number>",
4
4
  "handle_id": "<number>",
5
5
  "transaction": "<string>",
6
- "body": {
7
- "audio": false
8
- }
6
+ "admin_secret": "<string>"
9
7
  }
@@ -0,0 +1,6 @@
1
+ {
2
+ "janus": "list_handles",
3
+ "session_id": "<number>",
4
+ "transaction": "<string>",
5
+ "admin_secret": "<string>"
6
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "janus": "set_log_level",
3
+ "level": "<integer>",
4
+ "transaction": "<string>",
5
+ "admin_secret": "<string>"
6
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "janus": "list_sessions",
3
+ "transaction": "<string>",
4
+ "admin_secret": "<string>"
5
+ }
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -0,0 +1,5 @@
1
+ {
2
+ "janus": "keepalive",
3
+ "session_id": "<number>",
4
+ "transaction": "<string>"
5
+ }
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Module contains all lib to this gem
4
+ module RubyRabbitmqJanus
5
+ # Module for generators
6
+ module Generators
7
+ # Create an class for generate a custom configuration file
8
+ class ConfigurationGenerator < Rails::Generators::Base
9
+ desc 'Generate a custom configuration file.'
10
+
11
+ # Define root path for original file a copied
12
+ def self.source_root
13
+ root_path = File.realpath(File.join(File.dirname(__FILE__), '..', '..', '..'))
14
+ @_rrj_source_root ||= File.join(root_path, 'config')
15
+ end
16
+
17
+ # Copy a default configuration in config folder to Rails app
18
+ def copy_configuration
19
+ template 'default.yml', 'config/ruby-rabbitmq-janus.yml'
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,90 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Override String class
4
+ class String
5
+ # Character used for delimited an line
6
+ SEPARATOR_LINE = ','
7
+ # Character used for delimited an key and this value
8
+ SEPARATOR_KEY_VALUE = ':'
9
+
10
+ # Converting a string with a format special to hash
11
+ def converting_to_hash
12
+ hash = {}
13
+ split(SEPARATOR_LINE).each do |couple_hash|
14
+ hash.merge! HashString.new(couple_hash.split(SEPARATOR_KEY_VALUE)).convert_in_hash
15
+ end
16
+ hash
17
+ end
18
+ end
19
+
20
+ # Create an hash with an array
21
+ class HashString
22
+ # Initialize an array
23
+ def initialize(string_array)
24
+ @array = string_array
25
+ @hash = {}
26
+ end
27
+
28
+ # Create and return an hash
29
+ def convert_in_hash
30
+ @hash[@array[0]] = test_string_hash
31
+ @hash
32
+ end
33
+
34
+ private
35
+
36
+ # Test if string is hash
37
+ def test_string_hash
38
+ value.include?('{') ? HashString.new(format_hash_string).convert_in_hash : value
39
+ end
40
+
41
+ # Transform string to hash
42
+ def format_hash_string
43
+ @array.drop(1).join(':').sub('{', '').sub('}', '').split(String::SEPARATOR_KEY_VALUE)
44
+ end
45
+
46
+ # Return the value for hash object
47
+ def value
48
+ @array[1]
49
+ end
50
+ end
51
+
52
+ module RubyRabbitmqJanus
53
+ module Generators
54
+ # Create an class for generate a json request
55
+ class CreateRequestGenerator < Rails::Generators::Base
56
+ desc 'Create an request to json format for RubyRabbitmqJanus.'
57
+ argument :type_name, type: :string, default: ''
58
+ argument :janus_type, type: :string, default: ''
59
+ argument :content, type: :string, default: ''
60
+
61
+ # Create an file to json format in folder 'config/request/' to you Rails apps
62
+ def create_request
63
+ create_file file_json, write_json
64
+ end
65
+
66
+ private
67
+
68
+ # Create a path and name file
69
+ def file_json
70
+ base_file = type_name.empty? ? 'config/requests' : create_folder?(type_name)
71
+ "#{base_file}/#{janus_type}.json"
72
+ end
73
+
74
+ # Convert a string to hash and write in json file
75
+ def write_json
76
+ hash = {}
77
+ hash['janus'] = janus_type
78
+ hash.merge!(content.converting_to_hash)
79
+ JSON.pretty_generate(hash)
80
+ end
81
+
82
+ # Test if folder is exist and created if necessary
83
+ def create_folder?(folder_name)
84
+ path_folder = "config/requests/#{folder_name}"
85
+ Dir.mkdir path_folder unless File.exist?(path_folder)
86
+ path_folder
87
+ end
88
+ end
89
+ end
90
+ end
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RubyRabbitmqJanus
4
+ module Generators
5
+ # Create an class for generate who copy a default request
6
+ class DefaultRequestGenerator < Rails::Generators::Base
7
+ desc 'Copy base request file sending to janus in application.'
8
+
9
+ # Define root path for original file a copied
10
+ def self.source_root
11
+ root_path = File.realpath(File.join(File.dirname(__FILE__), '..', '..', '..'))
12
+ @_rrj_source_root ||= File.join(root_path, 'config')
13
+ end
14
+
15
+ # Copy default request in Rails app
16
+ def copy_default_request
17
+ directory 'requests', 'config/requests'
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RubyRabbitmqJanus
4
+ module Generators
5
+ # Create an class for generate a initializer
6
+ class InitializerGenerator < Rails::Generators::Base
7
+ desc 'Generate a initializer to this gem for rails application.'
8
+
9
+ # Create an initializer
10
+ def copy_initializer
11
+ initializer 'ruby_rabbitmq_janus.rb' do
12
+ "# frozen_string_literal: true\n\n::RRJ = RubyRabbitmqJanus::RRJ.new"
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RubyRabbitmqJanus
4
+ module Errors
5
+ # @author VAILLANT Jeremy <jeremy.vaillant@dazzl.tv>
6
+ # Define an error if the configuration file is not here
7
+ class ConfigFileNotFound < Errors::RRJError
8
+ def initialize(file)
9
+ super "Error for configuration file (#{file}), does on exist.", :error
10
+ end
11
+ end
12
+
13
+ # @author VAILLANT Jeremy <jeremy.vaillant@dazzl.tv>
14
+ # Define and error if rubrik level is not present
15
+ class LevelNotDefine < Errors::RRJError
16
+ def initialize
17
+ super 'Error in configuration file : option level is not present.', :warn
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,56 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RubyRabbitmqJanus
4
+ # Define all error in gem
5
+ module Errors
6
+ # @author VAILLANT Jeremy <jeremy.vaillant@dazzl.tv>
7
+ # Define errors to gems
8
+ class RRJError < StandardError
9
+ def initialize(message, level)
10
+ super(message)
11
+ Tools::Log.instance_method(level).bind(Tools::Log.instance).call(message)
12
+ end
13
+ end
14
+
15
+ # @author VAILLANT Jeremy <jeremy.vaillant@dazzl.tv>
16
+ # Define an exception if gem dont initialize correctly
17
+ class RRJErrorInit < RRJError
18
+ def initialize(message)
19
+ super "Gem is not instanciate correctly : #{message}", :fatal
20
+ end
21
+ end
22
+
23
+ # @author VAILLANT Jeremy <jeremy.vaillant@dazzl.tv>
24
+ # Define an error if method message_post given an exception
25
+ class RRJErrorPost < RRJError
26
+ def initialize(message)
27
+ super "Post message is failed : #{message}", :fatal
28
+ end
29
+ end
30
+
31
+ # @author VAILLANT Jeremy <jeremy.vaillant@dazzl.tv>
32
+ # Define an error if method transation given an exception
33
+ class RRJErrorTransaction < RRJError
34
+ def initialize(message)
35
+ super "Transaction is failed : #{message}", :fatal
36
+ end
37
+ end
38
+
39
+ # @author VAILLANT Jeremy <jeremy.vaillant@dazzl.tv>
40
+ # Define an error if method start_handle given an exception
41
+ class RRJErrorHandle < RRJError
42
+ def initialize(message)
43
+ super "Transaction handle is failed : #{message}", :fatal
44
+ end
45
+ end
46
+ end
47
+ end
48
+
49
+ require 'rrj/errors/janus'
50
+ require 'rrj/errors/janus_message'
51
+ require 'rrj/errors/janus_response'
52
+ require 'rrj/errors/janus_transaction'
53
+
54
+ require 'rrj/errors/config'
55
+ require 'rrj/errors/rabbit'
56
+ require 'rrj/errors/request'
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+ # :reek:FeatureEnvy
3
+
4
+ module RubyRabbitmqJanus
5
+ module Errors
6
+ # @author VAILLANT Jeremy <jeremy.vaillant@dazzl.tv>
7
+ # Define errors to message sending and response to janus
8
+ class JanusError < RRJError
9
+ def initialize(message)
10
+ super "[JANUS] #{message}", :fatal
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,45 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RubyRabbitmqJanus
4
+ module Errors
5
+ # @author VAILLANT Jeremy <jeremy.vaillant@dazzl.tv>
6
+ # Define an exception for janus message class
7
+ class JanusMessage < JanusError
8
+ def initialize(message)
9
+ super "[Message] Error create : #{message}"
10
+ end
11
+ end
12
+
13
+ # @author VAILLANT Jeremy <jeremy.vaillant@dazzl.tv>
14
+ # Define an exception for janus message to_json
15
+ class JanusMessageJson < JanusError
16
+ def initialize(message)
17
+ super "[Message] Error transform to json : #{message}"
18
+ end
19
+ end
20
+
21
+ # @author VAILLANT Jeremy <jeremy.vaillant@dazzl.tv>
22
+ # Define an exception for janus message to_nice_json
23
+ class JanusMessagePrettyJson < JanusError
24
+ def initialize(message)
25
+ super "[Message] Error transform to pretty json : #{message}"
26
+ end
27
+ end
28
+
29
+ # @author VAILLANT Jeremy <jeremy.vaillant@dazzl.tv>
30
+ # Define an exception for janus message to_hash
31
+ class JanusMessageHash < JanusError
32
+ def initialize(message)
33
+ super "[Message] Error transform to hash : #{message}"
34
+ end
35
+ end
36
+
37
+ # @author VAILLANT Jeremy <jeremy.vaillant@dazzl.tv>
38
+ # Define an exception for janus message option
39
+ class JanusMessageOption < JanusError
40
+ def initialize(message)
41
+ super "[Message] Error options to message : #{message}"
42
+ end
43
+ end
44
+ end
45
+ end