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.
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